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

这个单片机程序为什么按键按了没反应?有什么问题吗

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include "main.h"8 e" T  L" q5 Q% p4 k' @
& Y5 z% x$ O  f0 ~/ Q* p% I

5 M% K& F; H$ R' z5 I! R  Ju8 t=50;- Q' O* }4 k; o9 x0 M' P

: o$ ?7 Z* ?! l/ p; Hvoid anjian_add() //电机减速
8 b1 i* Z$ m5 g! L  Q  h' y- U, @{" H' X0 S( E5 M
        if(key_add==0)" \' N/ W! U% {3 x4 D. R" A" i/ m
        {
8 ?* u. p! E1 u& p- y. R( S                if(key_add==0)" E) b" r/ ]1 Q7 O
                {6 g7 M. l1 d- Z: }9 g2 ^
                        t+=5; //每按一次加速按键占空比减1
) x. R# I0 m) P( |0 t  O. O& E                        if(t>=255) //限定占空比下限" c: |6 y7 V* o/ G
                        {
! @3 H7 U7 b" |7 L2 v                                t=255;
" n  r3 I5 @. j/ W7 v* |                        }
) E3 C. q8 [" ?/ f                }
8 r5 j) a# c9 k0 y/ Y; e        while(!key_add);( G+ o9 `1 K, A8 `, M9 i$ H3 v* G, P
        }
( |: A3 v0 i. \& J: [/ ^}
% u& U3 o( J& y. F% o' S( Y9 z" p! ~* y# T' w9 h/ E

( h) Q+ G$ N' @" c% Kvoid anjian_dec()//电机加速
1 ~7 v  T* L' U3 H1 p{
5 u  k5 a1 P8 e" O2 J! `# x9 ^. ^% D        if(key_dec==0)
0 s' B7 p: u  j- g- _9 K        {7 Q) S7 Z& w9 x
                if(key_dec==0)% s# s) X' C+ }* C
                {6 N- K$ R1 S' E! i5 B2 N7 J: W
                        t-=5; //每按一次按键占空比加1; d, ]- W; a8 z) @5 v
                        if(t<=0) //限定占空比上限! u% ~6 p6 n3 Q
                        {( T/ q" h8 n- @9 l. ]8 N! X
                                t=0                                ;$ Q/ T2 M6 M- ^: ?
                        }
: o9 T$ Z9 V  ]+ V' p4 _                }& |) ?# Q. H% U) o% R+ X# |4 _
                while(!key_dec);
  I% t8 S0 m& \        }
2 G1 f& ~3 `2 M3 z5 v8 O. F}3 K" \1 ?5 }3 {  j

" g) {1 f* U5 {; T  X- K$ Dvoid PWM_shuchu()
+ U/ l3 u" e  h& m% d5 e$ n/ O{  
/ g5 I5 l  a/ A5 M8 D$ a                CCON = 0x00;  2 F+ e  ?" f: X9 S9 @
                CMOD = 0x08; //PCA时钟为系统时钟  & _7 Y' Y+ s* {$ G0 s
                CL = 0x00;+ z4 A& r3 Y8 W
          CH = 0x00;
" q* j. B- E) m  ~% g8 m/ T$ P2 x          CCAPM2 = 0x42; //PCA模块2为PWM工作模式  
, y6 v$ K4 b' q5 K1 x                PCA_PWM2 = 0x00; //PCA模块2输出8位PWM  % ~! w& @6 o1 [: Q! N
                CCAP2L = t; //PWM占空比为81%[(100H-20H)/100H]  
9 p% k; v: O* U                CCAP2H = t;$ s! L* H" e$ T! ^
           CR = 1; //启动PCA计时器   
& C" {7 b& I/ N7 ~9 o}
! }! q( |: J" P* w% n
  • TA的每日心情
    奋斗
    2022-1-21 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2022-7-1 15:29 | 只看该作者
    看了一下,你的程序不是很完整吧,按键的定义,原理图那些都没有,而且你的按键程序是不是应该加一个消抖呢

    点评

    while(!key_dec);有消抖  详情 回复 发表于 2022-7-1 15:30

    该用户从未签到

    3#
     楼主| 发表于 2022-7-1 15:30 | 只看该作者
    nocturne 发表于 2022-7-1 15:293 C# i+ Q7 f. v8 F! T
    看了一下,你的程序不是很完整吧,按键的定义,原理图那些都没有,而且你的按键程序是不是应该加一个消抖呢

    , X6 X, M* m7 R3 X" d9 Xwhile(!key_dec);有消抖0 [- l, R# ?" O  e. ^! ~
  • TA的每日心情
    开心
    2022-1-24 15:10
  • 签到天数: 1 天

    [LV.1]初来乍到

    4#
    发表于 2022-7-1 17:18 | 只看该作者
    这个不是消抖,是等待按键释放。
  • TA的每日心情
    开心
    2022-1-21 15:08
  • 签到天数: 1 天

    [LV.1]初来乍到

    5#
    发表于 2022-7-1 17:22 | 只看该作者
    你的程序上电就执行一次检测按键。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-11 16:34 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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