找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2713|回復(fù): 5
收起左側(cè)

求幫助 !keil編譯時出現(xiàn)錯誤:'PWM':redefinition

[復(fù)制鏈接]
ID:1058056 發(fā)表于 2022-12-17 17:15 來自觸屏版 | 顯示全部樓層 |閱讀模式
#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_ ();
  }
}
回復(fù)

使用道具 舉報

ID:94031 發(fā)表于 2022-12-18 07:51 | 顯示全部樓層
PWM同時定義為位變量和int變量,前后矛盾。
回復(fù)

使用道具 舉報

ID:18297 發(fā)表于 2022-12-18 08:41 | 顯示全部樓層
錯誤提示,字面意思是PWM重復(fù)定義,
這里PWM定義的引腳端口,寄存器,
可以sbit PWM_pin=P3^7;
      int  PWM_period = 900;
防止沖突。
1.jpg
回復(fù)

使用道具 舉報

ID:68189 發(fā)表于 2022-12-18 08:55 | 顯示全部樓層
本帖最后由 wpppmlah 于 2022-12-18 11:23 編輯

確實(shí)是:PWM同時定義為位變量和int變量,前后矛盾。
回復(fù)

使用道具 舉報

ID:155507 發(fā)表于 2022-12-18 13:00 | 顯示全部樓層
改成這樣 PWM -->> PWM_Val


  1. #include "reg51.h"
  2. #include "intrins.h"
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit INC=P3^4;
  6. sbit DEC=P3^5;
  7. sbit DIR=P3^6;
  8. sbit PWM=P3^7;
  9. void delay(uint);
  10. uint PWM_Val= 900;  //改成這樣 PWM -->> PWM_Val
  11. void main(void)
  12. {
  13.    DIR=1;
  14.   while(1)
  15.   {
  16.     if(!INC)
  17.     PWM_Val=PWM_Val>0 ?   PWM_Val-1 : 0;
  18.     if(!DEC)
  19.     PWM_Val=PWM_Val<1000 ? PWM_Val+1: 1000;
  20.     PWM=1;
  21.     delay(PWM_Val);
  22.     PWM=0;
  23.     delay(1000-PWM_Val);
  24.    }
  25. }
  26. void delay(uint j)
  27. {
  28.    for(;j>0;j--)
  29.   {
  30.        _nop_ ();
  31.   }
  32. }

復(fù)制代碼
回復(fù)

使用道具 舉報

ID:77589 發(fā)表于 2022-12-19 14:24 | 顯示全部樓層
sbit PWM=P3^7;

int PWM= 900;
明顯沖突了!。!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表