找回密码
 立即注册

QQ登录

只需一步,快速开始

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

DS1302.h(12): error C129: missing ';' before 'SYSTEM_TIME'

[复制链接]
跳转到指定楼层
楼主
ID:925751 发表于 2021-5-23 10:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大佬们,帮我看看这个错误怎么解,谢谢。DS1302.h(12): error C129: missing ';' before 'SYSTEM_TIME'



#ifndef TIMER_DS1302
#define TIMER_DS1302

sbit DS1302_CLK=P2^6;
sbit DS1302_IO=P2^7;
sbit DS1302_RST=P2^5;
sbit ACC0=ACC^0;

sbit ACC7=ACC^7;

typedef strust SYSTEM_TIME
{
        unsigned char Second;
        unsigned char Minute;
        unsigned char Hour;
        unsigned char Week;
        unsigned char Day;
        unsigned char Mouth;
  unsigned char Year;
        unsigned char DateString[9];
        unsigned char TimeString[9];
}
SYSTEMTIME;

#define AM(X) X
#define PM(X) (X+12)
#define DS1302_SECOND 0X80
#define DS1302_MINUTE 0X82
#define DS1302_HOUR 0x84
#define DS1302_WEEK 0x8A
#define DS1302_DAY 0x86
#define DS1302_MONTH 0x88
#define DS1302_YEAR 0x8C
#define DS1302_RAM(X) (0xC0+(X)*2)

/****Äú2¿Ö¸áî****/
void DS1302InputByte(unsigned char d)
{
        unsigned char i;
        ACC=d;
        for(i=8;i>0;i--)
        {
                DS1302_IO=ACC0;
                DS1302_CLK=1;
                DS1302_CLK=0;
                ACC=ACC>>1;
        }
}

unsigned char DS1302OutputByte(void)
{
        unsigned char i;
        for(i=8;i>0;i--)
        {
                ACC=ACC>>1;
                ACC7=DS1302_IO;
                DS1302_CLK=1;
                DS1302_CLK=0;
               
        }
        return(ACC);
}
void Write1302(unsigned char ucAddr,unsigned char ucDa)
{
        DS1302_RST=0;
        DS1302_CLK=0;
        DS1302_RST=1;
        DS1302InputByte(ucAddr);  //μØÖ·£¬Ãüáî
        DS1302InputByte(ucDa); //D′1×Ö½úμÄêy¾Y
        DS1302_CLK=1;
        DS1302_RST=0;
}       
unsigned char Read1302(unsigned char ucAddr)  //¶áè¡DS1302D¾Æ¬Ä3μØÖ·μÄêy¾Y
{
        unsigned char ucData;
        DS1302_RST=0;
        DS1302_CLK=0;
        DS1302_RST=1;
        DS1302InputByte(ucAddr|0x01);  //éÏéyÑØ£¬D′μØÖ·£¬Ãüáî
        ucData=DS1302OutputByte();  //ϽμÑØ£¬¶á1×Ö½úêy¾Y
        DS1302_CLK=1;
        DS1302_RST=0;
        return(ucData);  //ÔúéÏéyÑØÖ®oó½øDDD′2ù×÷£¬ÔúϽμÑØÖ®Ç°½øDD¶á2ù×÷
       
}
void DS1302_SetProtect(bit flag)
{
        if(flag)
                Write1302(0x8E,0x80);
        else
                Write1302(0x8E,0x00);
}
void DS1302_SetTime(unsigned char Address,unsigned char Value)
{
        DS1302_SetProtect(0);
        Write1302(Address,((Value/10)<<4|(Value%10)));
       
}
void DS1302_GetTime(SYSTEMTIME*Time)
{
        unsigned char ReadValue;
        ReadValue=Read1302(DS1302_SECOND);
        Time->Second=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);
       
        ReadValue=Read1302(DS1302_MINUTE);
        Time->Minute=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);
       
        ReadValue=Read1302(DS1302_HOUR);
        Time->Hour=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);
       
        ReadValue=Read1302(DS1302_DAY);
        Time->Day=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);
       
        ReadValue=Read1302(DS1302_WEEK);
        Time->Week=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);
       
        ReadValue=Read1302(DS1302_MONTH);
        Time->Month=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);
       
        ReadValue=Read1302(DS1302_YEAR);
        Time->YEAR=((ReadValue&0x70)>>4)*10+(ReadValue&0x0F);
}
unsigned char*DataToBCD(SYSTEMTIME*Time)
{
        unsigned char D[8];
       
        D[0]=Time->Second/10<<4+Time->Second%10;
        D[1]=Time->Minute/10<<4+Time->Minute%10;
        D[2]=Time->Hour/10<<4+Time->Hour%10;
        D[3]=Time->Day/10<<4+Time->Day%10;
        D[4]=Time->Month/10<<4+Time->Month%10;
        D[5]=Time->Week/10<<4+Time->Week%10;
        D[6]=Time->Year/10<<4+Time->Year%10;
        return D;
}

void DateToStr(SYSTEMTIME*Time)
{
        Time->DateString[0]=Time->Year/10+'0';
        Time->DateString[1]=Time->Year%10+'0';
        Time->DateString[2]='-';
        Time->DateString[3]=Time->Month/10+'0';
        Time->DateString[4]=Time->Month%10+'0';
        Time->DateString[5]='-';
        Time->DateString[6]=Time->Day/10+'0';
        Time->DateString[7]=Time->Day%10+'0';
        Time->DateString[8]='\0';
}

void TimeToStr(SYSTEAMTIME*Time)
{
        Time->DateString[0]=Time->Hour/10+'0';
        Time->DateString[1]=Time->Hour%10+'0';
        Time->DateString[2]=':';
        Time->DateString[3]=Time->Minute/10+'0';
        Time->DateString[4]=Time->Minute%10+'0';
        Time->DateString[5]=':';
        Time->DateString[6]=Time->Second/10+'0';
        Time->DateString[7]=Time->Second%10+'0';
        Time->DateString[8]='\0';
}

/*uchar*WeekToStr(SYSTEAMTIME Time)
{
uint i;
uchar*z;
i=Time.Week;
switch(i)
{
case 1:z="sun";break;
case 2:z="mon";break;
case 3:z="tue";break;
case 4:z="wen";break;
case 5:z="thu";break;
case 6:z="fri";break;
case 7:z="sat";break;
}
return z;
}
void Initial_DS1302(void)
{
        unsigned char Second;
        Second=Read1302(DS1302_SECOND);
        if(Second&0x80)
        {
        DS1302_SetTime(DS1302_SECOND,0);
        }
}

void DS1302_TimeStop(bit flag)
{
unsigned char Data;
Data=Read1302(DS1302_SECOND);
DS1302_SetProtect(0);
if(flag)
        Write1302(DS1302_SECOND,Data|0x80);
        else
        Write1302(DS1302_SECOND,Data&0x7F);
       
}
#endif
*/



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2021-5-23 11:30 | 只看该作者
最开始加一句#define strust struct

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:824490 发表于 2021-5-23 13:31 | 只看该作者
DS1302.h(12): error C129: missing ';' before 'SYSTEM_TIME'
翻译过来就是:
错误发生在DS1302.h文件中,错误号C129,原因是缺少了“;”符号,位置在 'SYSTEM_TIME'字符前面。

在你发贴、待审核、待回复的这段时间,上百度就已经能得到答案了,百度是个好工具,希望你能善用它。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:891154 发表于 2021-7-10 20:32 | 只看该作者
名字不是重点 发表于 2021-5-23 13:31
DS1302.h(12): error C129: missing ';' before 'SYSTEM_TIME'
翻译过来就是:
错误发生在DS1302.h文件中 ...

不是这个问题,虽然报错字面意思是这个
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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