專注電子技術(shù)學習與研究
當前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

也許是最簡單的旋轉(zhuǎn)編碼器程序, 占用一個外中斷

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年05月22日   【字體:

 #define ROTATE_A PIND.2

#define ROTATE_B PIND.3
 
uchar CW=0;
uchar CCW=0;
 
// External Interrupt 0 service routine
interrupt [EXT_INT0] void ext_int0_isr(void)
{
if(ROTATE_A!=ROTATE_B)
    {
        CW++;   
    }
        else CCW++;
}
 
void main(void)
{
        if ((CW|CCW)!=0)
            {
            DATA=DATA+CW-CCW;
            }
        CW=0;
        CCW=0;   
        delay_ms(50);
}
 
 
//////////////////////////////////////////
 
占用一個外中斷,電平變化觸發(fā),CW是順時針轉(zhuǎn)過的脈沖,CCW是逆時針
 
每50ms處理一下數(shù)值,如果想要出錯,起碼脈沖時間要比50ms/256短才行,手指是沒可能達到這速度
關(guān)閉窗口

相關(guān)文章