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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include "main.h"& Y2 N; q8 v3 u. |2 n5 R" c

' A: I. L( L! P6 @0 ?; ]- J( e2 J- g- w" A0 x8 L3 K8 U) ]* \
u8 t=50;0 ^4 {. x% o& c+ _, l! F2 u1 X
, Y# ~4 E8 {0 K9 T8 I- u
void anjian_add() //电机减速2 |' @( m  Z: @$ p) M1 Q
{/ A5 ^; J  o2 R) S/ m) [/ _
        if(key_add==0)
' i, A4 q4 M5 ^        {
2 R# R: ?  S% @. E# g3 [# n7 Y# @                if(key_add==0)
1 X# ~2 s4 t, Q( `7 s+ _4 [                {
# o" D" ^, |; h. R4 H9 {' D                        t+=5; //每按一次加速按键占空比减1
8 c6 ~0 m( E! b, a- ~$ f                        if(t>=255) //限定占空比下限
. i5 d) M* `0 F2 ?  w                        {# E6 \* Y' U( t' z* a1 E
                                t=255;, [% N' \- Q7 a% v1 [! p
                        }3 ]% X- \' S, w  [- N
                }
; ^% h1 I: h! L+ n3 N; f6 F        while(!key_add);
# B, [; |6 Y6 V$ D5 n( L' ~        }
. f. `# M" U, j# q}) F, p7 D: A3 Y
  n( a7 X  l* Q9 a
) h/ F5 u( T. p; N8 C$ R6 [
void anjian_dec()//电机加速
+ Z3 H) w) H& p% Y3 p{/ }5 o/ l$ o5 O1 _0 ]
        if(key_dec==0)
+ _% M" q7 |4 [1 m" f        {' z- E+ K8 G9 L
                if(key_dec==0)
9 B) `4 |4 q& L1 J. T                {+ u2 y- h4 e0 N0 @6 w4 h# e, X2 v0 L
                        t-=5; //每按一次按键占空比加1
- R; Y! g. }* U- h+ g) p                        if(t<=0) //限定占空比上限
2 q6 {: t) D% Z5 L                        {( b2 c3 E) m7 t; f: J9 I  n
                                t=0                                ;
, e5 H2 L: N" p3 T& E1 G7 c                        }
- C+ k7 L4 ]" R- Q+ N$ m% L7 N                }7 n8 v9 l$ a9 w  V+ l$ |4 k
                while(!key_dec);$ I# ]/ }9 I( ~3 w/ C7 A9 S9 c
        }( X7 x5 z* b$ x& ]
}* h7 p% }: F0 ^2 {% h
/ G3 w3 b1 G8 k! y% b% S
void PWM_shuchu()
3 ~+ v" d- @7 M{  3 D1 m8 h/ P' T+ s5 H  O
                CCON = 0x00;  " ^/ v' [2 N' ^% ?
                CMOD = 0x08; //PCA时钟为系统时钟  
! @" T4 C; N" V# V4 b                CL = 0x00;4 c# D# A# M5 @6 `4 h1 `0 S
          CH = 0x00;
+ l) z  ]) k  w4 v- j          CCAPM2 = 0x42; //PCA模块2为PWM工作模式  6 `( i' g1 \" ]
                PCA_PWM2 = 0x00; //PCA模块2输出8位PWM  
9 [! B9 Z9 ~/ m8 _3 c0 `                CCAP2L = t; //PWM占空比为81%[(100H-20H)/100H]  + G& b  x8 N3 ]( [8 X, N9 L0 d5 }. ?
                CCAP2H = t;
1 I) ?9 @& y2 ]/ |2 X' S           CR = 1; //启动PCA计时器   : R8 B* b' ]2 Y3 P
}
, [6 m/ J4 f4 @* T, R1 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
    8 P* n9 g% [0 N看了一下,你的程序不是很完整吧,按键的定义,原理图那些都没有,而且你的按键程序是不是应该加一个消抖呢
    ( V1 h+ Z' r* l* a
    while(!key_dec);有消抖
    4 N& q) d# A( n) h
  • 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-10-8 23:05 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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