📄 main.c
字号:
#include "def.h"
#include "2410lib.h"
#include "bspinit.h"
#include "includes.h"
#include "uhal.h"
#ifdef SEMIHOSTED
#define STACKSIZE (SEMIHOSTED_STACK_NEEDS+64)
#else
#define STACKSIZE 4096
#endif
unsigned int Stack1[STACKSIZE];
unsigned int Stack2[STACKSIZE];
unsigned int Stack3[STACKSIZE];
void user_task(void * pParam);
void lcd_task(void *pParam);
void yzx_task(void *pParam);
/*void Key_Init()
{
rGPFCON = 0x8;
rGPFUP = 0xFFFFFFF;
}*/
void key_led_init(void)
{
rGPBCON = 0x154000; // set GPB7-10 to output
// 01 01 01 01 00 00 00 00 00 00 00
//GPB10 GPB9 GPB8 GPB7 GPB6 GPB5 GPB4 GPB3 GPB2 GPB1 GPB0
rGPBDAT = 0x7ff; //close all led
// 1 1 1 1 1 1 1 1 1 1 1
// GPB10 GPB9 GPB8 GPB7 GPB6 GPB5 GPB4 GPB3 GPB2 GPB1 GPB0
rGPBUP = 0; //
rGPFDAT = 0xff; //clear key
}
void keyscan(void)
{
U8 key;
key = rGPFDAT;
switch(key)
{
case 0x7f:rGPBDAT=0x3ff;break; // push key 4 to light led 4
case 0xf7:rGPBDAT=0x5ff;break; // push key 3 to light led 3
case 0xfb:rGPBDAT=0x6ff;break; // push key 2 to light led 2
case 0xfd:rGPBDAT=0x77f;break; // push key 1 to light led 1
default: break;
}
}
void Main(void)
{
Bsp_Init();
//Key_Init();
InitInfo();
InitTimers();
InitInterrupts();
OSInit();
OSTimeSet(0);
OSTaskCreate(user_task, (void *)0, (void *)&Stack1[STACKSIZE - 1], 5);
OSTaskCreate(lcd_task, (void *)0, (void *)&Stack2[STACKSIZE - 1], 2);
OSTaskCreate(yzx_task, (void *)0, (void *)&Stack3[STACKSIZE - 1], 1);
InstallIrqHandler();
OpenIRQ();
OSStart();
Uart_Printf("never arrive here\n");
}
void user_task(void *i)
{
while(1)
{
Uart_Printf("enter user task\n");
OSTimeDly(5*OS_TICKS_PER_SEC);
}
}
void lcd_task(void *i)
{
while(1)
{
Uart_Printf("enter lcd task\n");
OSTimeDly(7*OS_TICKS_PER_SEC);
}
}
void yzx_task(void *i)
{
Bsp_Init();
key_led_init();
while(1)
{
//Uart_Printf("yuanzhixiong\n");
keyscan();
OSTimeDly(1*OS_TICKS_PER_SEC);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -