激情综合丁香-激情综合六月-激情综合婷婷亚洲图片-激情综合图区-激情综合网五月


主題:關于串口中斷的問題

  共有37592人關注過本帖    
shtupc
1樓


關于串口中斷的問題  發帖心情 Post By:2008-1-6 7:57:00   [只看該作者]

在 ETR100.cpp文件中,有一個NB_Delay函數,里面調用了ReadTimer0( )函數,而ReadTimer0( )函數中有一句cli關中斷的指令,我想問一下,在關中斷這段短暫的時間里,如果外部設備通過串口發送過來數據,會不會因為中斷系統是關閉的而丟掉,如何解決,謝謝!
下面是這兩個函數的程序:
void NB_Delay( unsigned int milliseconds )
{
   unsigned long stop;
   unsigned cur, prev;

   prev = ReadTimer0( );
   stop = prev + (milliseconds * MULTIPLIER);

   cur = ReadTimer0( );
   while( cur < stop )
      {
      if(cur < prev)     /* Check for timer wraparound */
 {
 if (stop < TMR0SIZE) break;
 stop -= TMR0SIZE;
 }
      prev = cur;
      cur = ReadTimer0( );
      }
}

unsigned int ReadTimer0( )
{
  asm pushf                    /* Save interrupt flag         */
  asm cli                      /* Disable interrupts          */
  asm mov  al,0h               /* Latch timer 0               */
  asm out  43h,al
      dummy();                 /* Waste some time             */
  asm in   al,40h              /* Counter --> bx              */
  asm mov  bl,al               /* LSB in BL                   */
      dummy();                 /* Waste some time */
  asm in   al,40h
  asm mov  bh,al               /* MSB in BH                   */
  asm mov  ax, 0f533h          /* */
  asm sub  ax, bx
  asm mov  bx, ax         /* Need ascending counter      */
  asm popf                     /* Restore interrupt flag      */
  return( _BX );
}

  單帖管理 | 引用 | 回復 回到頂部
x10
2樓


  發帖心情 Post By:2008-1-6 9:53:00   [只看該作者]

不會,ICU會保持中斷請求,一旦系統enable()或sti,就會響應中斷。可以在ReadTimer0()最后加一條sti:

unsigned int ReadTimer0( )
{
asm pushf /* Save interrupt flag */
asm cli /* Disable interrupts */
asm mov al,0h /* Latch timer 0 */
asm out 43h,al
dummy(); /* Waste some time */
asm in al,40h /* Counter --> bx */
asm mov bl,al /* LSB in BL */
dummy(); /* Waste some time */
asm in al,40h
asm mov bh,al /* MSB in BH */
asm mov ax, 0f533h /* */
asm sub ax, bx
asm mov bx, ax /* Need ascending counter */
asm popf /* Restore interrupt flag */
asm sti  /* enable sti */
return( _BX );
}

  單帖管理 | 引用 | 回復 回到頂部
shtupc
3樓


  發帖心情 Post By:2008-1-7 7:50:00   [只看該作者]

謝謝了!
順便再問一句,如果在ReadTimer0()最后沒有加sti的話,系統會不會一直關中斷啊?

  單帖管理 | 引用 | 回復 回到頂部
x10
4樓


  發帖心情 Post By:2008-1-7 9:26:00   [只看該作者]

不會,很多系統函數都會打開中斷。

  單帖管理 | 引用 | 回復 回到頂部

返回首頁

關于串口中斷的問題

用戶名:
            驗證碼: 驗證碼,看不清楚?請點擊刷新驗證碼
內容:
主站蜘蛛池模板: 黄免费在线观看| 色片在线免费观看| 国产精品久久久久久小说| 91久久国产露脸国语对白| 久久99精品久久久久久久野外 | 国产成人精品曰本亚洲78| 黄色录像一级片| a性视频| 狠狠久久综合| 免费人成综合在线视频| 亚州a| 亚洲精品一区二区三区| 51精品国产| 大陆一级毛片免费视频观看i| 曰韩美女一级视频| 亚洲欧美日韩中文v在线| 伊人青青久| 免费国产一区二区在免费观看| 国产一级淫片免费大片| 国产真实搭讪系列| 制服丝袜视频在线| 特级全黄一级毛片视频| 精品国产97在线观看| 成人国产精品免费视频| 国产欧美一区二区三区免费| 久久精品国产福利国产琪琪 | 中国女人特级毛片| 亚洲看黄| 亚洲精品xxx| 亚洲精品一区二区三区四区五区| 成人黄色小视频| 污网址免费| 色久在线| 成人精品区| 黄色片免费观看网站| 12306播播影院午夜爱我影院| 草草网站| 99久久99这里只有免费费精品| 国产成人精品第一区二区| 国产成人综合网在线播放| 国产精品高清视亚洲乱码|