无操作系统程序如何用C代码实现程序强制调度

[复制链接]
 楼主| cd666 发表于 2011-5-13 16:31 | 显示全部楼层 |阅读模式
在裸奔中,如何使用C代码进行程序调度.比如系统有一个10ms定时中断,在主程序运行过程中,发生定时中断之后,处理完中断后先执行一个event_10ms,(在中断外执行),再回到主程序中运行.
void T1_ISR(void) interrupt 3
{//data i;

TH1 = Over10ms/256;

TL1 = Over10ms+6;

CAN_10ms = 1;
}


void event_10ms(void)
{
//...
}

void main(void)
{
    while(1)
    {
    }
.....
}
intermec 发表于 2011-5-13 18:07 | 显示全部楼层
中断时把要执行的函数地址,放好,中断出来后,取来执行(用函数指针应该可以实现,)
hgjinwei 发表于 2011-5-13 21:42 | 显示全部楼层
中断退出前将要执行的函数地址值压入堆栈,然后退出,估计要嵌入汇编了。
原野之狼 发表于 2011-5-13 23:36 | 显示全部楼层
这已经是操作系统的思路了 所以你裸奔是做不到的 除非你人工调整栈 这样子没必要
你的任务优先级有必要搞这么高么 刚出中断就要得到执行?
还是从架构上调整下吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

153

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部