高级会员

- 积分
- 537
- 金钱
- 537
- 注册时间
- 2013-8-9
- 在线时间
- 3 小时
|
5金钱
求有统计任务UCOS迷你的例程,本人主程序如下,但是 OSStatInit();;系统老是进入硬件中断,注释掉就能运行,那就实现不了统计任务,求大神指点一二
#include "led.h"
#include "delay.h"
#include "key.h"
#include "sys.h"
#include "usart.h"
#include "includes.h"
OS_STK STK_TASkSTART[512];
OS_STK STK_TASK1[512];
OS_STK STK_TASK2[512];
OS_STK STK_TASK3[512];
#define TASK_START 0
#define TASK1_PRIO 1
#define TASK2_PRIO 2
#define TASK3_PRIO 3
void taskStart(void *pdata);
void task1(void *pdata);
void task2(void *pdata);
void task3(void *pdata);
int main(void)
{
SystemInit(); //系统初始化 72M
delay_init(72); //延时初始化
NVIC_Configuration();
uart_init(9600);//串口初始化,波特率9600
LED_Init(); //LED0,LED1端口初始化
KEY_Init(); //KEY端口初始化
OSInit();
OSTaskCreate(taskStart, //任务地址
(void *)0, //参数
(OS_STK *)&STK_TASkSTART[511], //任务栈顶指针
TASK_START );
OSStart();
return 0;
}
void taskStart(void *pdata)
{
// OSStatInit();
OS_ENTER_CRITICAL();
//printf("gafgfag");
OSTaskCreate(task1, //任务地址
(void *)0, //参数
(OS_STK *)&STK_TASK1[511], //任务栈顶指针
TASK1_PRIO );
OSTaskCreate(task2, //任务地址
(void *)0, //参数
(OS_STK *)&STK_TASK2[511], //任务栈顶指针
TASK2_PRIO );
OSTaskCreate(task3, //任务地址
(void *)0, //参数
(OS_STK *)&STK_TASK3[511], //任务栈顶指针
TASK3_PRIO );
OS_EXIT_CRITICAL();
OSTaskSuspend(OS_PRIO_SELF) ;
}
void task1(void *pdata)
{
pdata=pdata;
while(1)
{
OS_ENTER_CRITICAL();
printf("任务111111111执行\r\n");
OS_EXIT_CRITICAL();
OSTimeDly(100);
}
}
|
|