標(biāo)題: 關(guān)于PWM輸出波形(結(jié)合硬件),有點(diǎn)問(wèn)題 [打印本頁(yè)]

作者: LIPPPP    時(shí)間: 2017-7-10 21:35
標(biāo)題: 關(guān)于PWM輸出波形(結(jié)合硬件),有點(diǎn)問(wèn)題
最近在搞一個(gè)角度調(diào)節(jié)模塊,簡(jiǎn)單來(lái)說(shuō)就是通過(guò)輸出2路PWM,經(jīng)過(guò)一些模塊處理,
設(shè)定一個(gè)區(qū)域里電機(jī)停止轉(zhuǎn)動(dòng),區(qū)域外實(shí)現(xiàn)相應(yīng)的正反轉(zhuǎn),從而利用電機(jī)控制角度旋轉(zhuǎn)。
但是用示波器檢測(cè)P1.6,P1.7(PWM)波形,是正弦波(一開(kāi)始寫(xiě)完程序時(shí)檢測(cè)時(shí)較好的矩形波,后來(lái)搭建電路完后,再次檢測(cè)就成了正弦波),而且電表檢測(cè)兩個(gè)口電壓也是在3-4V跳動(dòng)(還是說(shuō)這是正常的?)
我感覺(jué)在輸出PWM的程序是沒(méi)有問(wèn)題的,要是電路硬件部分該怎么解決
/*****************************PWM輸出部分*********************/
void PWM_Control1( uchar Width, uchar DutyCycle,uchar count,uchar partern)  //1ms為最小單位
{        uchar i,j;
   //脈寬設(shè)置  Wdith         
   //占空比 X0% DutyCycle   
  //脈沖個(gè)數(shù)  count        
  // pin = ;
   k = (Width*10)/DutyCycle; //PWM整個(gè)周期

           if(partern == 6)
  {
     for(i=0;i<k*count;i++)
           {
             P1_6= 0;
                 delay(Width);
                 P1_6= 1;
                 delay(k-Width);
           }
         /*   if(i=k*count)
            {
                  p1_6 = 1;
                 }         */
  }
    if(partern == 7)
        {
         for(j=0;j<k*count;j++)
          {
            P1_7 = 0;
                delay(Width);
                P1_7 = 1;
                delay(k-Width);
          }
          /* if(i=k*count)
            {
                  p1_7 = 1;
                 } */
        }
}




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1