LPC2132 调试记
reset */
T0MCR = 0x03;/*[0:1] 11tc reset/ intrrupt when match*/
T0MR0 = (Fpclk / OS_TICKS_PER_SEC);/*(Fcclk / 4) * 1/ 2005ms钟定时*/
}
/*********************************************************************************************************
** Function name:VICInit
**
** Descriptions:Initialize the Interrupt Vevtor Controller
**
** input parameters:None
** Returned value:None
**
** Used global variables:None
** Calling modules:None
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
void VICInit(void)
{
extern void IRQ_Handler(void);
extern void Timer0_Handler(void);
extern void I2c_Handler(void);
#if 0
extern void UART0_Handler(void);
#endif
VICIntEnClr = 0xffffffff;/*clear interrupt*/
VICDefVectAddr = (uint32)IRQ_Handler;
VICVectAddr0 = (uint32)Timer0_Handler;/*设置中断服务程序地址*/
VICVectCntl0 = (0x20 | 0x04);/*设置定时器0中断通道分配最高优先级*/
VICIntEnable = 1 < 4;/*使能定时器0中断
/*I2c*/
VICVectAddr12 = (uint32)I2c_Handler;
VICVectCntl12 = (0x20 | 9);
#if 0
/*Uart*/
VICVectAddr14 = (uint32)UART0_Handler;
VICVectCntl14 = (0x20 | 0x06);
VICIntEnable = 1 < 6;
#endif
}
/*********************************************************************************************************
** Function name:TargetInit
**
** Descriptions:Initialize the target board; it is called in a necessary place, change it as
**needed
**
** input parameters:None
** Returned value:None
**
** Used global variables:None
** Calling modules:None
**
********************************************************************************************************/
void TargetInit(void)
{
OS_ENTER_CRITICAL();
srand((uint32) TargetInit);
VICInit();
Timer0Init();
I2cInit(100000);
UART0Init(115200);
OS_EXIT_CRITICAL();
}
Main中测试代码如下:
#include "config.h"
#defineTASK_STK_SIZE64
#defineLEN50
//OS_STKTaskStk[TASK_STK_SIZE];
OS_STKTaskStartStk[TASK_STK_SIZE];
voidTaskStart(void *da
#defineBEEP(1<7)/* P0.7引脚控制BEEPjust test I2C */
void initbeep()
{
/*关闭BEEP */
IO0DIR |= BEEP;/*设置BEEP控制口为输出*/
PINSEL0 = (PINSEL0 & 0xffff3fff);
IO0SET = BEEP;
}
void beep()
{
/*for test*/
IO0CLR = BEEP;
OSTimeDly(OS_TICKS_PER_SEC / 2);/*蜂鸣器响一声*/
IO0SET = BEEP;
}
/*********************************************************************************************************
**函数名称: main
**功能描述: c语言的主函数,由它启动多任务环境
**输 入:无
**输 出:无
**全局变量:无
**调用模块: PC_DispClrScr,OSInit,OSTaskCreate,OSStart
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
int main (void)
{
OSInit();
TargetInit();
initbeep();
OSTaskCreate(TaskStart, (void *)0, &TaskStartStk[TASK_STK_SIZE - 1], 5);
OSStart();
return 0;
}
void testfun3(unsigned long para)
{
UART0Putch(3);
}
void testTimer()
{
/* -1 not enough timer else return timer No.*/
if(TimerOn(800,10,testfun3) == -1)
beep();
else
UART0Putch(n);//ok
}
/*********************************************************************************************************
**函数名称: TaskStart
**功能描述:μCOS-II的第一个任务,通常由它初始化目标板和建立其它任务
**输 入:无
**输 出:无
**全局变量:无
**调用模块:
**
********************************************************************************************************/
voidTaskStart (void *pdata)
{
pdata = pdata;/*避免编译警告*/
/*test timer0*/
testTimer();
while(1)
}
/*********************************************************************************************************End Of File***************************
LPC2132调 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)