|
点击此处下载 ourdev_535653.rar(文件大小:827K) (原文件名:VoidSched.rar)
20090228:
由原来的VoidTask改名VoidSched。
AVRGCC部分暂停维护,编译器统一IAR。
#include "config.h"
TSK_Create(A,64,32);
TSK_Create(B,64,32);
TSK_Create(C,64,32);
#define LED_A IO_BIT_ALIAS(&PORTB,0) //LED_A,IO口位域别名
#define LED_B IO_BIT_ALIAS(&PORTB,1) //LED_B,IO口位域别名
#define LED_C IO_BIT_ALIAS(&PORTB,2) //LED_C,IO口位域别名
TSK_Implement(A)
{
volatile float f1=1.0; //测试浮点运算
sei(); //任务开始开中断,每个任务都有自己单独的总中断标志位,任务开始执行时,总中断标志位是关闭的
while(1)
{
f1+=0.1; //测试浮点运算
LED_A=1; //LED_A写1
TSK_Delay(VT_TICKS_PER_SEC/2); //延时1/2S
LED_A=0; //LED_A写0
TSK_Delay(VT_TICKS_PER_SEC-VT_TICKS_PER_SEC/2); //延时1/2S
}
}
TSK_Implement(B)
{
volatile float f2=1.0; //测试浮点运算
sei(); //任务开始开中断,每个任务都有自己单独的总中断标志位
while(1)
{
f2+=0.1; //测试浮点运算
LED_B=1; //LED_B写1
TSK_Delay(VT_TICKS_PER_SEC/3); //延时1/3S
LED_B=0; //LED_B写0
TSK_Delay(VT_TICKS_PER_SEC-VT_TICKS_PER_SEC/3); //延时2/3S
}
}
TSK_Implement(C)
{
volatile float f3=1.0; //测试浮点运算
sei(); //任务开始开中断,每个任务都有自己单独的总中断标志位
while(1)
{
f3+=0.1; //测试浮点运算
LED_C=1; //LED_C写1
TSK_Delay(VT_TICKS_PER_SEC/4); //延时1/4S
LED_C=0; //LED_C写0
TSK_Delay(VT_TICKS_PER_SEC-VT_TICKS_PER_SEC/4); //延时3/4S
}
}
int main()
{
__assert__(SIZEOF_STACK_TYPE_T==1);
cli(); //任务开始调度前,要关中断,每个任务都有自己单独的总中断标志位
DDRB |=_BV(0)|_BV(1)|_BV(2); //LED_A,LED_B,LED_C输出
PORTB |=_BV(0)|_BV(1)|_BV(2); //LED_A,LED_B,LED_C写1
// _delay_ms(1000);
PORTB &=~(_BV(0)|_BV(1)|_BV(2)); //LED_A,LED_B,LED_C写0
VT_TicksInit(); //系统节拍初始化
#ifdef __AVR_IAR__
//AVR IAR使用双堆栈
TSK_Init(TSK(A),TSK_PROC(A),0,TSK_CSTACK_BOTTOM(A),TSK_RSTACK_BOTTOM(A)); //任务A初始化,优先级0
TSK_Init(TSK(B),TSK_PROC(B),0,TSK_CSTACK_BOTTOM(B),TSK_RSTACK_BOTTOM(B)); //任务B初始化,优先级1
TSK_Init(TSK(C),TSK_PROC(C),0,TSK_CSTACK_BOTTOM(C),TSK_RSTACK_BOTTOM(C)); //任务C初始化,优先级2
#else
//AVR GCC使用单堆栈
#error "AVRGCC 暂停维护"
#endif
TSK_Start(); //任务开始调度(开始调度由空闲任务主函数切换到用户任务)
sei(); //空闲任务主函数开中断,空闲任务主函数也有自己单独的总中断标志位
// volatile float f0=1.0; //测试浮点运算
while(1) //任务空闲时,运行这里
{
// f0=f0+0.01; //测试浮点运算
SleepIdle(); //空闲休眠
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|