例如这个怎样终止,运行到if(key==0} open();如果open();未运行到结束,
if(key1==0) closc();时需要马上运行closc();,closc();
运行完不返回open();而是在等待IO输入进行工作,请教》》
void main()
{
if(key==0}
open();
if(key1==0)
closc();
}
没有办法,除非你知道什么进候需要转入,用goto语句强制转移。但很明显,这样会造成程序混乱。
追问为什么别人用汇编做到了呢?难到C言不强么!
谢谢你的关注同意见,你说办法的是可以,程序生成的文件大了一半4K变成了8K,程序看上去非常乱。还有什么好方法么?
追答不会大一半这么多啊,反正不这样 只能中断,最好上个完整的程序 分析逻辑
追问写了太大了。上存不了。控制要求两台电机同时正,反转,正反转限位,停止,正反转启动过程有四个绶冲,在正转过程前方有一个防碰限位,在启动正转有防碰,反转没。防碰限位后没防碰,正转过程地上有磁铁,有5输入口控制左右电机电否走直线。启动正转可马上停止或反转,限位,反转也可以这样灵活控制,正转过程中如果找不能地上的磁铁30秒返回反转到反转限位后正转,从复3 次正转反转停止,正转有防碰信号输入,马上反转限停止
追答我看不懂你的过程描述!
追问控制要求两台电机可同步可正,反转,有正反转限位,停止,正反转启动过时程有四个绶冲,在正转过程前方有一个防碰限位,如果启动正转有防撞,如果防撞有信号反转。到防碰限位后没防撞,正转过程地上有磁铁,有5输入口控制左右电机是否走直线。启动正转可马上停止或反转或限位,反转也可以这样灵活控制,正转过程中如果找不到地上的磁铁30秒反转到反转限位后正转,从复3 次正转反转停止,正转有防撞信号输入马上反转限位停止。
能说个例么??
追答像UCOS什么的,网上有资料的你可以查一下,通过操作系统可以实现任务的切换。
追问能说明白点么?、
单片机如何终止正在运行的程序,去运行别的程序?我不是问中断,是终止一...
单片机只能运行一个程序。程序的入口就是0x00。如果想运行其它的程序,可以在一个程序里设置分支。通常的手段无非是中断或查询IO口状态。
单片机程序烧录后如何暂停运行或者消除已烧录程序!
消除烧录到单片机的力的程序只能用新的数据覆盖,比如可以全0或全1数据下载到单片机。
C语言 单片机 程序不停循环么
这样的程序是不循环的 但编译后就是一个while循环了 和单片机没关的,不相信的话你可以把你这个程序用汇编翻译了后就不会循环了但会出现乱码。程序一定要有循环不然就跑飞了。可以这样 include<reg52.h> sbit p1_1=P1^4; \/\/P1^4连接一个发光二极管 int i;void main(){ p1_1=0; \/\/发...
请教一个单片机的问题 很基础的
是的,只有溢出才申请中断,要进入中断必须要EA=1,和ET0=1两个条件满足。至于你说的开始删除TH0和TL0赋初值也能进入中断的问题,很简单,你没赋初值,那么初值默认为0,经过65536次计数后也同样溢出申请中断。第二个问题嘛,计数是没有终止的,除非你TR0=0,所以你在给TH0和TL0赋值的过程中都在...
单片机程序跑飞的原因你都懂了吗?
首先,让我们聚焦于数组越界\/溢出现象。当程序在函数中执行时,若尝试访问或修改数组中的不存在的元素,将导致程序异常终止。通常,这种错误源自数组的定义长度小于实际使用的元素数量。例如,定义一个数组unDataBuff【10】,但程序中尝试访问第11个元素,就会引发数组越界(数组溢出)错误。解决之道在于仔细...
单片机定时中断实现按键扫描消抖程序,有何利弊?
中断会终止当前主程序运行,中断执行完成后主程序继续执行,总中断可能会打乱主程序时序。
51单片机定时问题,为什么程序那儿要加一个while(1);
main函数中while(1)之前的代码是赋初值操作,是为中断调用使用的。之所以有while(1)是为了使得程序一直在运行,所以才有中断操作的不断执行,否则程序只运行一次就终止啦。
如何终止一个进程使下次开机时也不会启动它
第一步:点击“开始→运行”,输入“Regedit.exe”(不含引号)回车,打开“注册表编辑器”,转至[HKEY_CURRENT_USER\\Software\\Xi\\NetTransport 2\\Download]。第二步:在右侧的编辑框里新建一个DWORD值命名为“Max Threads”,双击这个值,在“数值”中输入128,在“基数”中选择“十六进制”。第三步:...
Python中如何在一段时间后停止程序
用到threading的Timer,也类似单片机那样子,在中断程序中再重置定时器,设置中断,python实例代码如下:import threading import time def change_user():print('这是中断,切换账号')t = threading.Timer(3, change_user)t.start()每过3秒切换一次账号 t = threading.Timer(3, change_user)t.start(...
单片机编程里“while(1);”不是表示终止嘛,那么下面程序执完第一个...
第一个while(1),这是一个无条件循环,因为条件永远为真,即永远循环下去,就是无条件循环了,这是单片机主程序必须的主循环结构。而循环执行的程序是下面{ }内的所有程序。这个程序的主循环有3条语句,i=2000;是给i赋初值,led1=1;是点亮发光二极管,而while(i--);是一个小循环语句,用来延时...