?? main.c
字號:
/*初次學(xué)習(xí)ARM和uCOS,在周立功的SmartARM2200上,根據(jù)www.micrium.com提供的AN-1138.zip,改編而成的
LPC2210-uCOS2.76,共初學(xué)者參考,武安河,2006-12-18*/
#include "includes.h"
#define TaskStkLengh 64 //Define the Task0 stack length 定義用戶任務(wù)0的堆棧長度
#define BEEPCON 0X00000080 //蜂鳴器
OS_STK TaskStk [TaskStkLengh]; //Define the Task0 stack 定義用戶任務(wù)0的堆棧
void Timer0_Exception(void)
{
T0IR = 0x01;
VICVectAddr = 0; //interrupt close 通知中斷控制器中斷結(jié)束
OSTimeTick();
}
void Task0(void *pdata); //Task0 任務(wù)0
void delays()
{
unsigned int i;
unsigned int dly=10;
for(;dly>0;dly--)
for(i=0;i<5000;i++);
}
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 ();
delays();
}
/*********************************************************************************************************
** Task0 任務(wù)0
********************************************************************************************************/
void Task0 (void *pdata)
{
while (1)
{
PINSEL0 = 0X00000000;
IO0DIR = BEEPCON;
IO0SET = BEEPCON;
delays();
IO0CLR = BEEPCON;
delays();
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -