野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1361|回复: 7

新手求助 关于点灯

[复制链接]
发表于 2023-7-29 17:56:21 | 显示全部楼层 |阅读模式
我想在main.c里设置led_color函数通过改变变量去改变灯的颜色,把程序下载到板里他的颜色完全不按程序走灯,调了半天函数都不对,测试时用下面test函数又可以正确亮灯,咨询一下还能排查哪些地方有错误
野火论坛202307291755164307..png
野火论坛202307291755548536..png
回复

使用道具 举报

发表于 2023-7-31 09:07:26 | 显示全部楼层
是不是按键检测没做好,滤波有问题,导致误触发
回复 支持 反对

使用道具 举报

发表于 2023-7-31 09:39:11 | 显示全部楼层
怎么不把led_color放到循环里面
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-31 11:12:14 | 显示全部楼层
菠萝片 发表于 2023-7-31 09:39
怎么不把led_color放到循环里面

按键触发把color数+1了之后松开就会循环到else那边去,理论上if里面应该不用ledcolor吧,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-31 11:13:43 | 显示全部楼层
a5820736 发表于 2023-7-31 09:07
是不是按键检测没做好,滤波有问题,导致误触发

按键检测就是套用指南者例程里面的按键检测,按键这块应该不会有什么问题
回复 支持 反对

使用道具 举报

发表于 2023-8-1 09:46:04 | 显示全部楼层
给你一个建议:
  1. void led_color(int x)
  2. {
  3.     switch(x)
  4.     {
  5.         case 1:
  6.             LED_RGBOFF;
  7.             break;
  8.         case 2:
  9.             LED_WHITE;
  10.             break;
  11.         case 3:
  12.             LED_RED;
  13.             break;
  14.         case 4:
  15.             LED_YELLOW;
  16.             break;
  17.         case 5:
  18.             LED_GREEN;
  19.             break;
  20.         case 6:
  21.             LED_BLUE;
  22.             break;
  23.         case 7:
  24.             LED_RURRLE;
  25.             break;
  26.         default:
  27.             break;
  28.     }
  29. }
复制代码
回复 支持 反对

使用道具 举报

发表于 2023-8-1 12:57:40 | 显示全部楼层
T0yClaw 发表于 2023-7-31 11:13
按键检测就是套用指南者例程里面的按键检测,按键这块应该不会有什么问题 ...

少了个松手检测,应该加个while(key_scan()==1);,不松手就空执行,松手就执行接下来的操作。
回复 支持 反对

使用道具 举报

发表于 2023-8-5 13:39:55 | 显示全部楼层
您写成这样试一试
野火论坛202308051339522555..png
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-4-27 19:23 , Processed in 0.049497 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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