明白 發表于 2014-8-10 10:57
void Comm_Interrupt() interrupt 4//串行中斷程序
{
if(TI)
明白 發表于 2014-8-10 12:37
程序運行,TEnd完全有可能去到256,
主要是因為定時器0的中斷周期太短,主程序跑不動
xiehuipeng 發表于 2014-8-10 13:10
那個Tend還會=-255.
我覺得這應該是溢出的問題 Tend只會出現這兩個特殊的數字256或者-255 因為這兩個數 ...
明白 發表于 2014-8-11 10:35
也可以停止定時器TR0 =0;
處理好數據之后,
才重新啟動定時器, TR0 =1;
明白 發表于 2014-8-11 13:26
15個獨立的32bit計時器,
入棧出棧需要20條指令,
每一個32bit計時器,自加自判大概25條指令
明白 發表于 2014-8-11 13:49
void Timer0_Interrupt() interrupt 1//0-0定時器0 1ms 中斷程序
{
TL0 = 0x18; ...
明白 發表于 2014-8-11 13:48
這樣可以用TR0停止和啟動定時器,
明白 發表于 2014-8-11 14:07
1ms,分辨率最大就只有1ms,
我前面介紹的18位二進制定時器,分辨率可以去到1us
相差多少倍,
xiehuipeng 發表于 2014-8-11 14:31
謝謝大哥 我看懂你這個計時方式了 非常巧妙 學習了。。
| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |