久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4583|回復: 2
打印 上一主題 下一主題
收起左側

STM8S003外部中斷識別機械式編碼器的正反轉

[復制鏈接]
跳轉到指定樓層
樓主
ID:95245 發表于 2015-11-10 09:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近在項目上,用到鼠標上用的編碼器,按照廠家給的編程方法,發現容易產生誤判,故而自己用外部中斷的方式來做,發現這樣誤判的情況會得到很大的改善,現發上來與大家分享。
#include "stm8s103f3p.h"
#include "stm8s_bitsdefine.h"
#include "typedef.h"
#define  CodeA PB_IDR_0
#define  CodeB PB_IDR_1
uint8_t CodeB_last,CodeB_current,whe_ch,ADJ;
void UART1_Init(void)
{   
        UART1_CR2=0x00;        
        UART1_CR1=0x00;           
        UART1_CR3=0x00;           
        UART1_BRR2=0x00;
        UART1_BRR1=0x0d;         
        UART1_CR2=0x2C;              
}
void UART1_SendChar(uint8_t  ch)
{
        while((UART1_SR & 0x80) == 0x00);
        UART1_DR = ch;  
        
}
void IO_Init(void)
{
        PB_DDR=0x04;
        PB_CR1=0x07;
        PB_CR2=0x01;
}
void EXTI1_INIT(void)
{
        EXTI_CR1=0x08;
}
main()
{
        IO_Init();
        EXTI1_INIT();
        UART1_Init();
        _asm("rim");
        while(1) ;
}
@far @interrupt void EXTI1_IRQHandler(void)
{
        _asm("sim");
        whe_ch++;
        if(whe_ch==1)
        {
                CodeB_last=CodeB;
                IO_Init();
                EXTI_CR1=0x04;
        }
        if(whe_ch==2)
        {
                whe_ch=0;
                CodeB_current=CodeB;
                IO_Init();
                EXTI_CR1=0x08;
        }
        if((CodeB_last==1)&&(CodeB_current==0))
        {
                ADJ++;
                UART1_SendChar(ADJ);
        }
        if((CodeB_last==0)&&(CodeB_current==1))
        {
                ADJ--;
                UART1_SendChar(ADJ);
        }
        _asm("rim");
        return;
}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的積分獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94349 發表于 2015-11-10 14:36 | 只看該作者
樓主你好 謝謝分享  2個頭文件是 系統自帶的嗎?
回復

使用道具 舉報

板凳
ID:359215 發表于 2018-7-7 09:38 | 只看該作者
你這種中斷的方式,也會產生誤判;
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产蜜臀97一区二区三区 | 国产91av视频在线观看 | 99r在线| 成人在线精品视频 | 亚洲欧美一区二区三区国产精品 | 一区二区不卡视频 | 一级高清视频 | 免费黄色的视频 | 在线婷婷 | 麻豆av一区二区三区久久 | 亚欧洲精品在线视频免费观看 | 精品国产成人 | 国产视频导航 | av一区二区三区四区 | 久久精点视频 | 国产综合久久 | 国产一区二区三区视频 | 日韩精品一区二区三区中文字幕 | 亚洲精品乱码久久久久久黑人 | 日韩精品中文字幕一区二区三区 | 成人国产免费视频 | av大片| 国产精品精品视频一区二区三区 | 亚洲国产成人在线视频 | 好好的日在线视频 | 精品久久久久久久人人人人传媒 | 久久人体 | 国产欧美日韩视频 | 精品一区二区三区四区 | 国产精品视频一二三区 | 欧美jizzhd精品欧美巨大免费 | 亚洲日日夜夜 | 精品国产乱码久久久久久牛牛 | 欧美成人精品一区二区三区 | 免费日韩av | 亚洲一区二区欧美 | 久久中文字幕一区 | 毛片区| 国产成人久久精品一区二区三区 | 91色网站 | 99视频免费 |