📄 main.c
字号:
/*初次学习ARM和uCOS,在周立功的SmartARM2200上,根据www.micrium.com提供的AN-1138.zip,改编而成的
LPC2210-uCOS2.76,共初学者参考,武安河,2006-12-18*/
#include "includes.h"
#define TaskStkLengh 64 //Define the Task0 stack length 定义用户任务0的堆栈长度
OS_STK TaskStk [TaskStkLengh]; //Define the Task0 stack 定义用户任务0的堆栈
void Timer0_Exception(void)
{
T0IR = 0x01;
VICVectAddr = 0; //interrupt close 通知中断控制器中断结束
OSTimeTick();
}
void Task0(void *pdata); //Task0 任务0
void Timer0Init(void)
{
VICIntEnClr = 0xffffffff;
VICIntSelect = 0;
VICVectAddr = 0;
T0IR = 0xFF;
T0TCR = 0x02;
T0MCR = 0x03;
T0MR0 = 5000;
T0TCR = 0x01;
VICVectAddr0 = (unsigned long)OS_CPU_IRQ_ISR;// set interrupt vector in 0
VICVectCntl0 = 0x20 | 4; // use it for Timer 0 Interrupt
VICIntEnable = 0x00000010; // Enable Timer0 Interrupt
}
void TargetInit(void)
{
#if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */
OS_CPU_SR cpu_sr = 0;
#endif
OS_ENTER_CRITICAL();
Timer0Init();
OS_EXIT_CRITICAL();
}
main (void)
{
IO2DIR = 0xF0000000;
IO2SET = 0xF0000000;
OSInit ();
TargetInit ();
OSTaskCreate (Task0,(void *)0, &TaskStk[TaskStkLengh - 1], 2);
OSStart ();
}
/*********************************************************************************************************
** Task0 任务0
********************************************************************************************************/
void Task0 (void *pdata)
{
while (1)
{
IO2CLR = 0xF0000000; /* Turn LED On */
OSTimeDly(400);
IO2SET = 0xF0000000; /* Turn LED Off */
OSTimeDly(400);
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -