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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

1 b2 p0 P( l8 ]/ _; c, O论坛的各位老铁你们好!!!向你们请教几个问题。9 e* Z+ S: d; y+ k& F8 z$ C; e
3 w/ ~1 w/ s/ k+ r' ]
uint8 integer=0;//整数
" k- c: P: }0 K0 h( r- G( Muint8 decimals=0;//小数
' u9 J9 r4 }; f; A# n: E+ H' R: m
" O* R/ U8 c5 e7 e1 D& B( |) Q是这样的我搞了一个旋转编码器 想法是这样的:就是说使用4数码管来显示旋转编码器的值分为整数位和小数位,编码器控制decimals小数变量加加和减减实现目的是小数每加到99,integer整数步进加1。搞来搞来整数怎么也加不上去  小数减也减不回来。思路倒是有小数每到99整数加1 小数往回减99整数减1在程序上怎么也写不出来实现不出来看来我还是道行潜了,所以来请教请教论坛的老铁们,感激不尽!!
  Z& u- E. C6 m$ @下面这函数是我的旋转编码器的一个服务函数:
  m" x- m" v' F+ |5 U; h9 d6 `2 S" X! X. C9 e
" O  `; o/ C  q' p) v8 H
void ROTARY_ROTARY_Service()//旋转编码器服务函数放到主循环里循环调用
2 s+ }' }& w9 X/ w8 I; z8 o+ \{4 V5 Y0 S$ e- o5 w( i9 k& U
        static xdata uint8 Count=0;- h. R* a- ?) \4 R, {! }1 O

/ E3 u# k/ L' |# A" U! L2 w  B! d        Count++;
/ `& X+ V. d8 C8 H! q0 a1 N- a1 n: O
        if(Count>=250)
" X$ G0 d% F. z3 p3 m7 Y, y) A' W        {) {; a' `. j, n% n$ g1 L
                Count=0;* g, B5 Q4 Q6 ?
& V6 `; y1 A, h2 ]
                switch(Read_ROTATE_Data)0 c' a/ q* _9 u8 M' j  K3 C% S
                {
8 J! T  z4 ^: t0 c& H                        case(1)://左转; P# e$ b& d' j& O% `
                                        decimals--;- j* }3 I! P0 u- o0 \/ ?: V' G8 C
                                        if(decimals>=99)
2 K: D  v5 A' i/ q% w, Z                                        {9 m- C0 o- ?% M! `0 T3 g: x: [5 t% A
                                                decimals=99;
8 p. h* e' t% o: K4 y                                        }% a1 [( z0 U, c
                                        Read_ROTATE_Data=0;
) T7 a  \' X7 ~/ H                                                                                                break;: \3 S: T# {7 T  _
                        case(2)://右转* U7 S# f2 U; n7 M
                                        decimals++;* p1 E, Z2 I9 X- G2 O. _
                                        if(decimals>=99)6 g* g* X$ U& `2 e. j# S! s5 w
                                        {& e% ~( Z6 F- [: V7 ?) W
                                                decimals=0;
" |1 N2 c/ \8 B/ M0 R; U9 C, A+ V                                        }
9 j9 [: ^/ m; A& p4 ~1 N1 r                                        Read_ROTATE_Data=0;7 A9 s; z2 q1 R( t
                                                                                                break;
/ q7 Q7 c: |- H7 v                        default:break;3 k  v) j6 G( m& k5 ?7 U; K" x2 a
                }! J% c$ d0 T0 G
        }
% N+ k$ L3 t" Z4 K' d9 }}0 Q$ _' B9 o' _" T4 [

: T2 h0 N+ z8 F

该用户从未签到

2#
发表于 2022-1-5 15:46 | 只看该作者
switch(Read_ROTATE_Data)" Z+ T# Z% N% p2 G1 m8 A- _
                {
7 D+ U' d7 ?7 v, N( d' f" V  ?                        case(1)://左转2 D' H! \  |9 F- W. Z+ J' e" F
                                        decimals++;
7 g" E( b8 s3 s" i& e6 K! z! E9 S  U7 j& \                                        if(decimals>=99)2 Y/ ?3 L+ m" L5 @" p2 u$ t- j2 y
                                        {
/ N6 G) t, p2 s3 a! K9 q                                                decimals=99;# X# ?- c1 ^2 N9 p
                                        }3 {  n' i! k$ O# m- s
                                        Read_ROTATE_Data=0;
" G( _5 ~* B  n/ g                                                                                                break;
; P6 t+ ]- J' L$ M  }# G                        case(2)://右转
- U. J$ X0 {# a- m! c                                        decimals--;
' A! ?$ X3 q0 b$ E4 ~: }3 w                                        if(decimals<=0)
' o9 r3 K5 u) Q5 h* g                                        {! c9 t  r1 _6 O- r6 v9 a# o
                                                decimals=0;5 f0 O( I" h' j
                                        }" n3 m; O) {% ?3 T0 {
                                        Read_ROTATE_Data=0;9 v! @1 G$ t" J4 l
                                                                                                break;1 d& I0 u7 g. w0 V! c5 w0 Z
                        default:break;" ]# o5 W/ L4 ~8 Q9 y, w
                }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-4 12:37 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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