广州大学嵌入式第四次作业

文章介绍了如何在GPIO-BlueLight_20230328工程中使用gpio_set函数设置LIGHT_RED和LIGHT_OFF的值,以及通过直接地址编程和调用构件方式实现红绿蓝灯的轮流闪烁,包括八种不同组合的时间安排。
摘要由CSDN通过智能技术生成

目录

1、gpio_set(LIGHT_RED,LIGHT_OFF)中LIGHT_RED和LIGHT_OFF的值。

2、用直接地址编程方式,实现红绿蓝三灯轮流闪烁

3、用调用构件方式,实现红绿蓝的八种组合轮流闪烁


1、gpio_set(LIGHT_RED,LIGHT_OFF)中LIGHT_RED和LIGHT_OFF的值。

(1)、打开CH04中的工程GPIO-BlueLight_20230328,找到LIGHT_RED,右键选择查看定义

(2)、选择查看定义后可以发现LIGHT_RED的值为PTB_NUM|7;LIGHT_OFF的值为1

(3)、可以看到user.h引用了printf.h、gpio.h和gec.h等头文件,查找这几个头文件可以在头文件gpio.h中发现PTB_NUM的值为1<<8,即0000000100000111


总结:LIGHT_RED的值为0000000100000111,即263、LIGHT_OFF的值为1

2、用直接地址编程方式,实现红绿蓝三灯轮流闪烁

查看定义可以发现红灯对应7号引脚,绿灯对应8号引脚,蓝灯对应9号引脚。

初始状态设置所有灯灭,并把亮灯标志mFlag初始化设置为'R'

设计使红灯绿灯蓝灯循环亮灭

实验结果如下:

3、用调用构件方式,实现红绿蓝的八种组合轮流闪烁

        由作业一可以看到红灯需要在5~10秒、15~20s、25~30s、45~50s、65~70s、75~80s、85~90s、95~100s亮,绿灯需要在10~20s、30~40s、50~60s、90~100s亮,蓝灯需要在20~40s、60~80s亮即可实现红绿蓝灯得八种组合轮流闪烁

先对红灯绿灯蓝灯进行初始化

设计实验主循环如下,以40s为一个周期

实验结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值