/*
* data_process.c
*
* Created on: 2018年7月5日
* Author: admin
*/ #include <ti/sysbios/knl/Task.h>
#include <ti/sysbios/knl/Clock.h>
#include <ti/sysbios/knl/Event.h>
#include <ti/sysbios/knl/Queue.h>
#include <ti/sysbios/knl/Semaphore.h> #include "board_led.h"
#include "board_uart.h" #include <ti/drivers/dpl/SemaphoreP.h> #include "data_process.h" // Task configuration
#define LF_TASK_PRIORITY 1
#define LF_TASK_STACK_SIZE 256 // Task configuration
Task_Struct lfTask;
Char lfTaskStack[LF_TASK_STACK_SIZE]; Semaphore_Handle semLedFicker; /*********************************************************************
* @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)
{
Semaphore_Params semLedFickerParams; uint32_t timeoutInTicks = * (/Clock_tickPeriod); Semaphore_Params_init(&semLedFickerParams);
semLedFicker = Semaphore_create(, &semLedFickerParams, NULL); /* Memory allocated in here */ if (semLedFicker == NULL) /* Check if the handle is valid */
{
bspDebugPrintf( true,"semLedFicker could not be created.\r\n");
}
else
{ bspDebugPrintf( true,"semLedFicker be created.\r\n");
} // Application main loop
for (;;)
{ Semaphore_pend(semLedFicker, timeoutInTicks); //翻转LED灯
ledBoardToggle( ledBlueBoard );
ledBoardToggle( ledRedBoard );
}
}
/*
* data_process.h
*
* Created on: 2018年7月5日
* Author: admin
*/ #ifndef APPLICATION_DATA_PROCESS_H_
#define APPLICATION_DATA_PROCESS_H_ void LedFicker_createTask(void); static void LedFicker_taskFxn(UArg a0, UArg a1); #endif /* APPLICATION_DATA_PROCESS_H_ */

 需要 吐槽的 是 我居然 没有 找到  系统 延时函数 ,所以采用  信号量超时 来 作为  LED 延时!

官方教程链接

CC2640R2F&TI-RTOS 拿到 TI CC2640R2F 开发板 第三件事就是使用 TI-RTOS 创建 一个任务 和 使用 信号量 超时来闪烁 LED灯的更多相关文章

  1. CC2640R2F&TI-RTOS 拿到 TI CC2640R2F 开发板 第四件事就是 修改第三件事信号量超时改为 事件 超时,并增加 事件控制 ,用于控制LED 闪烁时间或者关闭

    /* * data_process.c * * Created on: 2018年7月5日 * Author: admin */ #include "board_led.h" #i ...

  2. 微信小程序:开发之前要知道的三件事

    前言 微信之父张小龙在年初的那次演讲中曾表示:"我自己是很多年的程序员,我觉得我们应该为开发的团队做一些事情".几个月后,微信正式推出微信应用号(即微信小程序),在互联网中掀起了又 ...

  3. Ionic-wechat项目边开发边学(一):环境搭建和创建一个项目

    之前学AngularJS,教程过了一遍觉得很简单,但真正写几个Demo就错误百出,一个小小的功能要折腾很久.所以这次学Ionic,准备以开发一个项目为切入点去学,那么问题来了,开发什么项目呢? 纠结了 ...

  4. Linux移植到自己的开发板(三)根文件系统

    @ 目录 1 Linux内核配置 2 ramdisk制作 3 busybox配置 4 genext2fs生成镜像 为了快速调试,采用ramdisk进行根文件系统测试.要使内核能挂载ramdisk根文件 ...

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

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

  6. 【转帖】嵌入式4412开发板QT5.7编译安装到arm

    QT5.7.0+UBUNTU16.04+ARM-NONE-LINUX-GNUEABI4.8+busybox最小LINUX系统 Orandragon记录 本文转自迅为4412开发板群:http://to ...

  7. iTOP-4412 开发板镜像的烧写

    镜像就是源代码编译并连接以后生成的可执行文件包,把这些镜像文件烧写到开发板的存储芯片里,开机就可以运行了. 烧写方式有两种,通过TF卡烧写以及使用OTG接口烧写 OTG方式:只能在WIN7 或者XP ...

  8. TPYBoard V102:能跑Python的stm32开发板

    近来micropython语言做硬件编程很火,随之而来的就开始带动着支持micropython语言编程的开发板也开始火的发烫,今天小编就来和大家介绍一款很经典的micropython开发板-TPYBo ...

  9. 【前端】Vue和Vux开发WebApp日志三、完善gulp任务

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_3.html 项目github地址:https://github.com/shamoyuu/vue- ...

随机推荐

  1. 《JavaWeb从入门到改行》分页功能的实现

    @目录 什么是分页 ? 两个子模块功能的问题分析 和 解决方案 有条件查和无条件查询的影响 和 解决方案 项目案例: mysql + commons-dbutils+itcast-tools+Base ...

  2. jquery怎么取得有好几个并且name是相同的值

    jQuery("input[name='number']").each(function(){ alert(jQuery(this).val()); });

  3. 关于this的全面解析(call,apply,new)

    我们在写代码的时候,时常会被this弄的傻傻分不清楚,看源码的时候也经常被call啊apply啊弄的头皮发麻.this到底是什么?本文主要根据书上和实际应用做了一些归纳.一般情况下this有4种绑定规 ...

  4. sql With(NoLock),With(ReadPast)

    --------------- create table tmp1 ( id int primary key, name ) ) ----------- insert into tmp1(id,nam ...

  5. <Android 基础(二十一)> Android 屏幕适配

    基本概念 1. 什么是屏幕尺寸.屏幕分辨率.屏幕像素密度? 屏幕尺寸是指屏幕对角线的长度.单位是英寸,1英寸=2.54厘米 屏幕分辨率是指在横纵向上的像素点数,单位是px,1px=1像素点,一般是纵向 ...

  6. SpringBoot整合mybatis——配置mybatis驼峰命名规则自动转换

    一.简述 mybatis驼峰式命名规则自动转换: 使用前提:数据库表设计按照规范“字段名中各单词使用下划线"_"划分”: 使用好处:省去mapper.xml文件中繁琐编写表字段列表 ...

  7. Android Tab与TabHost

    这就是Tab,而盛放Tab的容器就是TabHost 如何实现?? 每一个Tab还对应了一个布局,这个就有点好玩了.一个Activity,对应了多个功能布局. ①新建一个Tab项目,注意,不要生成mai ...

  8. C语言二级指针(指向指针的指针)

    转载:http://c.biancheng.net/cpp/html/85.html 指针可以指向一份普通类型的数据,例如 int.double.char 等,也可以指向一份指针类型的数据,例如 in ...

  9. Java基础之PDF文件的合并

    1.首先下载一个jar包:pdfbox-app-1.7.1.jar 2.代码如下: package com; import java.io.File; import java.io.IOExcepti ...

  10. javascript requestAnimationFrame vs. setTimeout

    在做javascript动画时,我们常常使用的方法就是通过setTimeout调用告诉浏览器每隔20ms执行一段js代码来对dom对象执行操作,这个貌似没有什么问题,但是当深入理解计算机的fps以及浏 ...