完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
求助。问题如下,实现跑马灯,但是MCU的口是这样的。从左向右,P31 P00 P01 P02 P03 P06 P07 P34.
要求是这样的,第一下按键:P02 P03亮;然后P01 P06亮;P00 P07亮;P31 P34亮。(每一对灯依次亮,每次只有一对灯亮) 第二下按键:反向; 第三下按键:同时闪烁; 地四下按键:全灭。 高人指点,特别有2点,我很困惑解决不了,1,两个IO口拼成一个8bit的,怎么处理? 2,怎么调节灯闪烁的速度;(我试了delay,循环等方法都不好) 请高手写程序出来,我好学习,调试。非常感谢。 |
|
相关推荐
10个回答
|
|
网上有很多类似的源码
|
|
|
|
#include
|
|
|
|
将程序复制粘贴,这里并没有自动换行,如果想要交流,想要工程文件的话,可以加微信baofeng_zouyu ,再发给你
|
|
|
|
非常感谢。P31 P00 P01 P02 P03 P06 P07 P34 但是现在情况是库里面不允许自己再使用***it去定义类似P0^0这样的端口位了。所以,想问还有什么别的方法没有?我一直想使用“位段”结构,但是没搞出来,还在想。 我先试试你的程序先。再次非常感谢。
|
|
|
|
不好意思,每个switch的分支后面忘了加break;了。
什么叫库里不允许用***it了?用***it也只是像用define一样让人看了直观一点而已,你直接用P0^0=0;也一样的啊 |
|
|
|
是的。我表达的有问题。不够灵活。
|
|
|
|
struct Port_MakeUp
{ volatile char P31:1; volatile char P00:1; volatile char P01:1; volatile char P02:1; volatile char P03:1; volatile char P06:1; volatile char P07:1; volatile char P34:1; }; typedef struct Port_MakeUp LED; 我想使用位域的方法,但是下一步,怎么弄都不行,请高手看下,这个方法可行吗? |
|
|
|
简单的方法就能实现的东西,搞得那么复杂干嘛?
|
|
|
|
P0^0是一个地址,怎么可能直接使用
|
|
|
|
速度这个用一个定时器和两个按键 一个加 一个减
for(;;) { t0=0; while(t0%iTime!=0); } iTime 把这个保存到EEPROM中 , 开机直接读 . |
|
|
|
只有小组成员才能发言,加入小组>>
3319 浏览 9 评论
2997 浏览 16 评论
3495 浏览 1 评论
9065 浏览 16 评论
4088 浏览 18 评论
1185浏览 3评论
611浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
601浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2337浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1898浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 21:21 , Processed in 1.210296 second(s), Total 68, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号