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


主題:關(guān)于串口中斷的問題

  共有37576人關(guān)注過本帖    
shtupc
1樓


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

在 ETR100.cpp文件中,有一個NB_Delay函數(shù),里面調(diào)用了ReadTimer0( )函數(shù),而ReadTimer0( )函數(shù)中有一句cli關(guān)中斷的指令,我想問一下,在關(guān)中斷這段短暫的時間里,如果外部設(shè)備通過串口發(fā)送過來數(shù)據(jù),會不會因為中斷系統(tǒng)是關(guān)閉的而丟掉,如何解決,謝謝!
下面是這兩個函數(shù)的程序:
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 );
}

  單帖管理 | 引用 | 回復(fù) 回到頂部
x10
2樓


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

不會,ICU會保持中斷請求,一旦系統(tǒng)enable()或sti,就會響應(yīng)中斷。可以在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 );
}

  單帖管理 | 引用 | 回復(fù) 回到頂部
shtupc
3樓


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

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

  單帖管理 | 引用 | 回復(fù) 回到頂部
x10
4樓


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

不會,很多系統(tǒng)函數(shù)都會打開中斷。

  單帖管理 | 引用 | 回復(fù) 回到頂部

返回首頁

關(guān)于串口中斷的問題

用戶名:
            驗證碼: 驗證碼,看不清楚?請點擊刷新驗證碼
內(nèi)容:
主站蜘蛛池模板: 毛片三| 亚洲欧美小视频| 国产91综合| 丁香婷婷激情综合| 开心激情站| aaa毛片免费观看| 日本免费在线一区| 亚洲成a人片在线观看播放| 欧美日韩在线高清| 国产成人综合亚洲| 狠狠亚洲婷婷综合色香五| 999国产精品视频| 国产精品亚洲一区二区三区正片| 亚洲另类在线观看| 91国在线观看| 中文字幕专区在线亚洲| 国产12页| 国产美女精品| 草草草网站| 黄色片免费播放| 久久草在线观看| 亚洲综合色站| 日本特黄特色大片免费视频观看 | 国产亚洲精品看片在线观看| 黄色免费网站在线看| 99视频在线精品自拍| 免费看欧美日韩一区二区三区| 亚洲第一区在线| www.久久精品视频| 久久999视频| 久久综合在线| 日本久久久久亚洲中字幕| 中日韩毛片| 中国一级大黄大片| 这里是九九伊人| 国产欧美日韩综合精品一区二区 | 91久久精品午夜一区二区| 日欧毛片| 日美一级毛片| 女黄色片| 毛片大全免费|