110 lines
3.0 KiB
C
110 lines
3.0 KiB
C
#include "mcu_init.h"
|
|
#include "cmsis_os.h"
|
|
#include "tiny_logo.h"
|
|
|
|
#define APPLICATION_TASK_STK_SIZE 4096
|
|
extern void application_entry(void *arg);
|
|
osThreadDef(application_entry, osPriorityNormal, 1, APPLICATION_TASK_STK_SIZE);
|
|
|
|
__weak void application_entry(void *arg)
|
|
{
|
|
while (1) {
|
|
printf("This is a demo task, please use your task entry!\r\n");
|
|
tos_task_delay(1000);
|
|
}
|
|
}
|
|
|
|
#define STK_SIZE_TASK1 512
|
|
#define STK_SIZE_TASK2 512
|
|
|
|
|
|
k_stack_t stack_task1[STK_SIZE_TASK1];
|
|
k_stack_t stack_task2[STK_SIZE_TASK2];
|
|
|
|
k_task_t task_Task1;
|
|
k_task_t task_Task2;
|
|
|
|
void entry_task1(void *arg);
|
|
void entry_task2(void *arg);
|
|
/********************************************************/
|
|
//LCD刷屏时使用的颜色
|
|
int lcd_discolor[13]={ WHITE, BLUE, BRED, GRED, GBLUE, RED, MAGENTA,
|
|
GREEN, CYAN, YELLOW, BROWN, BRRED, GRAY };
|
|
|
|
/********************************************************/
|
|
|
|
int main(void)
|
|
{
|
|
board_init();
|
|
LCD_DisplayOn();
|
|
LCD_Show_Image(10, 14, 220, 50, tiny_logo);
|
|
|
|
BACK_COLOR = WHITE;
|
|
POINT_COLOR = BLUE;
|
|
LCD_ShowString(10, 64, 240, 24, 24, "Pandora STM32L475");
|
|
|
|
POINT_COLOR = RED;
|
|
LCD_ShowString(10, 96, 240, 16, 16, "QinYUN575" "@" __DATE__);
|
|
|
|
printf("\r\n===========================================================\r\n");
|
|
printf("\r\n");
|
|
printf("\tWelcome to TencentOS tiny\r\n");
|
|
printf("\tCompile Time:%s, %s\r\n", __TIME__, __DATE__);
|
|
printf("\tCoding by QinYUN575\r\n");
|
|
printf("\r\n");
|
|
printf("===========================================================\r\n");
|
|
|
|
osKernelInitialize();
|
|
osThreadCreate(osThread(application_entry), NULL);
|
|
(void)tos_task_create(&task_Task1, "task_Task1", entry_task1, (void *)NULL,
|
|
5, stack_task1, STK_SIZE_TASK1, 0);
|
|
(void)tos_task_create(&task_Task2, "task_Task2", entry_task2, (void *)NULL,
|
|
5, stack_task2, STK_SIZE_TASK2, 0);
|
|
|
|
osKernelStart();
|
|
}
|
|
|
|
|
|
/**
|
|
* Taks1_task 任务函数
|
|
*
|
|
*/
|
|
void entry_task1(void *arg)
|
|
{
|
|
uint8_t task1_count = 0;
|
|
POINT_COLOR = BLUE;
|
|
LCD_ShowString(10, 120, 215, 12, 12, "Task1 Run:");
|
|
POINT_COLOR = BLACK;
|
|
LCD_DrawRectangle(10, 140, 90, 220);
|
|
|
|
while (1)
|
|
{
|
|
LCD_Fill(11, 141, 89, 219, lcd_discolor[task1_count++%13]);
|
|
LCD_ShowNum(75, 120, task1_count, 3, 12);
|
|
HAL_GPIO_TogglePin(GPIOE, LED_R_Pin);
|
|
tos_task_delay(800);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Taks2_task 任务函数
|
|
*
|
|
*/
|
|
void entry_task2(void *arg)
|
|
{
|
|
uint8_t task2_count = 0;
|
|
|
|
POINT_COLOR = BLUE;
|
|
LCD_ShowString(135, 120, 215, 12, 12, "Task2 Run:");
|
|
POINT_COLOR = BLACK;
|
|
LCD_DrawRectangle(135, 140, 215, 220);
|
|
while (1)
|
|
{
|
|
LCD_Fill(136, 141, 214, 219, lcd_discolor[task2_count++%13]);
|
|
LCD_ShowNum(195, 120, task2_count, 3, 12);
|
|
HAL_GPIO_TogglePin(GPIOE, LED_B_Pin);
|
|
tos_task_delay(500);
|
|
}
|
|
}
|