久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STM8S003外部中斷識別機械式編碼器的正反轉
[打印本頁]
作者:
zhangxing008
時間:
2015-11-10 09:28
標題:
STM8S003外部中斷識別機械式編碼器的正反轉
最近在項目上,用到鼠標上用的編碼器,按照廠家給的編程方法,發現容易產生誤判,故而自己用外部中斷的方式來做,發現這樣誤判的情況會得到很大的改善,現發上來與大家分享。
#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;
}
作者:
51黑er
時間:
2015-11-10 14:36
樓主你好 謝謝分享 2個頭文件是 系統自帶的嗎?
作者:
luhuimin
時間:
2018-7-7 09:38
你這種中斷的方式,也會產生誤判;
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩视频免费
|
www操
|
亚洲精品在线视频
|
欧美日韩国产激情
|
午夜性色
|
国产精品一区在线播放
|
国产精品久久久久久久久久久久久
|
日本国产欧美
|
青草视频在线观看免费
|
一级片免费视频
|
理论片中文字幕
|
成年免费视频黄网站在线观看
|
成人动漫在线看
|
综合99
|
欧美日韩免费在线
|
三级在线免费观看
|
欧洲精品一区二区
|
国产精品成人一区二区
|
亚洲色诱
|
亚洲激情另类
|
一级黄色网
|
欧美黑粗大
|
国产一级黄
|
黄色av网站在线观看
|
欧美精产国品一二三区
|
黄视频免费在线观看
|
国产性生活视频
|
久久艹精品
|
97色在线
|
成人9ⅰ免费影视网站
|
一级片久久
|
日韩三级久久
|
久久久蜜桃
|
成人黄色在线
|
日本一级做a爱片
|
久在线观看
|
亚洲精品一二三区
|
精品一二三
|
国产精品高潮呻吟久久
|
五月天婷婷激情网
|
色婷婷国产
|