欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 關于單片機中斷(一小段代碼看不懂,麻煩有空的大神進來幫忙看看 [打印本頁]

作者: sls_qj    時間: 2018-5-15 11:24
標題: 關于單片機中斷(一小段代碼看不懂,麻煩有空的大神進來幫忙看看
  1. /*************定時器0中斷服務程序***************/
  2. void time0_int() interrupt 1
  3. {
  4. static uchar value;
  5. TH0 = 0x3c;
  6. TL0 = 0xb0;     // 50ms
  7. value ++;
  8. if(value % 2 == 0)
  9. {
  10.   flag_100ms = 1 ;
  11. }
  12. }
復制代碼
1、value沒賦初值吧?if里怎么知道value是多少。。
2、if沒有循環功能吧?執行完了不就出來了嗎?
只學過匯編而且忘差不多了,時間有點緊迫所以想直接問比較快,求助QAQ



作者: HC6800-ES-V2.0    時間: 2018-5-15 12:40
第一:你沒看到有:value++;嗎?
第二:下次中斷,不就回來了?
作者: zhdp    時間: 2018-5-15 13:27
默認初值為0;沒循環,但每累加2次執行一次if里面的語句;
作者: wulin    時間: 2018-5-15 13:40
這段程序不嚴謹,應該給value賦初值=0,由于定義的是靜態變量static uchar value;,編譯器默認初值=0,value在每次定時器0中斷時自加1,所以他的值是從0~255周而復始,if(value % 2 == 0)判斷value是偶數,flag_100ms標志置1,否則直接結束程序。
作者: tp80986735    時間: 2018-5-15 14:25
1,value靜態變量默認初值唯一,并且每次中斷進來后value保持上一次的值。
作者: tp80986735    時間: 2018-5-15 14:28
1,value是static靜態變量,初始化值為0,并且每次進入中斷value是保持上一次的值,也就是每次進入中斷后value值加1。第一次進入是0,第二次是1,第三次是2.。。。
2,這是定時器中斷,也就是每50ms就會執行一次,并且value保持上一次的值,也就是每100ms if條件成立,執行if條件下面的程序。
作者: sls_qj    時間: 2018-5-15 15:36
哇啊啊啊啊啊你們好善良,就這么一會這么多人回復,太感動了謝謝!!
先仔細看看你們說的

作者: fzhlpp    時間: 2018-5-15 16:13
開始的100ms可以成立一次,之后是每1秒大概成立4次,可能程序在測試階段沒完成,原本可能是每100ms就置位一次flag_100ms標志。但是應該在判斷語句里清零靜態寄存器:
if(value % 2 == 0)
{
  flag_100ms = 1 ;
  value=0;
}
這樣就有點意思了,不然上面的程序都不好分析,因為255/2不能整除,后面的標志位出現的時機就不知道啥意思了.....
作者: sls_qj    時間: 2018-5-15 16:50
知道第一問了,第二問,為什么要有個if語句在這呢?
作者: zhdp    時間: 2018-5-15 17:48
zhdp 發表于 2018-5-15 13:27
默認初值為0;沒循環,但每累加2次執行一次if里面的語句;

50ms中斷一次,value +1,再50ms中斷一次,再value +1,value/2表示偶數時執行if語句,但你沒value清0,所以value到255時就不再增加了 value=255,不循環。if是判斷語句,你沒學過嗎?
作者: penggc    時間: 2018-5-15 17:51
value默認是0,每次自增1;if是判斷value的值是否是偶數情況,是就將falg_100ms置1,
作者: sls_qj    時間: 2018-5-15 19:30
zhdp 發表于 2018-5-15 17:48
50ms中斷一次,value +1,再50ms中斷一次,再value +1,value/2表示偶數時執行if語句,但你沒value清0, ...

學過,但不知道這里為什么50ms中斷一次。。。
作者: sls_qj    時間: 2018-5-15 19:33
噢噢噢噢知道了 是定時器 所以50ms中斷一次




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1