打印

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

[复制链接]
2009|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

粉丝