外部中断执行过程中,只要定时中断能产生并且能进入定时中断子程序,定时器就可以计数,这跟你设置的中断优先级有关系。你的这段程序里好像没有体现中断优先级。如果定时器中断的优先级高于外部中断,这样就可以,否则就不行。
举个简单的例子:执行中断好比一位老师讲课,没有设置中断优先级(默认设置)的犹如两个班的学生,老师讲课当然要按顺序一个一个来讲。但是如果设置了中断优先级,那么优先级高的就会被优先处理,当正在讲课(正在处理优先级低的任务)时突然校长在门外敲门找老师(校长的优先级比较高),所以老师就会停止给学生讲课去处理校长的事情,等处理完了再回来继续给学生讲课。
你好,比较方便的实现方式是在函数的外部申请数组;在调用函数的时候传入数组的地址进行 *** 作。如果一定要在子函数内部申请空间并返回地址,那么需要在子函数内部动态申请内存空间。具体的方法一般是使用标准库中的malloc函数。对于c51函数库,参考这个链接:http://wwwkeilcom/support/man/docs/c51/c51_mallochtm
这个延时关键看使用的晶振多大,比如12M晶振for(j=0;j<120;j++);大概延时1毫秒,110592M晶振那么for(j=0;j<110;j++);延时1毫秒,你这里的for(j=0;j<100;j++);延时1毫秒的话,晶振应该是10M,不太常见哟,特别是在单片机方面。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)