找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1755|回复: 3
收起左侧

51单片机编程错误1\xu.c(5):error C129: missing ';' before 'pwm' 怎么解决,求指点

[复制链接]
ID:894125 发表于 2021-3-23 14:22 | 显示全部楼层 |阅读模式
/*******************************************************************
该文件中放的都是与定时器相关的一些函数
*******************************************************************/
#include <12c5a.H> //STC12C5A 系列单片机
extern uint16 pwm[];
extern uint8 flag_vpwm;
extern uint16 pwmj;
sbit pwm3=P0^3;
sbit pwm2=P0^2;
sbit pwm1=P0^1;
sbit pwmn=P0^0;
/*******************************************************************
函数名: timer_init()
功能: 定时器初始化函数
备注: 1T
*******************************************************************/
void Timer_init()
{
EA=1;
//开总中断
AUXR|=0x80;
//T0 工作在 1T, T1 工作在 12T
TMOD|= 0x11;
//T0, T1 工作在方式 1,16 位
ET0 = 1;
//开定时器 0 中断
ET1 = 1;
}
/*******************************************************************
函数名: timer0(uint32 us)
功能: 定时器 0 定时函数
参数: us,毫秒。 精确定时。
备注: 晶振 12M, 工作模式 1T
*******************************************************************/
void Timer0(uint32 us)
{
uint32 valu;
valu=us*12;
//工作在 1T, 最大定时时间 2700us
valu=valu;
valu=0xffff-valu;
TH0=valu>>8;
TL0=(valu<<8)>>8;
TR0 = 1;
//T0 开始工作
}
/*******************************************************************
函数名: timer1(int16 us)
功能: 定时器 1 定时函数
参数: us,毫秒。 精确定时。
备注: 晶振 12M, 工作模式 12T
*******************************************************************/
void Timer1(uint32 us)
{
uint32 valu;
valu=0xffff-us;
TH1=valu>>8;
TL1=(valu<<8)>>8;
TR1 = 1;
//T1 开始工作
}
/*******************************************************************
函数名: T0zd(void) interrupt 1
功能: 定时器 0 中断函数
备注: 控制 4 个舵机
*******************************************************************/
void T0zd(void) interrupt 1
{
static uint8 i=1;
switch(i)
{
case 1:
{
pwm1=1;
Timer0(pwm[1]); //定时
flag_vpwm=1;
} break;
case 2:
{
pwm1=0;
//pwm1 变低
Timer0(5000-pwm[1]);// 定时
flag_vpwm=1;
} break;
case 3:
{
pwm2=1; //pwm2 变高
Timer0(pwm[2]);// 定时常数为 pwm[2]
flag_vpwm=1;
} break;
case 4:
{
pwm2=0; //pwm2 变低
Timer0(5000-pwm[2]);// 定时常数为 pwm[2]
flag_vpwm=1;
} break;
case 5:
{
pwm3=1; //pwm3 变高
Timer0(pwm[3]);// 定时常数为 pwm[3]
flag_vpwm=1;
} break;
case 6:
{
pwm3=0; //pwm3 变低
Timer0(5000-pwm[3]);// 定时
flag_vpwm=1;
} break;
case 7:
{
pwm4=1; //pwm4 变高
Timer0(pwm[4]);// 定时
flag_vpwm=1;
} break;
case 8:
{
pwm4=0; //pwm4 变低
Timer0(5000-pwm[4]);// 定时
flag_vpwm=1;
} break;
default:break;
}
i++;
}
/*******************************************************************
函数名: T1zd(void) interrupt 1
功能: 定时器 1 中断函数
备注: 控制夹子舵机
*******************************************************************/
void T1zd(void) interrupt 3
{
static uint8 i=1;
switch(i)
//
{
case 1:
{
pwmn=1;
Timer1(pwmj);
//定时
} break;
case 2:
{
pwmn=0;
//pwm 变低
Timer0(20000-pwmj);
//定时
i=0;
} break;
default:break;
}
i++;
}
#ifndef TIMER
#define TIMER
extern Timer_init();
extern Timer0(uint32 us);
extern Timer1(uint32 us);
#endif

回复

使用道具 举报

ID:895495 发表于 2021-3-23 15:30 | 显示全部楼层
xu.c文件129行少了一个;号,检查下是否缺漏,或者中英文符号混淆

评分

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

查看全部评分

回复

使用道具 举报

ID:871393 发表于 2021-3-23 15:46 | 显示全部楼层
在错误行前后看一看, 哪里缺少分号
回复

使用道具 举报

ID:139866 发表于 2021-3-23 16:18 | 显示全部楼层
在pwm前缺少分号,这个看翻译一下英语不就看出来了吗

评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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