📄 task.c
字号:
#include "S3C2440.h"
#include "task.h"
#include "../ucos/includes.h"
//#include "../uart/uart.h"
#include "../Driver/timeer/timeer.h"
#include "../Driver/Lcd/lcd.h"
void OS_Timer_Init(void)
{
//初始化硬定时器 0 优先级最高
//初始化硬定时器 1
TIMER_Init(0, 249, 2);
//定时 (125 * 40)μs = 1ms 调用软定时器管理
TIMER_Create(0, 125, OSTimeTick);
// TIMER_Create(1, 25000, Task1);
//开启定时器
// TIMER_Start(0);
TIMER_Start(0);
}
void Task10(void *data)
{
char x = 0;
char xtmp[20] = {0};
// timer_init();
// TIMER_Create(1, 25000, led_run);
while(1)
{
switch(x)
{
case 1:
GPBDAT=(~GPBDAT)^(~(1<<5));
break;
case 2:
GPBDAT=(~GPBDAT)^(~(1<<6));
break;
case 3:
GPBDAT=(~GPBDAT)^(~(1<<7));
break;
case 4:
GPBDAT=(~GPBDAT)^(~(1<<8));
break;
default:
break;
}
sprintf(xtmp, "x = %d\r\n",x);
//Uart_SendString(xtmp);
if(++x > 4)
{
//OSTaskDel(OS_PRIO_SELF);//任务完成后自我删除 返回到睡眠态
x = 1;
}
//正在运行的任务可以通过调用两个函数之一将自身延迟一段时间,这两个函数是
//OSTimeDly()或OSTimeDlyHMSM()。这个任务于是进入等待状态,等待这段时间过去,下一
//个优先级最高的、并进入了就绪态的任务立刻被赋予了CPU 的控制权。等待的时间过去以
//后,系统服务函数OSTimeTick()使延迟了的任务进入就绪态
OSTimeDlyHMSM(0,0,1,0);
}
}
void Task2(void *data)
{
unsigned char *PicText = (unsigned char *)(0X001D0000);
//OS_Timer_Init();
LCD_Init();
while(1)
{
//打印背景图
LCD_draw(0, 0, 320, 240, PicText); //画图
OSTimeDlyHMSM(0,0,5,0);
LCD_ClearScreen(RGB(255,255,255));
OSTimeDlyHMSM(0,0,1,0);
//OSTaskDel(OS_PRIO_SELF);//任务完成后自我删除 返回到睡眠态
// OSTaskDelReq(7);
}
}
void Main_Task(void *data)
{
}
void ARM_Init(void)
{
//允许IRQ中断,清除中断位
IRQ_Init();
LCD_Init();
//系统时钟初始化 400MHz
OS_Timer_Init();
//端口初始化
// Port_Init();
//串口初始化
// Uart_Init(0, 115200);
// Uart_Select(0);
/// Uart_SendString("hellow kity");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -