CC2640R2F&TI-RTOS 拿到 TI CC2640R2F 开发板 第四件事就是 修改第三件事信号量超时改为 事件 超时,并增加 事件控制 ,用于控制LED 闪烁时间或者关闭
/*
* data_process.c
*
* Created on: 2018年7月5日
* Author: admin
*/ #include "board_led.h"
#include "board_uart.h" #include "data_process.h" // Task configuration
#define LF_TASK_PRIORITY 1
#define LF_TASK_STACK_SIZE 512 // Task configuration
Task_Struct lfTask;
Char lfTaskStack[LF_TASK_STACK_SIZE]; Event_Handle eventLedFickerHandle; /*********************************************************************
* @fn LedFicker_createTask
*
* @brief Task creation function for the led ficker.
*
* @param None.
*
* @return None.
*/
void LedFicker_createTask(void)
{
Task_Params taskParams; // Configure task
Task_Params_init(&taskParams);
taskParams.stack = lfTaskStack;
taskParams.stackSize = LF_TASK_STACK_SIZE;
taskParams.priority = LF_TASK_PRIORITY; Task_construct(&lfTask, LedFicker_taskFxn, &taskParams, NULL);
} /*********************************************************************
* @fn LedFicker_taskFxn
*
* @brief Application task entry point for the Led Ficker.
*
* @param a0, a1 - not used.
*
* @return None.
*/
static void LedFicker_taskFxn(UArg a0, UArg a1)
{/* LED 闪烁任务,默认200ms闪烁一次,可以通过事件通知的方式更改LED闪烁频率 */ uint32_t events;
uint32_t timeoutInTicks = * (/Clock_tickPeriod); Event_Params eventParams;
Event_Struct structEvent; /* Memory allocated at build time */ Event_Params_init(&eventParams);
Event_construct(&structEvent, &eventParams); /* It's optional to store the handle */
eventLedFickerHandle = Event_handle(&structEvent); if (eventLedFickerHandle == NULL) {
/* PIN_open() failed */
bspDebugPrintf( true,"eventLedFickerHandle Init false.\r\n" );
while ();
}
else
{
bspDebugPrintf( true,"eventLedFickerHandle Init ok.\r\n" );
} // Application main loop
for (;;)
{ /* Wait for an event to be posted */
events = Event_pend(eventLedFickerHandle,
Event_Id_NONE,
LED_FICKER_OFF_EVT |
LED_FICKER_100MS_EVT |
LED_FICKER_1S_EVT,
timeoutInTicks); //翻转LED灯
ledBoardToggle( ledBlueBoard );
ledBoardToggle( ledRedBoard ); if (events & LED_FICKER_OFF_EVT)
{
timeoutInTicks = BIOS_WAIT_FOREVER;/* 超时时间改为永久,这样就关闭了LED */ //关闭LED灯
ledBoardOff( ledBlueBoard );
ledBoardOff( ledRedBoard );
} if (events & LED_FICKER_100MS_EVT)
{
timeoutInTicks = * (/Clock_tickPeriod);/* 超时时间改为100ms,这样LED就会100ms翻转一次 */
} if (events & LED_FICKER_1S_EVT)
{
timeoutInTicks = * (/Clock_tickPeriod);/* 超时时间改为1s,这样LED就会1s翻转一次 */
} }
} void eventLedFicker_post( uint32_t event )
{
if( eventLedFickerHandle )
Event_post(eventLedFickerHandle, event);
}
/*
* data_process.h
*
* Created on: 2018年7月5日
* Author: admin
*/ #ifndef APPLICATION_DATA_PROCESS_H_
#define APPLICATION_DATA_PROCESS_H_ #include <ti/sysbios/knl/Task.h>
#include <ti/sysbios/knl/Clock.h>
#include <ti/sysbios/knl/Event.h>
#include <ti/sysbios/BIOS.h> #define LED_FICKER_OFF_EVT Event_Id_00 /* led 闪烁关闭 */
#define LED_FICKER_100MS_EVT Event_Id_01 /* led 100MS 闪烁一次 */
#define LED_FICKER_1S_EVT Event_Id_02 /* led 1S 闪烁一次 */ void LedFicker_createTask(void); static void LedFicker_taskFxn(UArg a0, UArg a1); void eventLedFicker_post( uint32_t event ); #endif /* APPLICATION_DATA_PROCESS_H_ */
BLE5-Stack User’s Guide
CC2640R2F / CC2640 / CC2650入门和常见问题解答
CC2640R2F&TI-RTOS 拿到 TI CC2640R2F 开发板 第四件事就是 修改第三件事信号量超时改为 事件 超时,并增加 事件控制 ,用于控制LED 闪烁时间或者关闭的更多相关文章
- [转帖]迅为4412开发板最小linux系统的存储空间修改
本文转自迅为论坛:http://www.topeetboard.com 最小linux系统的存储空间修改以修改成 1G 存储空间为例来修改,如果需要改成其他大小的存储空间,参照此方法修改即可. 首先连 ...
- iTOP-4412开发板qt4文件的移植和修改
在 7.4 小节介绍配置文件的时候,提到迅为制作的触摸库文件“/usr/local/tslib”,迅为 已经将触摸功能编译到 Qt/E4.7.1 的库文件中,开发板可以支持触摸和鼠标功能. 用户在前面 ...
- 用定时器T0的中断控制8位LED闪烁
#include<reg52.h> #define uchar unsigned char #define uint unsigned int uint i; void main() { ...
- Linux移植到自己的开发板(四)问题汇总
@ 目录 1 使ubuntu支持两个版本的编译链: 2 版本问题: 3 ubuntu版本的vscode下载网速太慢: 4 ubuntu占用空间过大 5 执行make zImage 出错 lzop: n ...
- 超简单易用的 “在 pcduino 开发板上写 Linux 驱动控制板载 LED 的闪烁”
版权声明:本文为博主原创文章,未经博主同意不得转载.转载联系 QQ 30952589,加好友请注明来意. https://blog.csdn.net/sleks/article/details/251 ...
- MSP430 LaunchPad开发板入门教程集合
MSP-EXP430G2开发板是德州仪器提供的开发工具,也称为LaunchPad,用于学习和练习如何使用其微控制器产品.该开发板属于MSP430 Value Line系列,我们可以对所有MSP430系 ...
- Blink Without Delay: 不使用 delay() 函数而使 LED 闪烁
不使用 delay() 函数而使 LED 闪烁 有些时候你需要同时做两件事.例如,你可能希望在读取按键按下状态同时让LED闪烁. 在这种情况下,你不能使用 delay(),因为Arduino程序会在d ...
- SoC FPGA开发板的FPGA配置数据下载和固化
小梅哥编写,未经许可,严禁用于任何商业用途 2018年7月2日星期一 soc fpga的烧写和固化方式与传统的纯fpga固化方式即存在形式上的相同,也存在细节上的差异,特整理此文. AC501-So ...
- Linux开发板(树莓派)和服务器进行双向通信(socket)
前言 物联网是目前嵌入开发必备的属性之一,我们常常需要把自己开发板和云端进行交互,本篇博文就记录一下. 使用Socket来实现Linux开发板和服务器进行双向通信,Python中是默认集成了s ...
随机推荐
- 文件上传(Servlet/Struts2/SpringMVC)
文件下载(Servlet/Struts2)的链接:http://www.cnblogs.com/ghq120/p/8328093.html 文件上传 Servlet实现 要实现文件上传的功能,必须在f ...
- P1025[SCOI2009]游戏
windy学会了一种游戏.对于1到N这N个数字,都有唯一且不同的1到N的数字与之对应.最开始windy把数字按 顺序1,2,3,……,N写一排在纸上.然后再在这一排下面写上它们对应的数字.然后又在新的 ...
- Linux 虚拟机配置-network is unreachable
配置虚拟机时,遇到network is unreachable,根据网上找来的方法处理,最终自己试过,成功修改的方法在这里记录一下: 修改虚拟机的网络适配器:桥接,复制物理机网络 vim /etc/s ...
- 利用dotnet restore 导入本地 .nupkg 包
dotnet restore 主要是用于部署.net core 项目中所需的依赖库,集成了nuget包管理软件.因此,dotnet restore 实际上就是根据project.json(今后可能为p ...
- tomcat优化记录
1.使用jdk自带的Jconsole进行可视化查看: 2.使用jmeter做压力测试,做完后有几个重要的指标:正确率.cpu占用率.qps jvm: 3.tomcat server.xml优化: ar ...
- c# 设计模式 之:抽象工厂
1.作用:抽象工厂的目的就是生产[产品族],之前讲的“工厂模式”的每一个factory只造一种产品,抽象工厂让一个factory造多个产品. uml类图: 代码实现: 抽象工厂代码: namespac ...
- C#耗时计算
System.Diagnostics.Stopwatch watch = new Stopwatch(); watch.Start(); //init();计算耗时的方法 watch.Stop(); ...
- Python学习---JSON学习180130
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON是用字符串来表示Javascript对象: Json字符串就是js对象的一种表现形式(字符串的形式 ...
- Java学习---XML的读写操作
DOM4_Jwriter.java package com.ftl.xmlparse; import java.io.File; import java.io.FileNotFoundExceptio ...
- Java实例---简单的投票系统
代码分析 InputData.java package vote; import java.io.BufferedReader; import java.io.IOException; import ...