首页 > 其他 > 详细

SmartOS之------小鬼点灯

时间:2014-08-20 16:00:32      阅读:264      评论:0      收藏:0      [点我收藏+]

 

作用


 

让两个小灯每0.3秒闪一次。
引用固件库和SmartOS库,芯片STM32F030F4P6(这芯片小指指甲那么大一点),闪存16k,内存4k

 

代码


 

 1 #include "Sys.h"
 2 #include "Port.h"
 3 
 4 void LedTask(void* param)
 5 {
 6     OutputPort* leds = (OutputPort*)param;
 7     *leds = !*leds;
 8 }
 9 
10 int main(void)
11 {
12     // 初始化系统
13     //Sys.Clock = 136000000;
14     Sys.MessagePort = COM1; // 指定printf输出的串口
15     Sys.Init();
16     Sys.ShowInfo();
17 
18     // 初始化为输出
19     Pin pins[] = {PD0, PD1};
20     OutputPort leds(pins, ArrayLength(pins));
21     Sys.AddTask(LedTask, &leds, 0, 300000);
22 
23     Sys.Start();
24 }

 

讲解



输出类OutputPort,这里用一组(PD组)引脚初始化,默认50M开漏输出。
当然,它有多种构造函数,可以指定速度和开漏还是推挽输出,用户根据自己需要进行选择。

想Sys添加一个轮询任务,leds对象作为参数传进去,0秒后立刻执行,每300ms执行一次

LedTask里面先把param转回来输出口指针,就是前面添加任务时传进来的那个leds,然后取反实现闪烁。
其实也可以这样:
bool flag = leds; // 读取小灯状态
leds = !flag; // 设置小灯状态
当然,完整的写法应该是这样:
bool flag = leds.Read(); // 读取小灯状态
leds.Write(!flag); 
// 设置小灯状态


End!

------来自新生命团队!

欢迎大家一起交流 ,分享程序员励志故事。   幸福的程序员 QQ群bubuko.com,布布扣  嵌入式交流群bubuko.com,布布扣

 

 

 

SmartOS之------小鬼点灯,布布扣,bubuko.com

SmartOS之------小鬼点灯

原文:http://www.cnblogs.com/1hua1ye/p/3924563.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!