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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include "main.h"3 a9 }, @) }5 p8 _+ a: Z

/ p) V; y7 h" N' y/ d9 i% e# ~7 [$ a3 r' F
u8 t=50;5 ~2 I# Z$ k. s1 `

2 X4 {3 ^+ J) Fvoid anjian_add() //电机减速/ B. y! I/ a$ t8 W/ M4 @/ d* L& C) n
{8 b3 p+ e- t  K( F
        if(key_add==0)" R# b& ^9 U+ X' n8 Q
        {
/ ?6 A! j4 F3 K) N: B: Z                if(key_add==0)
+ U+ J4 ]! P# Z8 Y6 O# w/ ~6 C9 l                {  r9 Z3 X1 ?% I6 }
                        t+=5; //每按一次加速按键占空比减17 Z7 s. s" g' W  c3 J
                        if(t>=255) //限定占空比下限6 N7 f( `$ X+ H7 N2 [
                        {
( L0 j& q6 U% o# e& @# c                                t=255;
1 ?2 e3 |, x; U% l1 Y% P3 h; X                        }1 j2 E9 W( e, I2 D7 B) v
                }. Z+ E$ A' ^& x: i( Z0 T
        while(!key_add);- b" e2 y6 N  t0 D
        }
4 G% K* I2 M4 v# o! d8 [* ^7 X6 Y}
+ \! y/ U6 k  _: F+ a3 i9 ?1 a  g' O$ O9 _+ `8 z; N

1 G0 A+ U; A% y& U8 l& h  xvoid anjian_dec()//电机加速
" [) w( j4 \; C9 x, _6 E{
4 {* I! G" S& ]0 e2 d4 |$ Y$ z9 R8 E+ k        if(key_dec==0)3 T* a. ]- e  T" n6 D7 c
        {
3 e% c3 b" R. L% c7 D                if(key_dec==0)5 V: ^2 u, _+ p, \
                {
" ?  S0 V8 r) `9 ~* c5 @  [5 x                        t-=5; //每按一次按键占空比加1! _/ L- `% I3 I. X3 |: `: G3 Y% c
                        if(t<=0) //限定占空比上限9 y8 N. Q5 k3 `' D# v
                        {
* z, E( C5 F! R  P7 W                                t=0                                ;, \6 h! w4 n  F3 a; [5 G( h1 `% N. Z
                        }
) P! F/ e2 A2 g4 H; m5 \# e                }
8 o1 T4 \1 ~$ |1 D8 g: ?( J                while(!key_dec);! W+ g% z4 @6 J+ G3 X; T4 [; L, ^
        }, C* u* k  V, F. |! E: L- L2 Q
}8 @) a6 ?3 P( N/ d
" \, N3 N2 N, Z" ]0 _
void PWM_shuchu()
3 R: v, n, i7 v{  
( |9 t% i9 H8 e1 E                CCON = 0x00;  3 Y# ?7 u/ t3 ]/ l3 r
                CMOD = 0x08; //PCA时钟为系统时钟  
, b& K% O) H: H: g( d' P                CL = 0x00;
# l. ^, Q, T, U, l) H  ]          CH = 0x00;! ?$ }5 g, p  {) J5 c8 L, h7 H8 y: R- ^; ~- h
          CCAPM2 = 0x42; //PCA模块2为PWM工作模式  
3 r$ [8 G' U/ `                PCA_PWM2 = 0x00; //PCA模块2输出8位PWM  , P5 G( D8 q7 I% x" L
                CCAP2L = t; //PWM占空比为81%[(100H-20H)/100H]  
7 F1 U, u+ h0 @# z8 s) ?, {, \/ |                CCAP2H = t;7 j3 _2 W6 V' X: X1 s9 X$ a  a& H
           CR = 1; //启动PCA计时器   
5 x: {% j2 |6 h2 r' y* t}9 C8 O6 i( b- @: G% B! a) v
  • 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:29
    ( j- @! u  J' c" z看了一下,你的程序不是很完整吧,按键的定义,原理图那些都没有,而且你的按键程序是不是应该加一个消抖呢

    5 i6 l& E' h' D& p! Nwhile(!key_dec);有消抖) }' H1 ^: I" i1 ?1 @% \8 A
  • 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-7-18 09:25 , Processed in 0.125000 second(s), 27 queries , Gzip On.

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

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

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