麻烦指点一下

2019-07-16 06:52发布

#include<reg52.h>
sbit LED0 = P1^0;  
sbit LED1 = P1^1;  
sbit LED2 = P1^2;  
sbit 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条回答
lirongqing
1楼-- · 2019-07-16 09:25
task0,,,前面要定义变量类型吧
错误提示是什么?这语句是怎么定义的,还 是第一次看到。
a152978
2楼-- · 2019-07-16 12:35
lirongqing 发表于 2011-8-3 09:04
task0,,,前面要定义变量类型吧
错误提示是什么?这语句是怎么定义的,还 是第一次看到。

task0, , , ,undefined identifier
我也不懂,跟着论坛上写的
lirongqing
3楼-- · 2019-07-16 17:04
 精彩回答 2  元偷偷看……
a152978
4楼-- · 2019-07-16 17:18
lirongqing 发表于 2011-8-3 12:48
没定义的标识符,
你加上int试试
int task0.......

task 是任务,不是数啊,我把程序改了一下,没有用这样的语句,多写了几行代码,效果也出来了,谢谢你啊
lirongqing
5楼-- · 2019-07-16 18:21
a152978 发表于 2011-8-3 18:22
task 是任务,不是数啊,我把程序改了一下,没有用这样的语句,多写了几行代码,效果也出来了,谢谢你啊{ ...

做出来就好,如果可以,欢迎你把解决方法贴上来,供大家学习学习。
a152978
6楼-- · 2019-07-16 19:20
lirongqing 发表于 2011-8-4 12:41
做出来就好,如果可以,欢迎你把解决方法贴上来,供大家学习学习。

就是在主函数中扫描任务时,没有用for,而是用了四个if

一周热门 更多>