📄 uhal.c
字号:
/*********************************************************************************/
//NAME:UAHL.C
//Modified by WangZengzhi 2008.6
/*********************************************************************************/
#include "..\inc\WOPTIONS.H"
#include "..\ucos\includes.h"
#include "..\porting\port.h"
/*********************************************************************************/
#define _TICK 1000 // 1/1000 sec
#define _CLOCK ((MCLK)/0xf/4/(_TICK))
/*Timer input clock Frequency = MCLK / {prescaler value + 1} / {divider value}
{prescaler value} = 0-255
{divider value} = 2, 4, 8, 16, 32*/
/*********************************************************************************/
//Initialze interrupts.
void uHALr_InitInterrupts(void)
{
// Non-vectored,IRQ disable,FIQ disable
rINTCON=0x0;
// All=IRQ mode
rINTMOD=0x0;
// All interrupt is masked.
rINTMSK=BIT_GLOBAL;
}//uHALr_InitInterrupts
/*********************************************************************************/
//Initialize timer that is used OS.
void uHALr_InitTimers(void)//use timer1
{
rTCFG0=0x0f0f0f; //prescaler =15
rTCFG1=0x11111; //0001 1/4
rTCNTB1= _CLOCK; //counter
rTCMPB1= 0x0;
rTCON=(0x2<<8); //update mode for TCNTB1 and TCMPB1.
rTCON=(0x9<<8); //timer1 = auto reload, start
}//uHALr_InitTimers
/*********************************************************************************/
/*********************************************************************************/
extern void IRQ_Handler(void);
/*********************************************************************************/
void uHALr_InterruptRequestInit()
{
// pISR_IRQ= (unsigned) IRQ_Handler; //irq interrupt
SetISR_Interrupt(INT_TIMER1_OFFSET,OSTimeTick,NULL);
}
/*********************************************************************************/
//Start system timer & enable the interrupt.
void uHALr_InstallSystemTimer(void)
{
//Non-vectored,IRQ enable,FIQ disable
rINTCON=0x5;
//Non maksed TIMER0 .
// rI_ISPC=BIT_TIMER1;
rINTMSK=~(BIT_TIMER1 | BIT_GLOBAL); //Default value=0x7ffffff
}//uHALr_InstallSystemTimer
void ARMTargetInit(void)
{
Port_Init();
Uart_Init(0,115200);
Uart_Printf("\nBegin to run uC/OS-II!\n");
uHALr_InitInterrupts();
uHALr_InitTimers();
uHALr_InterruptRequestInit();
/////////////////////////////////////////////////////////////////
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -