永发信息网

程序出现missing ';' before ‘int’ 是哪里错了?我已经把unsigned int 定义成uint了呀?

答案:2  悬赏:0  手机版
解决时间 2021-03-03 19:17
  • 提问者网友:做自己de王妃
  • 2021-03-03 13:32
程序出现missing ';' before ‘int’ 是哪里错了?我已经把unsigned int 定义成uint了呀?
最佳答案
  • 五星知识达人网友:廢物販賣機
  • 2021-03-03 14:07
我首先要批评你写程序太不认真:
第三行应为:#define uint unsigned int而不是#define uint unsingned int
ulong sig-t=0;应该改为ulong sig_t=0; //被测信号周期,
sig_t=RACP2H*256+RCAP2L+OVER_count*65536+30;句中RACP2H应该改为RCAP2H

总的修改好的程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
uchar led_code[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //共阳极数码管段选吗,0~9
ucharled_bit[]={0x01,0x02,0x04,0x08,0x10,0x20}; //数码管位选码,分别对应1~6
uint over_count=0,cap_count=0;

//分别定义为T/C2溢出次数,捕捉次数
ulong sig_t=0; //被测信号周期,淡忘为US
void timer2ist(void)interrupt 5 using 2 //中断服务晨曦,测量输入脉冲周期
{
if(EXF2==1) //由T2EX引脚上脉冲下降沿引起的中断
{
EXF2=0; //清中断标志
cap_count++; //捕捉次数加1
if(cap_count==1) //第一次捕捉到负脉冲时将下述变量清零,为第二次捕捉作准备
{
TH2=0;
TL2=0;
RCAP2H=0;
RCAP2L=0;
over_count=0;
return;
}
sig_t=RCAP2H*256+RCAP2L+over_count*65536+30; //第二次捕捉到脉冲下降沿时,计算该信号的周期,30为误差
TH2=0; //将相关寄存器信号和变量清零
TL2=0;
RCAP2H=0;
RCAP2L=0;
over_count=0;
cap_count=0;
return;
}
else //T/C2溢出引起的中断
{
over_count++;
TF2=0; //T2溢出次数加1,溢出标志位清0
}
}
全部回答
  • 1楼网友:雪起风沙痕
  • 2021-03-03 15:43
void timer2ist(void)interrupt 5 using 2 //改为: void timer2ist(void)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯