标题:
求帮助 !!keil编译时出现错误:'PWM':redefinition
[打印本页]
作者:
syx102
时间:
2022-12-17 17:15
标题:
求帮助 !!keil编译时出现错误:'PWM':redefinition
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit INC=P3^4;
sbit DEC=P3^5;
sbit DIR=P3^6;
sbit PWM=P3^7;
void delay(uint);
int PWM= 900;
void main(void)
{
DIR=1;
while(1)
{
if(!INC)
PWM=PWM>0 ? PWM-1 : 0;
if(!DEC)
PWM=PWM<1000?PWM+1:1000;
PWM=1;
delay(PWM);
PWM=0;
delay(1000-PWM);
}
}
void delay(uint j)
{
for(;j>0;j--)
{
_nop_ ();
}
}
作者:
xuyaqi
时间:
2022-12-18 07:51
PWM同时定义为位变量和int变量,前后矛盾。
作者:
zjjhtony
时间:
2022-12-18 08:41
错误提示,字面意思是PWM重复定义,
这里PWM定义的引脚端口,寄存器,
可以sbit PWM_pin=P3^7;
int PWM_period = 900;
防止冲突。
1.jpg
(5.75 KB, 下载次数: 73)
下载附件
2022-12-19 01:19 上传
作者:
wpppmlah
时间:
2022-12-18 08:55
本帖最后由 wpppmlah 于 2022-12-18 11:23 编辑
确实是:PWM同时定义为位变量和int变量,前后矛盾。
作者:
angmall
时间:
2022-12-18 13:00
改成这样 PWM -->> PWM_Val
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit INC=P3^4;
sbit DEC=P3^5;
sbit DIR=P3^6;
sbit PWM=P3^7;
void delay(uint);
uint PWM_Val= 900; //改成这样 PWM -->> PWM_Val
void main(void)
{
DIR=1;
while(1)
{
if(!INC)
PWM_Val=PWM_Val>0 ? PWM_Val-1 : 0;
if(!DEC)
PWM_Val=PWM_Val<1000 ? PWM_Val+1: 1000;
PWM=1;
delay(PWM_Val);
PWM=0;
delay(1000-PWM_Val);
}
}
void delay(uint j)
{
for(;j>0;j--)
{
_nop_ ();
}
}
复制代码
作者:
Longan.Wang
时间:
2022-12-19 14:24
sbit PWM=P3^7;
与
int PWM= 900;
明显冲突了!!!!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1