?? blinky.c
字號:
/*----------------------------------------------------------------------------
* R T L K e r n e l E x a m p l e
*----------------------------------------------------------------------------
* Name: BLINKY.C
* Purpose: RTX example program
* Rev.: V3.22
*----------------------------------------------------------------------------
* This code is part of the RealView Run-Time Library.
* Copyright (c) 2004-2008 KEIL - An ARM Company. All rights reserved.
*---------------------------------------------------------------------------*/
#include <RTL.h>
#include <LPC325x.h> /* LPC325x definitions */
OS_TID t_phaseA; /* assigned task id of task: phase_a */
OS_TID t_phaseB; /* assigned task id of task: phase_b */
#define LED_1 0x0002
#define LED_2 0x4000
#define LED_ALL 0x4002
#define LED_ON(led) P3_OUTP_SET = led;
#define LED_OFF(led) P3_OUTP_CLR = led;
/*----------------------------------------------------------------------------
* Task 1 'phaseA': Phase A output
*---------------------------------------------------------------------------*/
__task void phaseA (void) {
for (;;) {
os_evt_wait_and (0x0001, 0xffff); /* wait for an event flag 0x0001 */
LED_ON (LED_1);
os_dly_wait (30);
LED_OFF(LED_1);
os_dly_wait (70);
os_evt_set (0x0001, t_phaseB); /* send signal event to task phaseB */
}
}
/*----------------------------------------------------------------------------
* Task 2 'phaseB': Phase B output
*---------------------------------------------------------------------------*/
__task void phaseB (void) {
for (;;) {
os_evt_wait_and (0x0001, 0xffff); /* wait for an event flag 0x0001 */
LED_ON (LED_2);
os_dly_wait (30);
LED_OFF(LED_2);
os_dly_wait (70);
os_evt_set (0x0001, t_phaseA); /* send signal event to task phaseA */
}
}
/*----------------------------------------------------------------------------
* Task 5 'init': Initialize
*---------------------------------------------------------------------------*/
__task void init (void) {
LED_OFF (LED_ALL);
t_phaseA = os_tsk_create (phaseA, 0); /* start task phaseA */
t_phaseB = os_tsk_create (phaseB, 0); /* start task phaseB */
os_evt_set (0x0001, t_phaseA); /* send signal event to task phaseA */
os_tsk_delete_self ();
}
/*----------------------------------------------------------------------------
* Main: Initialize and start RTX Kernel
*---------------------------------------------------------------------------*/
int main (void) {
os_sys_init (init); /* Initialize RTX and start init */
}
/*----------------------------------------------------------------------------
* end of file
*---------------------------------------------------------------------------*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -