找回密码
 立即注册
查看: 484|回复: 13

有一段遥控发射接收的程序,在编译时老是报错,没法写,帮忙看看

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2024-12-06 08:15:07
已绑定手机

12

主题

22

回帖

129

积分

注册会员

积分
129
发表于 2024-11-26 14:37:27 | 显示全部楼层 |阅读模式

#include <stc8g.h>
#include <intrins.h>
#include <absacc.h>
sbit  LED=P5^4;  //ָʾµÆ
sbit  IR=P5^5;   //ºìÍâ·¢Éä
sbit  Signal_input=P3^3;  //½ÓÊÕÐźÅ
sbit  Output_control=P3^2; //Êä³öÐźÅ
#define int u_code
#define char data_code
void ir_send_pulse(unsigned int u_code,unsigned char data_code)
void Send_Ir(unsigned int i);
void No_send_Ir(unsigned int i);
void Send_rc5_0(void);
void Send_rc5_1(void);
void Timer1_Init(void)                //8.77΢Ãë@11.0592MHz
{
        AUXR |= 0x40;                        //¶¨Ê±Æ÷ʱÖÓ1Tģʽ
        TMOD &= 0x0F;                        //ÉèÖö¨Ê±Æ÷ģʽ
        TL1 = 0x9B;                                //ÉèÖö¨Ê±³õʼֵ
        TH1 = 0xFF;                                //ÉèÖö¨Ê±³õʼֵ
        TF1 = 0;                                //Çå³ýTF1±êÖ¾
        TR1 = 1;                                //¶¨Ê±Æ÷1¿ªÊ¼¼ÆÊ±
}

void Send_Ir(unsigned int i)  //38KHZµÄƵÂÊ   Ò»¸öÖÜÆÚ26.3us  i¸öÖÜÆÚ ·¢ºìÍâ¹â  Õ¼¿Õ±È1/3
{
         while(i--)
         {
         IR=1;
        Timer1_Init();
   IR=0;
         Timer1_Init();
         Timer1_Init();
         }
}
void No_send_Ir(unsigned int i)  //  38KHZµÄƵÂÊ   Ò»¸öÖÜÆÚ26.3us  i¸öÖÜÆÚ ²»·¢ºìÍâ¹â
{
         while(i--)
         {
         IR=0;
         Timer1_Init();
         Timer1_Init();
         Timer1_Init();
         }
}

void Send_NEC_0(void)//µÍµçƽ¿í¶È1120us
{
        Send_Ir(21);
No_send_Ir(21);
}
void Send_NEC_1(void)//¸ßµçƽ¿í¶È2240us
{
        Send_Ir(21);
No_send_Ir(64);
        }
void ir_send_pulse(unsigned int u_code,unsigned char data_code)//Êä³ö¸ßµÍÒ»¸öÖÜÆÚµÄ¸ßµÍÂö³å
{
unsigned char i;
unsigned int temp;
Send_Ir(342);     //9msÔØ²¨µÄÒýµ¼Âë
No_send_Ir(171);   //4.5ms
temp = u_code;
for(i=0;i<16;i++)  //16λµØÖ·Âë
     {
      if(temp & 0x0001)
         {Send_NEC_1();}
      else
         {Send_NEC_0();}
     temp >>= 1;
      }
temp=data_code;
for(i=0;i<16;i++)  //16λÊý¾ÝÂë
   {
      if(temp & 0x0001)
         {Send_NEC_1();}
      else
         {Send_NEC_0();}
     temp >>= 1;
    }
Send_NEC_0();//½áÊøÂë
}
void Timer0_Init(void)                //100΢Ãë@11.0592MHz
{
        AUXR |= 0x80;                        //¶¨Ê±Æ÷ʱÖÓ1Tģʽ
        TMOD &= 0xF0;                        //ÉèÖö¨Ê±Æ÷ģʽ
        TL0 = 0xAE;                                //ÉèÖö¨Ê±³õʼֵ
        TH0 = 0xFB;                                //ÉèÖö¨Ê±³õʼֵ
        TF0 = 0;                                //Çå³ýTF0±êÖ¾
        TR0 = 1;                                //¶¨Ê±Æ÷0¿ªÊ¼¼ÆÊ±
}


void main(void)
{
P3M0 &= ~0x0f;
  P3M1 &= ~0x0f; //P3.0-3.3Òý½ÅΪ׼˫Ïò¿Úģʽ
        P5M0 |=0x30;                //P5.4Òý½ÅÎªÍÆÍìÊä³öģʽ
        P5M1 &= ~0x30;
  LED=0;
        Signal_input=1;
        Output_control=0;
        while(1)
        {
        ir_send_pulse();
        delay_100us(1200);
        if(Signal_input == 0)  //ÅжÏÓÐûÓнÓÊÕµ½ºìÍâÐźŠ²¢ÇÒ½ÓÊճɹ¦
        {
        Output_control=1; //Êä³ö¸ßµçƽ
        delay_100us(100);
        LED=1;  //¿ªµÆ
        }
        else
        {
        Output_control=0; //Êä³öµÍµçƽ
                LED=0; //¹ØµÆ
        }
       
        ir_send_pulse();   //·¢Éä¸ßµÍµçƽ
        }
}
延时的100us的,改成定时100us,边写边编译写不下去。帮忙看看。晚上再来写后面的。

IRRM.c(60): error C231: 'u_code': redefinition
IRRM.c(60): error C141: syntax error near 'temp', expected ';'

就是老是报这些错,我定义了又不行
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-03-06 09:25:41

8

主题

318

回帖

1835

积分

金牌会员

积分
1835
发表于 2024-11-26 15:02:18 | 显示全部楼层
2024-11-26_150135.png

这是在干什么?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3190

回帖

4870

积分

论坛元老

积分
4870
发表于 2024-11-26 15:51:24 | 显示全部楼层
#define int u_code
#define char data_code
这个#define 不对吧。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-11-26 15:59:01 | 显示全部楼层
重复定义和语法错误,建议学习一下C语言基础
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-29 08:28:25
已绑定手机

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2024-11-26 16:16:15 | 显示全部楼层
void ir_send_pulse(unsigned int u_code,unsigned char data_code)//ê?3???μíò????ü?úμ???μí??3?
里的u_code改个名字
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:38
  • 最近打卡:2025-04-29 08:28:25
已绑定手机

17

主题

446

回帖

1173

积分

金牌会员

积分
1173
发表于 2024-11-26 16:16:25 | 显示全部楼层
void ir_send_pulse(unsigned int u_code,unsigned char data_code)//ê?3???μíò????ü?úμ???μí??3?
里的u_code改个名字
回复 支持 反对

使用道具 举报 送花

1

主题

12

回帖

51

积分

注册会员

积分
51
发表于 2024-11-26 17:05:03 来自手机 | 显示全部楼层
u_code是用户地址码
回复 支持 反对

使用道具 举报 送花

1

主题

12

回帖

51

积分

注册会员

积分
51
发表于 2024-11-26 17:06:16 来自手机 | 显示全部楼层
DebugLab 发表于 2024-11-26 15:59
重复定义和语法错误,建议学习一下C语言基础

怎么改一下

点评

没有时间阅读你长篇大论的错误代码,请直接学习测试通过的代码  详情 回复 发表于 2024-11-26 17:12
回复 支持 反对

使用道具 举报 送花

1

主题

12

回帖

51

积分

注册会员

积分
51
发表于 2024-11-26 17:07:29 来自手机 | 显示全部楼层
bkeuqoaq 发表于 2024-11-26 16:16
void ir_send_pulse(unsigned int u_code,unsigned char data_code)//ê?3???μíò????ü?úμ???μí??3? ...

地址码和地址反码共16位
回复 支持 反对

使用道具 举报 送花

1

主题

12

回帖

51

积分

注册会员

积分
51
发表于 2024-11-26 17:08:53 来自手机 | 显示全部楼层
soma 发表于 2024-11-26 15:51
#define int u_code
#define char data_code
这个#define 不对吧。

怎么声明一下,求告诉
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 13:16 , Processed in 0.169827 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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