找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6749|回复: 8
打印 上一主题 下一主题
收起左侧

MAIN.C(17): 错误 C129: missing ';' before 'code'

[复制链接]
跳转到指定楼层
楼主
ID:95809 发表于 2015-12-26 20:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下程序出现 MAIN.C(17): 错误 C129: missing ';' before 'code',哪位帮我看一下这是什么问题导致
#include <common.h>
#include <rtx51tny.h>
#include <reg51.h>
#include <intrins.h>
#define KEY_OFF                0x00
#define KEY_ON                0x01
#define SYS_IDLE        0x00
#define SYS_RUNNING        0x01
#define SYS_PAUSE        0x02
#define SYS_TIMEOUT        0x03
#define SYS_ERROR        0x80
#define EXT_BEEPER_MAX        0x7f


uint8 code seg7 code(10) =         ////这里报错。
{        0xc0, 0xf9, 0xa4, 0xb0, 0x99,
        0x92, 0x82, 0xf8, 0x80, 0x90};


sbit ext_beeper = P1^2;
sbit ext_key_dec = P1^3;
sbit ext_key_one = P1^4;
sbit ext_key_start = P1^5;
sbit ext_led_min = P1^6;
sbit ext_led_sec = P1^7;

#define ext_latch_data P2
sbit ext_latch_oe = P3^7;
sbit ext_latch_le_dec = P1^1;
sbit ext_latch_le_one = P1^0;  


byte sys_status = SYS_IDLE;
byte sys_set_time = 0;        // 0-99 min.
byte sys_min = 1;                // real minutes
byte sys_sec = 0;                // real sec
byte sys_dirty = true;        // dirty flag

uint8 ext_beep_count = EXT_BEEPER_MAX;       
void init(void) _task_ 0{
        P1 = 0xff;
        ext_led_min = 1;
        ext_led_sec = 0;
        ext_latch_data = 0x00;
        ext_latch_oe = 0;
        ext_latch_le_dec = 1;
        ext_latch_le_one = 1;

        sys_set_time = 1;
        sys_min = sys_set_time;
        sys_sec = 0;

       
        os_create_task(1);
       
        os_create_task(3);

        os_create_task(5);

        sys_dirty = true;

        while(1);
}

void ext_seg7_show(byte dec, byte one){
        ext_latch_data = ~seg7_code[(dec < 0) ? 0 : dec];
        ext_latch_le_dec = 1;
        ext_latch_le_dec = 0;
       
        ext_latch_data = ~seg7_code[(one < 0) ? 0 : one];
        ext_latch_le_one = 1;
        ext_latch_le_one = 0;
}


// scan keypad
// 50 fps @ 10ms
void keypad(void) _task_ 1{
        while(1){
                if(!ext_key_dec){
                        while(!ext_key_dec);
                        if(sys_status == SYS_IDLE){
                                if(sys_set_time < 90){
                                        sys_set_time += 10;
                                }else{
                                        sys_set_time %= 10;
                                        if(sys_set_time == 0)
                                                sys_set_time = 1;
                                }
                                sys_min = sys_set_time;
                                sys_sec = 0;
                        }
                        if(sys_status == SYS_TIMEOUT){
                                sys_status = SYS_IDLE;
                                ext_beep_count = EXT_BEEPER_MAX;
                                sys_min = sys_set_time;
                                sys_sec = 0;
                                ext_latch_oe = 0;
                        }
                }
                if(!ext_key_one){
                        if(sys_status == SYS_IDLE){
                                while(!ext_key_one);
                                if(sys_set_time % 10 < 9){
                                        sys_set_time++;
                                }else{
                                        if(sys_set_time > 10)
                                                sys_set_time -= 9;
                                        else
                                                sys_set_time -= 8;        // left 1
                                }
                                sys_min = sys_set_time;
                                sys_sec = 0;
                        }
                        if(sys_status == SYS_TIMEOUT){
                                sys_status = SYS_IDLE;
                                ext_beep_count = EXT_BEEPER_MAX;
                                sys_min = sys_set_time;
                                sys_sec = 0;
                                ext_latch_oe = 0;
                        }
                }
                if(!ext_key_start){
                        while(!ext_key_start);
                       
                        if(sys_status == SYS_IDLE){
                                sys_status = SYS_RUNNING;
                        }else{
                                sys_status = SYS_IDLE;
                                ext_beep_count = EXT_BEEPER_MAX;
                                sys_min = sys_set_time;
                                sys_sec = 0;
                                ext_latch_oe = 0;
                        }
                }
                sys_dirty = true;


                // TRANSFERED FROM task 2, for performance
                if(sys_dirty){
                        if(sys_min > 0){
                                ext_led_min = 1;
                                ext_led_sec = 0;
                                ext_seg7_show(sys_min / 10, sys_min % 10);
                        }else{
                                ext_led_min = 0;
                                ext_led_sec = 1;
                                ext_seg7_show(sys_sec / 10, sys_sec % 10);
                        }
                        sys_dirty = false;
                }



                // repeat @ 50 fps
                os_wait(K_IVL, 2, 0);
        }
}


void display(void) _task_ 2{
        while(1){
                if(sys_dirty){
                        if(sys_min > 0){
                                ext_led_min = 1;
                                ext_led_sec = 0;
                                ext_seg7_show(sys_min / 10, sys_min % 10);
                        }else{
                                ext_led_min = 0;
                                ext_led_sec = 1;
                                ext_seg7_show(sys_sec / 10, sys_sec % 10);
                        }
                        sys_dirty = false;
                }
                os_wait(K_IVL, 3, 0);
        }
}
*/

// Turn ON/OFF the beeper --done
// 2 fps @ 500ms
void beep(void) _task_ 3{

        while(1){
                if(sys_status == SYS_TIMEOUT){
                        if(ext_beep_count){
                                ext_beep_count = EXT_BEEPER_MAX;
                                while(ext_beep_count--)
                                        ext_beeper = ~ext_beeper;
                        }else{
                                ext_beeper = 1;
                                ext_beep_count = EXT_BEEPER_MAX;
                                sys_status = SYS_IDLE;
                                sys_min = sys_set_time;
                                sys_sec = 0;
                                sys_dirty = true;
                        }

                }else{
                        ext_beeper = 1;
                }
               

                // TRANSFERED FROM task 4
                if(sys_status == SYS_IDLE){
                        // not blink
                        //ext_beeper = 1;
                }else{
                        // blink when RUNNING or TIMEOUT
                        if(sys_min > 0)
                                ext_led_min = ~ext_led_min;
                        else
                                ext_led_sec = ~ext_led_sec;
                }
               
                // blink screen
                if(sys_status == SYS_TIMEOUT){
                        ext_latch_oe = ~ext_latch_oe;
                }


                       
                // repeat @ 2 fps
                os_wait(K_IVL, 30, 0);
        }
}


void blink(void) _task_ 4{

        while(1){
                if(sys_status == SYS_IDLE){
                        // not blink
                       
                }else{
                        // blink when RUNNING or TIMEOUT
                        if(sys_min > 0)
                                ext_led_min = ~ext_led_min;
                        else
                                ext_led_sec = ~ext_led_sec;
                }
               
                // blink screen
                if(sys_status == SYS_TIMEOUT){
                        ext_latch_oe = ~ext_latch_oe;
                }

                // repeat @ 2 fps
                os_wait(K_IVL, 30, 0);
        }
}
*/

// timer  --done
// 1 fps @ 1000ms
void timer(void) _task_ 5{
        while(1){
                if(sys_status == SYS_RUNNING){
                        if(sys_sec > 0){
                                sys_sec--;
                        }else{
                                if(sys_min > 0){
                                        sys_min--;
                                        sys_sec = 59;
                                }else{
                                        // timeout
                                        sys_status = SYS_TIMEOUT;
                                        sys_dirty = true;
                                }
                        }       
                }

                // repeat @ 1 fps
                os_wait(K_IVL, 50, 0);
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2015-12-26 20:54 来自手机 | 只看该作者
应该是,语句最后掉了分号,楼主的程序有几个头文件我这边没有无法在本地进行实验了
回复

使用道具 举报

板凳
ID:95809 发表于 2015-12-26 21:00 | 只看该作者
一开始我也分析是缺少分号,加上之后仍然出错,实在是不知道错哪了。
回复

使用道具 举报

地板
ID:1 发表于 2015-12-26 21:06 来自手机 | 只看该作者
要不你把全部的工程文件打包传上来
回复

使用道具 举报

5#
ID:95809 发表于 2015-12-26 21:11 | 只看该作者
好的,谢谢了。

源码.zip

210.63 KB, 下载次数: 11

回复

使用道具 举报

6#
ID:57896 发表于 2015-12-26 21:59 | 只看该作者
main函数都没有?
回复

使用道具 举报

7#
ID:95809 发表于 2015-12-27 21:12 | 只看该作者
那条语句是定义0-9显示码,我改成uchar code table[]=仍然报错,提升是code附近缺分号,可是明明不缺,实在不明白了。
回复

使用道具 举报

8#
ID:99525 发表于 2015-12-27 21:32 | 只看该作者
看看上面2行空行,有没有不显示的非法字符
回复

使用道具 举报

9#
ID:84652 发表于 2015-12-30 20:06 | 只看该作者
找不到common.h,不过应该是uchar  uint8 这些定义的时候出问题了。我改了就没错了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表