完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include
***it LED0 = P1^0; ***it LED1 = P1^1; ***it LED2 = P1^2; ***it LED3 = P1^3; unsigned char task_delay[4]={0}; void ( * code task[])() = {task0,task1,task2,task3}; !!!!!!!!这个地方怎么编译出错啊,不懂 void init() { unsigned char i; for(i=0;i<4;i++) task_delay[i]=0; TMOD=0x01; TH0=0xec; TL0=0x78; ET0=1; TR0=1; } void run(void (*ptask)()) { (*ptask)(); } void timer0(void) interrupt 1 { unsigned char i; TH0=0xec; TL0=0x78; for(i=0;i<4;i++) { if(task_delay[i]!=0) task_delay[i]--; } } void main() { unsigned char j; init(); EA=1; for(j=0;j<4;j++) { if(task_delay[j]==0) run(task[j]); break; } } void task0() { LED0 = !LED0; task_delay[0] =100; } void task1() { LED1 = !LED1; task_delay[1] = 50; } void task2() { LED2 = !LED2; task_delay[2] = 10; } void task3() { static unsigned char j=0; switch(j) { case 0:LED3=!LED3; task_delay[3]=5; j=1; break; case 1:LED3=!LED3; task_delay[3]=10; j=2; break; case 2:LED3=!LED3; task_delay[3]=20; j=0; default :j=0; task_delay[3]=5; break; } } |
|
相关推荐
6个回答
|
|
|
|
|
|
task0, , , ,undefined identifier 我也不懂,跟着论坛上写的 |
|
|
|
没定义的标识符, 你加上int试试 int task0....... |
|
|
|
task 是任务,不是数啊,我把程序改了一下,没有用这样的语句,多写了几行代码,效果也出来了,谢谢你啊{:soso_e100:} |
|
|
|
{:soso_e128:}做出来就好,如果可以,欢迎你把解决方法贴上来,供大家学习学习。 |
|
|
|
就是在主函数中扫描任务时,没有用for,而是用了四个if |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
串口发送中断中对发送I/O口定义为GPIO输出,出现发送数据不完整,缺少2个字节,求解答
1168 浏览 3 评论
728 浏览 0 评论
【xG24 Matter开发套件试用体验】10-Bluetooth示例1
836 浏览 0 评论
919 浏览 0 评论
【xG24 Matter开发套件试用体验】power specification电源规格参数配置
747 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10853 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-25 16:16 , Processed in 0.621006 second(s), Total 83, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191