[mw_shl_code=c,true]#include "sys.h"
#include "delay.h"
#include "led.h"
#include "lcd.h"
#include "includes.h"
/************************************************
ALIENTEK????STM32??·?°????é51
UCOSII???é1-?????÷?? ???é
?????§????www.openedv.com
??±??ê????http://openedv.taobao.com
??×????????????¨????????"?????×?"????·?????STM32×?????
?????????í??×?????????????
×÷?????????×? @ALIENTEK
************************************************/
/////////////////////////UCOSII?????è??///////////////////////////////////
//START ????
//?è????????????
#define START_TASK_PRIO 10 //?????????????????è????×???
//?è???????????ó??
#define START_STK_SIZE 64
//????????
OS_STK START_TASK_STK[START_STK_SIZE];
//????????
void start_task(void *pdata);
//LED0????
//?è????????????
#define LED0_TASK_PRIO 7
//?è???????????ó??
#define LED0_STK_SIZE 64
//????????
OS_STK LED0_TASK_STK[LED0_STK_SIZE];
//????????
void led0_task(void *pdata);
//LED1????
//?è????????????
#define LED1_TASK_PRIO 6
//?è???????????ó??
#define LED1_STK_SIZE 64
//????????
OS_STK LED1_TASK_STK[LED1_STK_SIZE];
//????????
void led1_task(void *pdata);
//LED1????
//?è????????????
#define LCD_TASK_PRIO 8
//?è???????????ó??
#define LCD_STK_SIZE 128
//????????
OS_STK LCD_TASK_STK[LCD_STK_SIZE];
//????????
void lcd_task(void *pdata);
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//?è????????????·?×é??×é2??2??????????????2???ì????????
delay_init(); //???±??????????
LED_Init(); //????????LED??????????????
LCD_Init();
OSInit();
OSTaskCreate(start_task,(void *)0,(OS_STK *)&START_TASK_STK[START_STK_SIZE-1],START_TASK_PRIO );//???¨????????
OSStart();
}
//????????
void start_task(void *pdata)
{
OS_CPU_SR cpu_sr=0;
pdata = pdata;
OS_ENTER_CRITICAL(); //??????????(??·¨±??????ò??)
OSTaskCreate(led0_task,(void *)0,(OS_STK*)&LED0_TASK_STK[LED0_STK_SIZE-1],LED0_TASK_PRIO);
OSTaskCreate(led1_task,(void *)0,(OS_STK*)&LED1_TASK_STK[LED1_STK_SIZE-1],LED1_TASK_PRIO);
OSTaskCreate(lcd_task,(void *)0,(OS_STK*)&LCD_TASK_STK[LCD_STK_SIZE-1],LCD_TASK_PRIO);
OSTaskSuspend(START_TASK_PRIO); //????????????.
OS_EXIT_CRITICAL(); //??????????(????±??????ò??)
}
//LED0????
void led0_task(void *pdata)
{
while(1)
{
LED0=0;
delay_ms(80);
LED0=1;
delay_ms(920);
};
}
//LED1????
void led1_task(void *pdata)
{
while(1)
{
LED1=0;
delay_ms(300);
LED1=1;
delay_ms(300);
};
}
void lcd_task(void *pdata)
{
u8 x=0;
while(1)
{
switch(x)
{
case 0

CD_Clear(WHITE);break;
case 1

CD_Clear(BLACK);break;
case 2

CD_Clear(BLUE);break;
case 3

CD_Clear(RED);break;
case 4

CD_Clear(MAGENTA);break;
case 5

CD_Clear(GREEN);break;
case 6

CD_Clear(CYAN);break;
case 7

CD_Clear(YELLOW);break;
case 8

CD_Clear(BRRED);break;
case 9

CD_Clear(GRAY);break;
case 10:LCD_Clear(LGRAY);break;
case 11:LCD_Clear(BROWN);break;
}
POINT_COLOR=RED;
LCD_ShowString(30,50,"Mini STM32 ^_^");
LCD_ShowString(30,70,"2.4'/2.8' TFTLCD TEST");
LCD_ShowString(30,90,"ATOM@ALIENTEK");
LCD_ShowString(30,110,"2010/12/30");
x++;
if(x==12)x=0;
delay_ms(1000);
};
}
[/mw_shl_code]