⑴ 单片机怎么实现多任务延时
什么叫“多任务延时 ”?,是不是在延时的时候,其它程序正常运行?如果这样的话,可以使用定时器中断实现。假如定时器每50毫秒中断一次,你定义一个全局变量(C51),在每次执行中断函数时给它加一,想延时多长时间都可以。
补充:
找出四种波半个周期时间的最大公约数,按你给的四个波,最大公约数就是450HZ的半个周期时间,即1.11毫秒,将定时器的中断周期设定为该时间,申明四个全局变量或静态变量,初值均为0,每次中断时四个变量均加一。第一个变量加到18(20/1.111=18)时让其变为0,同时输出25HZ方波的单片机脚反向。第二个变量其实不用加,每次中断都让输出450HZ方波的单片机脚反向。第三个变量加到315(350/1.1111=315)时让其变为0,同时输出0.7S方波的单片机脚反向。当第四个变量为0时,让单片机脚为高,第四个变量为900(1000/1.1111=900)时,让单片机脚为低,当它为4500(5000/1.1111=315)时,让其为0,当然,这些变量都必须是整型数。
采用这样的方法,其它程序正常运行,当然,如果还有其它中断的话,你必须把定时器中断的优先级设为最高。
我不知道你用的是什么单片机,所以无法给你写程序。
⑵ 怎么用51单片机实现多任务操作系统
自己写一个操作系统呗 如果你用的单片机达到多任务要求的 多任务就是将任务进行分类然后要要求给他安排执行的顺序 如果任务简单任务少 可以自己写写 复杂的话 就用ucos吧 开源 又是实时系统 可以满足你的要求
⑶ 单片机多任务编程思路
单片机多任务编程的话一般都是可以调数据,然后分程序来编程。
⑷ 51单片机怎么多任务通信
51单片机速度不是很快,做一个任务比较合适,多任务会力不从心,如果要做的话,必须用操作系统来做,不过效果也不会太好的。
⑸ 51单片机如何实现多线程多任务有哪些程序可以在“后台”自己运行
51单片机可以实现执行时间片形式的多线程任务,具体做法是:1、弄个表两字节一个单位存一下各个任务的执行地址。2、在中断级别较高的T0定时器中断中,把中断压进堆栈的那两个字节保存到表里。3、用表里别的线程的地址重压进堆栈。4、从中断里退出就可以切到另一个线程继续跑了。
我记得这个在早先2000年那时候的大学计算机系单片机原理专业课里讲过,但是那科挂掉的实在太多,现在好像已经把这些独门绝技大多给砍没了,就剩背背汇编指令集。
⑹ 单片机开发板如何实现多任务一起运行
每一项任务只需要分配一个小时隙就执行了,然后一直循环,再加些任务进去也是没问题的。
最后要注意的是每项任务的耗时,尽量精简优化。
⑺ 单片机中如何实现多线程,多任务
可以将不同任务放在定时器中断里, 然后将任务分步骤执行(这大概就叫状态机吧). 比如任务1放在主循环里, 任务2放在定时器1中断里, 任务3放在定时器2中断里. 或者自己利用定时器实现时间片轮换算法. 关键是分配好任务执行的时间片, 以满足对不同事件的响应. 感觉单片机实时性的要求很高。
⑻ 还是单片机多任务
什么意思?要是验证代码正确性,用KEIL环境软件仿真就可以了,但是要保证外存区2000H地址是能被锁存的,要不然观察不到数据。而且你那个^=的操作会产生什么结果还真说不好。
……
os_wait(K_TMO,20,0);
P1 = 0x01;
……
os_wait(K_TMO,40,0);
P1 = 0x02;
……
好观察
⑼ 单片机多任务并行运算的任务吞吐量分析;单片机多任务并行运算适用哪些应用。
以下是单片机实践团为您解答:
1)单片机多任务并行运算任务吞吐量分析,这个话题有点大,我只能简单的说几点,到时候你自由发挥吧。
2)多任务作业系统,对于微控制器而言,其实不能达到所谓的并行运行,只是感觉上像是并行处理一样,也就是所谓的时间片轮询调度,如果任务优先级一样则每个任务分得的时间片一样。对于抢占式的RTOS而言会优先处理级别比较高的任务。
3)说道任务的吞吐量的话,一般OS都会带这样的一个接口供用户调用,我所知道的FreeRTOS的话,有个tasklist的接口,可以打印任务的列表还有个润time相关的API是vTaskGetRunTimeStats这个函数就能打印系统的任务吞吐量,很形象,就是每个任务占的百分比一般基本上是空闲任务占用了90%以上,我一般设计到99%这样。
4)当然了,这些OS还会提供图形化的分析工具,我所了解的FreeRTOS支持trace接口工具能够直观的通过图形图表看出每个任务的吞吐量,一般用于前期设计分析。
5)恩,如果OS不提供这种接口的话,可以动手写相关的接口,便于设计时分析用
6)说到多任务并行运算适用哪些应用的话,这个需要你对系统比较了解的情况才能懂一些,我也简单说明,传统的前后台任务作业系统在任务处理的时候是顺序执行的,或者后台事件触发执行,相比之下多任务并行执行(不是真的并行,真正并行的只有FPGA或者多核才能做的)的作业系统优势明显,因为我们的系统run起来很快的,但是我们的外设一般都比较慢,所以需要花很多时间去等待完成或者其他的阻塞执行,这样无形中浪费了系统的资源,常常会使得有些任务得不到及时的执行,在多任务并行执行的系统就避免了这种情况。
7)举例说明,一个系统有串口发送任务,还有个采集任务,一般串口速率都不是很高,发送的任务明显会比较慢,需要等待发送空,这样的话发送若干数据的时间其实相对系统执行的速率而言是很长的,如果是非并行执行的作业系统的话,需要等待发送完成才能执行采集任务,这样明显使得采集任务不够实时,所以在并行执行的作业系统中,两者都能很好的被执行,干一会这个任务,干一会那个任务,多和谐。
8)说白了,这些都是实时操作系统RTOS的基础知识,看看相关的文献,有利于你明天发挥,祝好运,欢迎追问。
⑽ MCS-51单片机能同时执行多少个任务
51单片机,在某一瞬间,只能执行一个任务,不可以执行多任务。当然,可以进行分时多任务处理。