![]() |
發布時間: 2023-6-8 01:16
正文摘要:請問一下,為啥我用兩個定時器的時候,定時器1不會按照我所定的時間去運行,而是速度極快且不停地輸出數據 現象是用仿真看的,晶振是11.0952,求大佬們幫幫忙。。 |
你的定時器使用不合理。定時器0中斷1ms用于按鍵掃描沒問題,也可以設置一個變量累加到5000輸出一個5秒標志。在主函數中查詢5秒標志再讀1820和串口發送。定時器1用做波特率發生器,切不可開定時器1中斷,否則會亂套。 |
yzwzfyz 發表于 2023-6-8 08:17 好的,我再看看 |
123156fsadf 發表于 2023-6-8 09:29 好的,我試試 |
火雞味鍋巴qwq 發表于 2023-6-8 08:56 串口1也是用的定時器1吧,你這樣應該是有問題的。 |
火雞味鍋巴qwq 發表于 2023-6-8 08:56 不要放在定時器中發送咯,在main中讀溫度和發送 |
mtdzok 發表于 2023-6-8 08:40 100,圖中的已經改過了,還是會出現問題 |
你要5秒執行1次,請問5秒=多少毫秒 |
1、你對中斷響應的條件,未搞清楚。 2、你的串行通訊的時序未搞清楚。 這就是原因,補補課吧。 提示:串口發送一個字節需要多少時間?你一共發送了多少字節?要用多少時間?在此時間內,T1會發生多少次溢出?每次溢出都能被中斷響應嗎? 重新仔細看書,弄清楚我提出的問題,就當是作業吧。做完作業,水平會有大的提升。 |
定時器1中斷里不要處理串口發送,這樣會打亂定時計數,串口發送放在main循環里處理。 |
不清楚你單片機型號,一種可能性是你的單片機不一定有定時器1,另外參照官方程序看看定時器寄存器配置位是否正確。 |