OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4766|回复: 5

求助,我希望按一下K1流水灯点亮一个,并在数码管显示点亮的个数,为什么不成功,而是按一下K1,数码管数字加1

[复制链接]

4

主题

7

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-9-7
在线时间
0 小时
发表于 2015-9-8 11:15:24 | 显示全部楼层 |阅读模式
5金钱
我希望按一下K1流水灯点亮一个,并在数码管显示点亮的个数,为什么不成功,而是按一下K1,数码管数字加1,但流水灯则不正确。
[mw_shl_code=c,true]#include "stm32f10x.h" #include "SysTick.h" #include "led.h" #include "KEY.h" #include "LED.h" #include "TIMER.h" void display(count) { switch(count) { // LED0 = light&0x01 // LED1 = light&0x02 // LED2 = light&0x04 // LED3 = light&0x08 // LED4 = light&0x10 // LED5 = light&0x20 // LED6 = light&0x40 // LED7 = light&0x80 case 0: LedValue(0x00); break; case 1: LedValue(0x01); break; case 2: LedValue(0x03); break; case 3: LedValue(0x07); break; case 4: LedValue(0x0f); break; case 5: LedValue(0x1f); break; case 6: LedValue(0x3f); break; case 7: LedValue(0x7f); break; case 8: LedValue(0xff); break; } } /* * 函数名:main * 描述 :主函数 * 输入 :无 * 输出 :无 */ int main(void) { int count=0; int count1=0; SysTick_Init(); Timerx_Init(1,720); SEGTABLE_INIT(); LED_GPIO_Config(); // LED_SEL(1); //LED灯点亮 Key_Config_Operation(1,1,1); while(1) { if(flag_100us==1) { LED_SEL(0); SHOWNUM(7,count); Delay_us(10); LED_SEL(1); KEY_CHECK(1,1,1); if(key1_flag) //key1按下去采取的动作 { key1_flag=0; if(count1%2==0) { if(count>=0&&count<8) { count++; } else count=8; display(count); } else LedValue(0xff); //当LED灯全亮时,K1,K2键锁死 } if(key2_flag) //key2按下去采取的动作 { key2_flag=0; if(count1%2==0) { if(count>0&&count<=8) { count--; } else count=0; display(count); } else LedValue(0xff); } if(key3_flag) //key3按下去采取的动作 { key3_flag=0; count1++; switch(count1%2) { case 0: display(count); break; case 1: LedValue(0xff); break; } } Delay_us(10); } } }[/mw_shl_code]
[mw_shl_code=c,true]void LedValue(unsigned char light) { LED1(light&0x01?1:0); LED2(light&0x02?1:0); LED3(light&0x04?1:0); LED4(light&0x08?1:0); LED5(light&0x10?1:0); LED6(light&0x20?1:0); LED7(light&0x40?1:0); LED8(light&0x80?1:0); } /*用于点亮具体数码管及其显示的值*/ void SHOWNUM(int weixuan,int num) { // LED_SEL(1); LedValue(0x00); LED_SEL2(weixuan/4); LED_SEL1(weixuan%4/2); LED_SEL0(weixuan%2); LED_SEL(0); LedValue(segTable[num%10]); }[/mw_shl_code]

请帮忙看一下代码。

4-三按键控制LED灯.zip

3.94 MB, 下载次数: 42

最佳答案

查看完整内容[请看2#楼]

試試看 因為你寫得太亂 一堆名詞定義都很相近 有改掉一些
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

239

帖子

0

精华

高级会员

Rank: 4

积分
545
金钱
545
注册时间
2015-6-5
在线时间
110 小时
发表于 2015-9-8 11:15:25 | 显示全部楼层
試試看

因為你寫得太亂 一堆名詞定義都很相近 有改掉一些

KEY_LED.zip

3.5 MB, 下载次数: 48

回复

使用道具 举报

2

主题

239

帖子

0

精华

高级会员

Rank: 4

积分
545
金钱
545
注册时间
2015-6-5
在线时间
110 小时
发表于 2015-9-8 11:53:22 | 显示全部楼层
你的LedValue
到底是控制LED 還是控制七段顯示器阿
註解搞得我好亂
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-9-7
在线时间
0 小时
 楼主| 发表于 2015-9-8 13:53:51 | 显示全部楼层
回复【2楼】Rocks:
---------------------------------
回复【2楼】Rocks:
---------------------------------
我打算设计的是按一次K1键一个LED灯点亮,并且在数码管上显示点亮灯的个数。
LED_SEL(0)表示点亮数码管
LED_SEL(1)表示点亮流水灯
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-9-7
在线时间
0 小时
 楼主| 发表于 2015-9-9 10:13:39 | 显示全部楼层
回复【4楼】Rocks:
---------------------------------
O(∩_∩)O谢谢
回复

使用道具 举报

4

主题

7

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-9-7
在线时间
0 小时
 楼主| 发表于 2015-9-10 09:35:25 | 显示全部楼层
回复【4楼】Rocks: 
---------------------------------
大神,main函数中true,与false未定义,是什么意思。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 11:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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