微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > LPC2132 调试记

LPC2132 调试记

时间:11-10 来源:互联网 点击:

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 *data);

#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***************************

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top