1个系统节拍 c语言_RTX操作系统-系统时钟节拍

/*

*********************************************************************************************************

*    函 数 名: AppTaskUserIF

*    功能说明: 按键消息处理

*    形    参: 无

*    返 回 值: 无

*   优 先 级: 1  (数值越小优先级越低,这个跟uCOS相反)

*********************************************************************************************************

*/

__task void AppTaskUserIF(void)

{

uint32_t ulTicks;

uint8_t ucKeyCode;

while(1)

{

ucKeyCode = bsp_GetKey();

if (ucKeyCode != KEY_NONE)

{

switch (ucKeyCode)

{

/* K1键按下,打印调试说明 */

case KEY_DOWN_K1:

printf("K1键按下,使用MDK中自带的RTX调试组件,请务必使用MDK4.74版本进行调试\r\n");

break;

/* K2键按下,打印系统时钟节拍计数 */

case KEY_DOWN_K2:

ulTicks = os_time_get();

printf("K2键按下,当前系统时钟节拍 os_time_get = %d\r\n", ulTicks);

break;

/* 其他的键值不处理 */

default:

break;

}

}

os_dly_wait(20);

}

}

/*

*********************************************************************************************************

*    函 数 名: AppTaskLED

*    功能说明: LED闪烁。

*    形    参: 无

*    返 回 值: 无

*   优 先 级: 2

*********************************************************************************************************

*/

__task void AppTaskLED(void)

{

const uint16_t usFrequency = 200; /* 延迟周期 */

/* 设置延迟周期 */

os_itv_set(usFrequency);

while(1)

{

bsp_LedToggle(2);

bsp_LedToggle(3);

/* os_itv_wait是周期性延迟,os_dly_wait是相对延迟。*/

os_itv_wait();

}

}

/*

*********************************************************************************************************

*    函 数 名: AppTaskMsgPro

*    功能说明: 消息处理,这里是用作LED闪烁。

*    形    参: 无

*    返 回 值: 无

*   优 先 级: 3

*********************************************************************************************************

*/

__task void AppTaskMsgPro(void)

{

while(1)

{

bsp_LedToggle(1);

bsp_LedToggle(4);

os_dly_wait(300);

}

}

/*

*********************************************************************************************************

*    函 数 名: AppTaskStart

*    功能说明: 启动任务,也就是最高优先级任务。这里实现按键扫描。

*    形    参: 无

*    返 回 值: 无

*   优 先 级: 4

*********************************************************************************************************

*/

__task void AppTaskStart(void)

{

AppTaskCreate();

while(1)

{

/* 按键扫描 */

bsp_KeyScan();

os_dly_wait(10);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值