找回密码
 立即注册
查看: 164|回复: 16

关于延时程序的问题

[复制链接]
  • TA的每日心情
    慵懒
    6 天前
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    20

    主题

    53

    回帖

    348

    积分

    中级会员

    积分
    348
    发表于 2024-3-21 13:09:54 | 显示全部楼层 |阅读模式

    截图202403211305432265.jpg

    使用8h8k64u主控的usb手柄,只有一个按钮,现在想实现按钮按下,虚拟按钮闪烁,也就是亮一下之后延时一段时间灭,此时按钮并没有松开,当按钮松开,虚拟按钮又会闪烁一次,但是加了延时之后usb识别会有延迟并且按钮没反应

    截图202403211305402303.jpg
    回复 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 天前
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    20

    主题

    53

    回帖

    348

    积分

    中级会员

    积分
    348
     楼主| 发表于 2024-3-21 13:11:45 | 显示全部楼层
    延时程序是正常工作的,加在keyPadData[0] |= 0x02;        之前实现按钮按下延时亮,加在后面实现按钮松开延时灭,唯独加在中键实现自动亮灭的时候程序不正常,有大佬知道怎么回事吗
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 天前
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    20

    主题

    53

    回帖

    348

    积分

    中级会员

    积分
    348
     楼主| 发表于 2024-3-21 13:16:44 | 显示全部楼层
    这是有问题的代码 截图202403211316267971.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 17:54
  • 签到天数: 132 天

    [LV.7]常住居民III

    26

    主题

    1298

    回帖

    4049

    积分

    论坛元老

    积分
    4049
    发表于 2024-3-21 15:21:45 | 显示全部楼层

    Delay500ms 对程序的运行会产生比较明显的影响。
    建议keyPadData[0] |= 0x01;后面加个标志位,通过定时器判断标志位,计时500ms后执行keyPadData[0] &= ~0x01;指令。

    点评

    好的感谢  发表于 2024-3-22 17:43
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 天前
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    20

    主题

    53

    回帖

    348

    积分

    中级会员

    积分
    348
     楼主| 发表于 2024-3-22 13:30:12 | 显示全部楼层
    乘风飞扬 发表于 2024-3-21 15:21
    Delay500ms 对程序的运行会产生比较明显的影响。
    建议keyPadData[0] |= 0x01;后面加个标志位,通过定时器 ...

    有参考代码吗大哥,研究半天定时器好像不工作,初始化了已经
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    15 小时前
  • 签到天数: 159 天

    [LV.7]常住居民III

    25

    主题

    733

    回帖

    1833

    积分

    金牌会员

    积分
    1833
    发表于 2024-3-22 14:52:53 | 显示全部楼层
    STC-ISP里面有
    截图202403221452337893.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    15 小时前
  • 签到天数: 159 天

    [LV.7]常住居民III

    25

    主题

    733

    回帖

    1833

    积分

    金牌会员

    积分
    1833
    发表于 2024-3-22 14:53:15 | 显示全部楼层
    也有各种例程
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 天前
  • 签到天数: 25 天

    [LV.4]偶尔看看III

    20

    主题

    53

    回帖

    348

    积分

    中级会员

    积分
    348
     楼主| 发表于 2024-3-22 15:19:54 | 显示全部楼层
    我用的就是isp里面的,这是代码, flag1 = 1;  的时候不会执行keyPadData[0] &= ~0x01;
    截图202403221519045260.jpg
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    昨天 17:54
  • 签到天数: 132 天

    [LV.7]常住居民III

    26

    主题

    1298

    回帖

    4049

    积分

    论坛元老

    积分
    4049
    发表于 2024-3-22 15:25:55 | 显示全部楼层
    爱吃西红柿 发表于 2024-3-22 13:30
    有参考代码吗大哥,研究半天定时器好像不工作,初始化了已经

    例如,需要延时位置加标志位与延时时间:
    1. keyPadData[0] |= 0x01;
    2. DelayFlag = 1;
    3. DelayCnt = 50;    //50 * 10ms = 500ms
    复制代码

    然后在10ms中断定时器函数里面进行计时:
    1. if(DelayFlag)
    2. {
    3.     DelayCnt--;
    4.     if(DelayCnt == 0)
    5.     {
    6.         DelayFlag = 0;
    7.         keyPadData[0] &= ~0x01;
    8.     }
    9. }
    复制代码

    点评

    感谢感谢  发表于 2024-3-22 17:42
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    15 小时前
  • 签到天数: 159 天

    [LV.7]常住居民III

    25

    主题

    733

    回帖

    1833

    积分

    金牌会员

    积分
    1833
    发表于 2024-3-22 15:31:52 | 显示全部楼层
    你这个逻辑有点问题吧
    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-5 23:26 , Processed in 0.075774 second(s), 72 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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