|
http://v.youku.com/v_show/id_XNTgwNjA2MTMy.html
新唐M0516单片机做的一个多任务调度器,M0516单片机从2.4G上读取GPS信号值及3轴重力传感器的三轴值显示在LCD上!
int main(void)
{
SYS_Init();
SPI1_Init();
LCD_Init9320();
GUI_Initialize();
GUI_FillSCR(WHITE);
/*---------------------------------------------------------------------------------------------------------*/
/* Init UART */
/*---------------------------------------------------------------------------------------------------------*/
/* Reset IP */
// SYS->IPRSTC2 |= SYS_IPRSTC2_UART0_RST_Msk;
// SYS->IPRSTC2 &= ~SYS_IPRSTC2_UART0_RST_Msk;
/* Configure UART0 and set UART0 Baudrate */
// UART0->BAUD = UART_BAUD_MODE2 | UART_BAUD_DIV_MODE2(SystemCoreClock, 115200);
// _UART_SET_DATA_FORMAT(UART0, UART_WORD_LEN_8 | UART_PARITY_NONE | UART_STOP_BIT_1);
// printf("\n\nCPU @ %dHz\n", SystemCoreClock);
if (SysTick_Config (SystemCoreClock/1000 *10)) //10ms tick
{ /* Setup SysTick for 10 msec interrupts */
; /* Handle Error */
while (1);
}
OS_MsgInt(); //初始化消息指针
OSSemCreat(LCD, 1); //lcd可用
OSSemCreat(GPMRC, 1); //数据区可用
OSSemCreat(GPGSV, 1); //数据区可用
OSSemCreat(G_SENSOR, 1); //数据区可用
//任务1,把从2.4g模块收到的GPS GPMRC数据送到LCD显示
Ex_OSTaskCreate(Task0, (uint32_t *)&TASK0_STK[TASK0_TCB_SIZE-1], (uint32_t *)&TASK0_STK, Task0_Prio);
//任务2,统计2.4G中断次数
Ex_OSTaskCreate(Task1, (uint32_t *)&TASK1_STK[TASK1_TCB_SIZE-1], (uint32_t *)&TASK1_STK, Task1_Prio);
//任务3,在LCD上显示CPU利用率
Ex_OSTaskCreate(Task2, (uint32_t *)&TASK2_STK[TASK2_TCB_SIZE-1], (uint32_t *)&TASK2_STK, Task2_Prio);
//任务4,在LCD上显示系统运行时间
Ex_OSTaskCreate(Task3, (uint32_t *)&TASK3_STK[TASK3_TCB_SIZE-1], (uint32_t *)&TASK3_STK, Task3_Prio);
//任务5,在LCD的一个区域上流动显示"- \ | * / | _"
Ex_OSTaskCreate(Task4, (uint32_t *)&TASK4_STK[TASK4_TCB_SIZE-1], (uint32_t *)&TASK4_STK, Task4_Prio);
//任务6,把从2.4g模块收到的GPS GPGSV数据送到LCD显示
Ex_OSTaskCreate(Task5, (uint32_t *)&TASK5_STK[TASK5_TCB_SIZE-1], (uint32_t *)&TASK5_STK, Task5_Prio);
//任务7,把从2.4g模块收到的3轴重力传感器分析数据送到LCD显示
Ex_OSTaskCreate(Task6, (uint32_t *)&TASK6_STK[TASK6_TCB_SIZE-1], (uint32_t *)&TASK6_STK, Task6_Prio);
//任务8,空闲任务,主要是统计CPU的利用率并送给任务3
//任务9, NRF24L01中断接收任务,主要是负责把2.4G收到的数据读出来
/*
OSTaskCreate(Task0, (uint32_t *)&TASK0_STK[TASK0_TCB_SIZE-1], Task0_Prio);
OSTaskCreate(Task1, (uint32_t *)&TASK1_STK[TASK1_TCB_SIZE-1], Task1_Prio);
OSTaskCreate(Task2, (uint32_t *)&TASK2_STK[TASK2_TCB_SIZE-1], Task2_Prio);
OSTaskCreate(Task3, (uint32_t *)&TASK3_STK[TASK3_TCB_SIZE-1], Task3_Prio);
*/
OSStart();
return 0;
}
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|