找回密码
 注册
关于网站域名变更的通知
查看: 163|回复: 1
打印 上一主题 下一主题

单片机旋转编码器程序调试问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-1-5 11:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
6 ^! }5 x. r1 J/ o% z: x$ C( R7 d
论坛的各位老铁你们好!!!向你们请教几个问题。
& E# J/ e( ~9 d! A( Z2 v  N% p
1 m* E9 x% `: t; `0 o6 E0 Juint8 integer=0;//整数8 F2 {" h3 E2 O) J$ A: p7 o
uint8 decimals=0;//小数# I0 ?2 A+ M7 g( G, s

0 }* a3 V! T8 s' C1 R是这样的我搞了一个旋转编码器 想法是这样的:就是说使用4数码管来显示旋转编码器的值分为整数位和小数位,编码器控制decimals小数变量加加和减减实现目的是小数每加到99,integer整数步进加1。搞来搞来整数怎么也加不上去  小数减也减不回来。思路倒是有小数每到99整数加1 小数往回减99整数减1在程序上怎么也写不出来实现不出来看来我还是道行潜了,所以来请教请教论坛的老铁们,感激不尽!!
! T9 i" a4 M' o5 h! ^; k  G下面这函数是我的旋转编码器的一个服务函数:3 d/ ~1 I  ?2 K% |/ h
" ~: o7 u% M  @) A) b
, g5 G5 {8 h9 D+ J0 p; }
void ROTARY_ROTARY_Service()//旋转编码器服务函数放到主循环里循环调用
0 T9 Z& ~0 c9 @& E8 u{8 Z# i/ {5 z1 I6 l' S
        static xdata uint8 Count=0;
$ m3 z. g# D. _. f- t% v% g
; c: S9 m# [) H3 I9 }        Count++;
% X1 t1 o/ K- r6 G3 ~5 g+ v
# K0 p6 U5 J5 S7 j, X        if(Count>=250)# e8 ^7 l1 @3 {  @% Q
        {/ c& I7 z  Q8 b$ \$ ^
                Count=0;: i$ C4 Q& `( O% D& j; M' E7 B

, E8 @  K1 u; w8 P                switch(Read_ROTATE_Data)
% C* J  I/ Z8 k& d* G9 [" Z3 m: y                {
3 ^+ L5 A2 L3 j! \                        case(1)://左转
0 \# ~8 M5 I+ s  F( q; P( A( @9 r6 @                                        decimals--;
. t- U4 o' Q) l                                        if(decimals>=99)
& p5 `8 k% b8 X( X4 g/ Q                                        {+ b  i5 W  K; H
                                                decimals=99;
- f; ]/ R1 n4 w4 u% R4 Z/ {+ X                                        }
# D9 M  {4 ^+ y$ M+ i2 V                                        Read_ROTATE_Data=0;( D! \+ @" s2 R* W& H
                                                                                                break;
0 }( N. O. S4 f$ K- L                        case(2)://右转
& _$ X+ u+ g/ Z; W- M& O. ^                                        decimals++;. D" `! m8 v9 `+ V$ d, k
                                        if(decimals>=99)
; U  v  M' L. {: e0 e! C                                        {
# ~/ w$ c3 ~% X/ W" V                                                decimals=0;6 h9 H3 d6 c! b
                                        }
+ z4 l$ Z; g3 ^0 T  l0 n7 j3 E" ?                                        Read_ROTATE_Data=0;0 C8 D8 {0 r4 n$ z: d
                                                                                                break;3 ?$ F7 j4 a$ N3 k' t1 j
                        default:break;
0 \9 m% K8 N$ U" k2 t                }8 C6 Z0 P& M( o8 ?$ _
        }
( o$ U1 P7 G1 O}
9 y& C! I" _. y8 g& X  ?9 `
) ~9 Q# S4 h! `) e

该用户从未签到

2#
发表于 2022-1-5 15:46 | 只看该作者
switch(Read_ROTATE_Data)& T6 O# o% f# e4 H7 a
                {
$ K/ P9 y# p9 j' C- E3 M' _& j% M                        case(1)://左转
' K2 M5 d! U' Q# U                                        decimals++;2 `* }) X: G2 {4 n; a* G, c
                                        if(decimals>=99)
. F# h2 M$ V' @% e+ s                                        {
& c6 L9 [5 G: h, c                                                decimals=99;# X/ u8 U4 `/ [, ~, E: W+ h
                                        }
5 `/ `( @0 a3 n' Y) I$ Z                                        Read_ROTATE_Data=0;
, v' \" }; [' ^! ^$ i                                                                                                break;
: D" I* Q5 s2 b: r6 O9 _                        case(2)://右转+ k9 v. @5 @2 n. A% j. v9 Z
                                        decimals--;* X, t  D; D% O
                                        if(decimals<=0)+ P9 M* C- T( `' |8 m
                                        {
- p8 R+ ^9 l4 \* [' I                                                decimals=0;
; A5 x1 q+ K5 e. }! u3 `, f) n( F                                        }$ C, k* x+ G6 L2 ^5 R
                                        Read_ROTATE_Data=0;) N9 ^3 t% H  V/ U
                                                                                                break;3 j2 y: ?$ t2 r6 ]4 u
                        default:break;% v, o" [. O. M( M" e! t( p
                }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-9 09:06 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表