📄 test.c
字号:
/*
**********************************************************************************************************************
*Project: ARMTESTucos2.80
*Test File
**********************************************************************************************************************
*/
#include "ucos_ii.h"
#include "Target/44blib.h"
#include "Target/44b.h"
OS_STK TestTaskStk[100];
void TestTask (void *);
void ARMSYSinit(void);
void ARMSYS_int_init(void);
void ARMSYS_timer_init(void);
void ARMSYSstart(void);
int Main(int argc, char **argv)
{
rSYSCFG=CACHECFG;// Using 8KB Cache//
Port_Init();
Uart_Init(0,115200);
Led_Display(0xf);
Uart_Select(0); //Select UART0//
Beep(0x1);
Uart_Printf("\n---------------------------------------------------------------");
Beep(0x00);
Uart_Printf("\nProject: ARMTESTucos2.80");
Uart_Printf("\nTRY YOUR BEST!!!");
Uart_Printf("\n---------------------------------------------------------------");
Led_Display(0x0);
ARMSYSinit();
OSInit();
OSTaskCreate(TestTask, (void *)0, &TestTaskStk[99],0);
OSStart();
return 0;
}
void TestTask (void *pdata)
{
BOOLEAN led_state;
pdata = pdata;
ARMSYSstart();
led_state = FALSE;
Led_Display(0xf);
while(1){
OSTimeDly(1);
if(led_state == FALSE){
led_state = TRUE;
Led_Display(0xf);
}else{
led_state = FALSE;
Led_Display(0x0);
}
}
}
/*
*************************************************************************************************************************
*void ARMSYSinit(void):关中断,中断控制器设置(子中断指针安装前),定时器初始化
*************************************************************************************************************************
*/
void ARMSYSinit(void)
{
OS_CPU_SR_Save();//关中断
ARMSYS_int_init();//中断控制器设置(子中断指针安装前)
ARMSYS_timer_init();//定时器初始化
}
void ARMSYS_int_init(void)
{
// Non-vectored,IRQ disable,FIQ disable
rINTCON=0x0;
// All=IRQ mode
rINTMOD=0x0;
// All interrupt is masked.
rINTMSK=BIT_GLOBAL;
}
void ARMSYS_timer_init(void)
{
rTCFG0=0x00000004; // prescaler0 = 4
rTCFG1=0x00000003; // mux0 = 1/16
rTCNTB0= 100000; //_CLOCK;
rTCMPB0= 0x0;
rTCON=0x2; //update mode for TCNTB0 and TCMPB0.
rTCON=0x9; //timer0 = auto reload, start
}
/*
***************************************************************************************************************************
*void ARMSYSstart(void):子中断指针与子中断子程序连接(特别是Timer)中断再配置、屏蔽与使能(子中断指针安装后)
***************************************************************************************************************************
*/
void ARMSYSstart(void)
{
pISR_TIMER0= (unsigned)OSTimeTick;
//Non-vectored,IRQ enable,FIQ disable
rINTCON=0x5;
//Non maksed TIMER0 .
rINTMSK=~(BIT_TIMER0 | BIT_GLOBAL); //Default value=0x7ffffff
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -