/*
* 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 闪烁时间或者关闭的更多相关文章

  1. [转帖]迅为4412开发板最小linux系统的存储空间修改

    本文转自迅为论坛:http://www.topeetboard.com 最小linux系统的存储空间修改以修改成 1G 存储空间为例来修改,如果需要改成其他大小的存储空间,参照此方法修改即可. 首先连 ...

  2. iTOP-4412开发板qt4文件的移植和修改

    在 7.4 小节介绍配置文件的时候,提到迅为制作的触摸库文件“/usr/local/tslib”,迅为 已经将触摸功能编译到 Qt/E4.7.1 的库文件中,开发板可以支持触摸和鼠标功能. 用户在前面 ...

  3. 用定时器T0的中断控制8位LED闪烁

    #include<reg52.h> #define uchar unsigned char #define uint unsigned int uint i; void main() { ...

  4. Linux移植到自己的开发板(四)问题汇总

    @ 目录 1 使ubuntu支持两个版本的编译链: 2 版本问题: 3 ubuntu版本的vscode下载网速太慢: 4 ubuntu占用空间过大 5 执行make zImage 出错 lzop: n ...

  5. 超简单易用的 “在 pcduino 开发板上写 Linux 驱动控制板载 LED 的闪烁”

    版权声明:本文为博主原创文章,未经博主同意不得转载.转载联系 QQ 30952589,加好友请注明来意. https://blog.csdn.net/sleks/article/details/251 ...

  6. MSP430 LaunchPad开发板入门教程集合

    MSP-EXP430G2开发板是德州仪器提供的开发工具,也称为LaunchPad,用于学习和练习如何使用其微控制器产品.该开发板属于MSP430 Value Line系列,我们可以对所有MSP430系 ...

  7. Blink Without Delay: 不使用 delay() 函数而使 LED 闪烁

    不使用 delay() 函数而使 LED 闪烁 有些时候你需要同时做两件事.例如,你可能希望在读取按键按下状态同时让LED闪烁. 在这种情况下,你不能使用 delay(),因为Arduino程序会在d ...

  8. SoC FPGA开发板的FPGA配置数据下载和固化

    小梅哥编写,未经许可,严禁用于任何商业用途 2018年7月2日星期一  soc fpga的烧写和固化方式与传统的纯fpga固化方式即存在形式上的相同,也存在细节上的差异,特整理此文. AC501-So ...

  9. Linux开发板(树莓派)和服务器进行双向通信(socket)

    前言 ​ 物联网是目前嵌入开发必备的属性之一,我们常常需要把自己开发板和云端进行交互,本篇博文就记录一下. ​ 使用Socket来实现Linux开发板和服务器进行双向通信,Python中是默认集成了s ...

随机推荐

  1. ThreeJS geometry的顶点世界坐标

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Spring与Web整合

    一 概述 1.整合目的 将所有对象的创建与管理任务交给Spring容器,降低程序的耦合度. 2.整合途径 将Spring容器注入到Web容器中. 3.具体实现 使用ServletContextList ...

  3. ssm 注解@ResponseBody 返回json 乱码问题

    方法一:在@RequestMapping上加入 produces方法 @RequestMapping(value = "/upload.do",method = RequestMe ...

  4. Vue实例对象的数据选项(火柴)

    前言 一般地,当模板内容比较简单的时候,使用data选项配合表达式即可.涉及到复杂逻辑时,则需要用到methods.computed.watch等方法.本文将详细介绍Vue实例对象的数据选项. dat ...

  5. springboot中filter的配置和顺序执行

    项目结构 springboot版本 <parent> <groupId>org.springframework.boot</groupId> <artifac ...

  6. PURGE 的用法说明

    PURGE PurposeUse the PURGE statement to remove a table or index from your recycle bin and release al ...

  7. Azure 中快速搭建 FTPS 服务

    FTP,FTPS 与 SFTP 的区别 FTP (File Transfer Protocol)是一种常用的文件传输协议,在日常工作中被广泛应用.不过,FTP 协议使用明文传输.如果文件传输发生在公网 ...

  8. leetcode coding base

    1. Contains Duplicate 2. Contains Duplicate II 3. Contains Duplicate III

  9. Scratch3.0——项目层次结构

    原文地址:https://blog.csdn.net/weiwoyonzhe/article/details/86603757 简要介绍: 本文旨在介绍scratch3.0项目层次结构及关键功能. 源 ...

  10. JavaScript学习---JavaScript基础知识

    JavaScript的引入方式 JavaScript的引入方式: 1.直接在script里面写: 2.使用<script src="JS的文件位置"> {#1 直接编写 ...