//算法一
uint8_t KeyA_Last;
uint8_t KeyB_Last;
uint8_t KeyA_Now;
uint8_t KeyB_Now;
int EC_Counter;
int EC_CountTemp;
void Encoder_Ini()
{
KeyA_Last = P10;
KeyB_Last = P11;
}
void Encoder_Run()
{
KeyA_Now = P10;
KeyB_Now = P11;
EC_Counter +=(1 ^ (KeyA_Last ^ KeyB_Last)) * (int)((KeyA_Last ^ KeyA_Now) - (KeyB_Last ^ KeyB_Now)); //更新計數
KeyA_Last = KeyA_Now;
KeyB_Last = KeyB_Now;
}
lzzasd 發(fā)表于 2023-12-14 11:56
經過測試 樓主的程序運行穩(wěn)定 算法精簡高效 感謝樓主
只是 (int)((KeyA_Last ^ KeyA_Now) - (KeyB ...
zyhlove813 發(fā)表于 2023-12-14 13:08
編譯什么提示?我是keil4 C51 編譯正常,會不會少了個括號標點之類的?
zyhlove813 發(fā)表于 2023-12-14 13:08
編譯什么提示?我是keil4 C51 編譯正常,會不會少了個括號標點之類的?
發(fā)表于 2023-12-24 19:28
樓主鉆研精神可嘉,學習了。
lzuoxin 發(fā)表于 2023-12-25 18:09
樓主的算法還需要硬件消抖電路嗎
zyhlove813 發(fā)表于 2023-12-25 21:04
正常應該是要的,我是網購的模塊,帶電阻和電容濾波,不硬件濾波,你自己可以試下。
youlinys 發(fā)表于 2023-12-31 21:35
講解得很詳細。UP厲害人。
zyhlove813 發(fā)表于 2024-7-10 13:28
這么特異的算法都沉底了
kkfy888 發(fā)表于 2024-11-10 21:39
看了up的視頻,特意搜了關鍵字找到了^_^
zyhlove813 發(fā)表于 2023-12-13 23:11
同時貼上lkc8210發(fā)表的算法:
//算法四: 編譯大小不錯,只適合單倍頻
uint8_t KeyA_Last;
邰夏留 發(fā)表于 2025-2-18 09:57
請教一下樓主,這個怎么消抖的呢?
zhang32568 發(fā)表于 2025-2-20 10:54
我經常使用的程序。非常靈敏!定時器3毫秒以內都毫不拖泥帶水。
sbit EC11_A = P3^5; //EC11 A ...
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |