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

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

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

作者:佚名   來源:本站原創   點擊數:  更新時間: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);
}
 
 
//////////////////////////////////////////
 
占用一個外中斷,電平變化觸發,CW是順時針轉過的脈沖,CCW是逆時針
 
每50ms處理一下數值,如果想要出錯,起碼脈沖時間要比50ms/256短才行,手指是沒可能達到這速度
關閉窗口

相關文章