PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   hỏi về pwm trong ccs (http://www.picvietnam.com/forum/showthread.php?t=4012)

motngayno10 26-04-2009 02:57 PM

hỏi về pwm trong ccs
 
các bác ơi cho em hỏi e dùng pwm cho 2 động cơ với thiết lập như sau
SETUP_CCP1(CCP_PWM); //THIEP LAP CHE DO PWM
SETUP_CCP2(CCP_PWM); //THIEP LAP CHE DO PWM
SETUP_TIMER_2(T2_DIV_BY_4,255,1);//THIET LAP TIMER2 DUNG CHO PWM

nhưng khi cài đặt
SET_PWM2_DUTY(0);
SET_PWM1_DUTY(0);
thì động cơ lại quay nhanh hết mức .thế là sai phải không.tại sao thế nhỉ

đây là đoạn ct của e
Code:

#include <16f877.h>
#fuses  XT,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NODEBUG
#DEVICE  *=16,ADC=8
#USE DELAY(CLOCK=4000000)
#USE FAST_IO(B)
INT8 TIEN,LUI,AD0,AD1,AD2,AD3,QUAYTRAI,THEM,
QUAYPHAI,RETRAI1,RETRAI2,REPHAI1,REPHAI2,LUIREPHAI1,LUIREPHAI2,LUIRETRAI1,LUIRETRAI2;
INT8 TANG;

VOID DUNG()
{ SETUP_CCP1(CCP_OFF);          //TAT CHE DO PWM
  SETUP_CCP2(CCP_OFF);          //TAT CHE DO PWM
  OUTPUT_HIGH(PIN_D3);                //TAT CHAN ROLE CHIEU DONG CO
  OUTPUT_HIGH(PIN_D5);
}

VOID MAIN()
{ TANG=0;   
THEM=0;
SET_TRIS_B(11111111);                    //THIET LAP CAC CHAN RB0,1,2 LA CAC NGO VAO
OUTPUT_HIGH(PIN_C1);                      //TAT 2 DONG CO
OUTPUT_HIGH(PIN_C2);
SETUP_ADC(ADC_CLOCK_INTERNAL);            //THIET LAP CHE DO ADC VOI THOI GIAN LAY MAU BANG XUNG IC
SETUP_ADC_PORTS(AN0_AN1_AN3);            //THET LAP 3 NGO VAO ADC
 SETUP_CCP1(CCP_PWM);          //THIEP LAP CHE DO PWM
              SETUP_CCP2(CCP_PWM);          //THIEP LAP CHE DO PWM
              SETUP_TIMER_2(T2_DIV_BY_4,255,1);//THIET LAP TIMER2 DUNG CHO PWM
WHILE (1)
 { 
      IF (INPUT(PIN_B1)) DELAY_MS(50);    //CO HAI NUT NHAN TANG GIAM MODE TOC DO ,5 DEN CHO 5 MODE
      ELSE  {  // DUNG();                  //NEU NUT TANG DUOC NHAN
                  DELAY_MS(100);
                  IF (TANG<5)
              {  TANG++;
                  SWITCH(TANG)
                    {  CASE 1 : {OUTPUT_HIGH(PIN_D6);      //CAC DEN CHON MODE SANG 
                                                                  }     
                                BREAK;
                        CASE 2 : {OUTPUT_HIGH(PIN_A5);
                                                                  }     
                                BREAK;
                        CASE 3 : {OUTPUT_HIGH(PIN_E0);                             
                                  }   
                                BREAK;
                        CASE 4 : {OUTPUT_HIGH(PIN_E1);                                                  }   
                                BREAK;
                        CASE 5 : {OUTPUT_HIGH(PIN_E2);
                               
                                }   
                                BREAK;
                    }
                }   
              }
        IF (INPUT(PIN_B0)) DELAY_MS(50);                      //NEU NUT GIAM DUOC NHAN
            ELSE  {    DELAY_MS(100);
                        IF (TANG>0)
                  {    SWITCH(TANG)
                    {    CASE 1 : {OUTPUT_LOW(PIN_D6);        //CAC DEN MODE TAT 
                                   
                                    }
                          BREAK;
                          CASE 2 : {OUTPUT_LOW(PIN_A5);
                                   
               
                                    }
                          BREAK;
                          CASE 3 : {OUTPUT_LOW(PIN_E0);
                                   
                   
                                    }//DEN MODE SANG
                          BREAK;
                          CASE 4 : {OUTPUT_LOW(PIN_E1);
                                    // DUNG();
                                    }//DEN MODE SANG
                          BREAK;
                          CASE 5 : {OUTPUT_LOW(PIN_E2);
                                   
                                    }
                          BREAK;
                      }
                        TANG--;
                    } 
      }
//CO 1 CAI JOYSITCK DIEU KHIEN XE,VOI 2 BIEN TRO,CO 2 DONG CO CHO HAI BANH 
  SET_ADC_CHANNEL(1);                    //CHON KENH AN1 DE DOC GIA TRI ADC TU BIEN TRO 1 CUA JOYSTICK
  DELAY_US(10);
  AD0=READ_ADC();                        //DOC GIA TRI ADC
  SET_ADC_CHANNEL(0);                    //CHON KENH AN0 DE DOC GIA TRI ADC
  DELAY_US(10);
  AD1=READ_ADC();

  IF ((AD0>=0)&&(AD0<=100)&&(AD1>100)&&(AD1<=145) )  // CHAY TOI
            {  TIEN=(ABS(AD0-127));          //GIA TRI ADC KHI KEO JOYSTICK DE XE CHAY TOI
              OUTPUT_HIGH(PIN_D3);          //TAT CHAN ROLE DOI CHIEU DONG CO
              OUTPUT_HIGH(PIN_D5);
              SET_PWM2_DUTY(TIEN);           
              SET_PWM1_DUTY(TIEN);
              DELAY_MS(50);
            }
             
                   
     
  IF ((AD0>100)&&(AD0<=145)&&(AD1>100)&&(AD1<=145))            //DUNG LAI
            {      SET_PWM2_DUTY(0);           
                  SET_PWM1_DUTY(0);                 
                  OUTPUT_HIGH(PIN_D3);                //TAT CHAN ROLE CHIEU DONG CO
                  OUTPUT_HIGH(PIN_D5);
            }
     
  IF ((AD0>145)&&(AD1>100)&&(AD1<=145))            //CHAY LUI
            {                 
                LUI=ABS(127-AD0);
                OUTPUT_LOW(PIN_D3);                  //SET CHAN ROLE CHIEU DONG CO
                OUTPUT_LOW(PIN_D5);
                SET_PWM2_DUTY(LUI);
                SET_PWM1_DUTY(LUI);
                DELAY_MS(50);
             
                           
                SET_ADC_CHANNEL(1);        //CHON KENH AN1 DE DOC GIA TRI ADC
                DELAY_US(10);
                AD2=READ_ADC();            //DOC GIA TRI ADC
                SET_ADC_CHANNEL(0);        //CHON KENH AN0 DE DOC GIA TRI ADC
                DELAY_US(10);
                AD3=READ_ADC();
                IF ((AD0>AD2)&&((AD2-127)<30)&&(ABS(AD3-AD1)<50)&&INPUT(PIN_B1)&&INPUT(PIN_B0))      //CHONG BI GIAT KHI CHAY LUI SAU DO DUNG LAI
                  {  SET_PWM2_DUTY(0);           
                  SET_PWM1_DUTY(0); 
                    DELAY_MS(2000);
                    OUTPUT_HIGH(PIN_D3);                //TAT CHAN ROLE CHIEU DONG CO
                    OUTPUT_HIGH(PIN_D5);
                  }
               
          }
    IF  ((AD0>100)&&(AD0<=145)&&(AD1>0)&&(AD1<=100)&&INPUT(PIN_B1)&&INPUT(PIN_B0))      //QUAY PHAI
        {    QUAYPHAI=(ABS(AD1-127));
              OUTPUT_LOW(PIN_D3);                  //SET CHAN ROLE CHIEU DONG CO
              OUTPUT_HIGH(PIN_D5);
              SET_PWM2_DUTY(QUAYPHAI);
              SET_PWM1_DUTY(QUAYPHAI);
              DELAY_MS(50); 
             
              SET_ADC_CHANNEL(1);        //CHON KENH AN1 DE DOC GIA TRI ADC
                DELAY_US(10);
                AD2=READ_ADC();            //DOC GIA TRI ADC
                SET_ADC_CHANNEL(0);        //CHON KENH AN0 DE DOC GIA TRI ADC
                DELAY_US(10);
                AD3=READ_ADC();
                IF ((AD3>AD1)&&(ABS(AD2-AD0)<50)&&INPUT(PIN_B1)&&INPUT(PIN_B0))        //CHONG BI GIAT KHI QUAY PHAI
                  {  SET_PWM2_DUTY(0);
              SET_PWM1_DUTY(0);
                    DELAY_MS(1000);
                    OUTPUT_HIGH(PIN_D3);                //TAT CHAN ROLE CHIEU DONG CO
                    OUTPUT_HIGH(PIN_D5);
                  }
             
        }
    IF ((AD0>100)&&(AD0<=145)&&(AD1>145)&&INPUT(PIN_B1)&&INPUT(PIN_B0))      //QUAY TRAI
        {    QUAYTRAI=(ABS(127-AD1));
              OUTPUT_HIGH(PIN_D3);                  //SET CHAN ROLE CHIEU DONG CO
              OUTPUT_LOW(PIN_D5);
              SET_PWM2_DUTY(QUAYTRAI);
              SET_PWM1_DUTY(QUAYTRAI);
              DELAY_MS(50); 
         
                SET_ADC_CHANNEL(1);        //CHON KENH AN1 DE DOC GIA TRI ADC
                DELAY_US(10);
                AD2=READ_ADC();            //DOC GIA TRI ADC
                SET_ADC_CHANNEL(0);        //CHON KENH AN0 DE DOC GIA TRI ADC
                DELAY_US(10);
                AD3=READ_ADC();
                IF ((AD3<AD1)&&(ABS(AD2-AD0)<50)&&INPUT(PIN_B1)&&INPUT(PIN_B0))  //CHONG BI GIAT KHI QUAY TRAI
                  {  SET_PWM2_DUTY(0);
                    SET_PWM1_DUTY(0);
                    DELAY_MS(1000);
                    OUTPUT_HIGH(PIN_D3);                //TAT CHAN ROLE CHIEU DONG CO
                    OUTPUT_HIGH(PIN_D5);
                  }
        }
         
      IF ((100>AD0)&&(AD1<100)&&INPUT(PIN_B1)&&INPUT(PIN_B0))          //CHAY TOI RE PHAI
                  {  REPHAI1=(ABS(AD0-127)+ABS(AD1-127));
                      REPHAI2=ABS(ABS(AD0-127)-ABS(AD1-127));
                      SET_PWM2_DUTY(REPHAI1);
                      SET_PWM1_DUTY(REPHAI2);
                  }
     
      IF ((AD0<100)&&(AD1>145)&&INPUT(PIN_B1)&&INPUT(PIN_B0))    //CHAY TOI RE TRAI
                  {  RETRAI1=ABS(AD0-127)+AD1-127;
                      RETRAI2=ABS(ABS(AD0-127)-(AD1-127));
                      SET_PWM2_DUTY(RETRAI1);
                      SET_PWM1_DUTY(RETRAI2); 
                  }
 
 
      IF ((AD0>145)&&(AD1<100)&&INPUT(PIN_B1)&&INPUT(PIN_B0))          //CHAY LUI RE PHAI
                  {  LUIREPHAI1=(AD0-127+ABS(AD1-127));
                      LUIREPHAI2=ABS(AD0-127-ABS(AD3-117));
                      SET_PWM2_DUTY(LUIREPHAI1);
                      SET_PWM1_DUTY(LUIREPHAI2);
                  }
      IF ((AD0>145)&&(AD1>145)&&INPUT(PIN_B1)&&INPUT(PIN_B0))    //CHAY LUI RE TRAI
                  {  LUIRETRAI2=(AD0-127+AD3-127);
                      LUIRETRAI1=ABS(AD0-127-(AD3-127));
                      SET_PWM2_DUTY(LUIRETRAI2);
                      SET_PWM1_DUTY(LUIRETRAI1); 
                  }                   
 
 
}
}

các bác xem giúp e chút.

namqn 26-04-2009 04:01 PM

Bạn nên cho biết sơ đồ mạch thử nghiệm, code chỉ có ý nghĩa khi đi kèm với một mạch phần cứng cụ thể. Bạn cũng không nên dùng toàn chữ hoa trong chương trình, sẽ rất khó đọc.

Thân,

vietanh 27-04-2009 04:21 AM

sai o hai dong nay nay
Code:

VOID MAIN()
{ TANG=0;
THEM=0;
SET_TRIS_B(11111111);
OUTPUT_HIGH(PIN_C1); //=========== sai o day
OUTPUT_HIGH(PIN_C2);
SETUP_ADC(ADC_CLOCK_INTERNAL);
SETUP_ADC_PORTS(AN0_AN1_AN3);
SETUP_CCP2(CCP_PWM);
SETUP_TIMER_2(T2_DIV_BY_4,255,1;
}

neu ban dung 293 hay 298 ma set en1 en2 o muc cao chay nhu ma duoi .
nen viet lai la >>>> cung luu y luon co de ban dinh viet cho xe di theo vach ,cac chan lien quan toi thang dieu khien dong co phai set ca ve muc khong ======0 .VA CO DE CUA BAN KHONG KHA THI ,VD bien tang giam cua ban khong tac dung ji ngoai bat may cai led , toc do toi da ban dat duoc cung chi nam o khoang 25% 'ly do thi tu tim hieu.
Code:

  output_low(pin_c1);
          output_low(pin_c2);

HOAC TAT CA CAC CHAN LIEN QUAN DEN PHAN DK DONGCO O MUC CAO ******** ban cung nen cho cai sodo len moi nguoi de hieu hon

>>>>>> xin loi vi khong co uni dd khong go duoc vn .>>> minh se chuyen lai vn

motngayno10 11-05-2009 07:41 PM

1 Attachment(s)
cam on cac bac nhat la bac namqn .day la cai mach cua e.nho bac xem giup voi.cam on nhieu

motngayno10 11-05-2009 07:48 PM

a quen.e up lai doan code cho phu hop voi cai mach


#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOPUT,NOBROWNOUT,NODEBUG
#DEVICE *=16,ADC=8
#USE DELAY(CLOCK=4000000)
#USE FAST_IO(B)
#use fast_io(c)
INT8 TIEN,LUI,AD0,AD1,AD2,AD3,QUAYTRAI,them,
QUAYPHAI,RETRAI1,RETRAI2,REPHAI1,REPHAI2,LUIREPHAI 1,LUIREPHAI2,LUIRETRAI1,LUIRETRAI2;
INT8 TANG;



VOID MAIN()
{ TANG=0;
them=255;
SET_TRIS_B(11111111); //THIET LAP CAC CHAN RB0,1,2 LA CAC NGO VAO
set_tris_c(00101001); //thiet lap cac chan rc0,3,5 la cac ngo vao
OUTPUT_HIGH(PIN_C1); //TAT 2 DONG CO
OUTPUT_HIGH(PIN_C2);
SETUP_ADC(ADC_CLOCK_INTERNAL); //THIET LAP CHE DO ADC VOI THOI GIAN LAY MAU BANG XUNG IC
SETUP_ADC_PORTS(AN0_AN1_AN3); //THET LAP 3 NGO VAO ADC
SETUP_CCP1(CCP_PWM); //THIEP LAP CHE DO PWM
SETUP_CCP2(CCP_PWM); //THIEP LAP CHE DO PWM
sETUP_TIMER_2(T2_DIV_BY_4,255,1);//THIET LAP TIMER2 DUNG CHO PWM
output_high(pin_c6);
WHILE (1)
{
IF (!INPUT(PIN_B1)) //CO HAI NUT NHAN TANG GIAM MODE TOC DO ,5 DEN CHO 5 MODE
{ //NEU NUT TANG DUOC NHAN
DELAY_MS(250);
IF (TANG<5)
{ TANG++;
SWITCH(TANG)
{ CASE 1 : {OUTPUT_HIGH(PIN_D6);them=180; //CAC DEN CHON MODE SANG
}
BREAK;
CASE 2 : {OUTPUT_HIGH(PIN_A5);them=150;
}
BREAK;
CASE 3 : {OUTPUT_HIGH(PIN_E0);them=100;
}
BREAK;
CASE 4 : {OUTPUT_HIGH(PIN_E1);them=50; }
BREAK;
CASE 5 : {OUTPUT_HIGH(PIN_E2);them=0;

}
BREAK;
}
}
}
IF (!INPUT(PIN_B0)) //NEU NUT GIAM DUOC NHAN
{ DELAY_MS(250);
IF (TANG>0)
{ SWITCH(TANG)
{ CASE 1 : {OUTPUT_LOW(PIN_D6);them=255; //CAC DEN MODE TAT

}
BREAK;
CASE 2 : {OUTPUT_LOW(PIN_A5);them=180;


}
BREAK;
CASE 3 : {OUTPUT_LOW(PIN_E0);them=150;


}
BREAK;
CASE 4 : {OUTPUT_LOW(PIN_E1);them=100;

}
BREAK;
CASE 5 : {OUTPUT_LOW(PIN_E2);them=50;

}
BREAK;
}
TANG--;
}
}
//CO 1 CAI JOYSITCK DIEU KHIEN XE,VOI 2 BIEN TRO,CO 2 DONG CO CHO HAI BANH
SET_ADC_CHANNEL(0); //CHON KENH AN1 DE DOC GIA TRI ADC TU BIEN TRO 1 CUA JOYSTICK
DELAY_US(10);
AD0=READ_ADC(); //DOC GIA TRI ADC
SET_ADC_CHANNEL(1); //CHON KENH AN0 DE DOC GIA TRI ADC
DELAY_US(10);
AD1=READ_ADC();

IF ((AD0>=0)&&(AD0<=100)&&(AD1>100)&&(AD1<=145) ) // CHAY lui
{ TIEN=(ABS(AD0-127)); //GIA TRI ADC KHI KEO JOYSTICK DE XE CHAY TOI
OUTPUT_low(pin_D3); //TAT CHAN ROLE DOI CHIEU DONG CO
OUTPUT_low(PIN_D7);
if ((them<=100)&&(tien<90))
{ SET_PWM2_DUTY(180);
SET_PWM1_DUTY(180);
}
if ((them<=100)&&(tien>=90))
{SET_PWM2_DUTY(them);
SET_PWM1_DUTY(them);
}
if (them>100)
{SET_PWM2_DUTY(them);
SET_PWM1_DUTY(them);
}
DELAY_MS(50);
}



IF ((AD0>100)&&(AD0<=145)&&(AD1>100)&&(AD1<=145)) //DUNG LAI
{ SET_PWM2_DUTY(255);
SET_PWM1_DUTY(255);
OUTPUT_HIGH(PIN_D3); //TAT CHAN ROLE CHIEU DONG CO
OUTPUT_HIGH(PIN_D7);
}

IF ((AD0>145)&&(AD1>100)&&(AD1<=145)) //CHAY toi
{
LUI=ABS(127-AD0);
OUTPUT_high(PIN_D3); //SET CHAN ROLE CHIEU DONG CO
OUTPUT_high(PIN_D7);
if ((them<=100)&&(lui<90))
{ SET_PWM2_DUTY(180);
SET_PWM1_DUTY(180);
}
if ((them<=100)&&(lui>=90))
{SET_PWM2_DUTY(them);
SET_PWM1_DUTY(them);
}
if (them>100)
{SET_PWM2_DUTY(them);
SET_PWM1_DUTY(them);
}
DELAY_MS(200);


SET_ADC_CHANNEL(1); //CHON KENH AN1 DE DOC GIA TRI ADC
DELAY_US(10);
AD2=READ_ADC(); //DOC GIA TRI ADC
SET_ADC_CHANNEL(0); //CHON KENH AN0 DE DOC GIA TRI ADC
DELAY_US(10);
AD3=READ_ADC();
IF ((AD0>AD2)&&((AD2-127)<30)&&(ABS(AD3-AD1)<50)&&INPUT(PIN_B1)&&INPUT(PIN_B0)) //CHONG BI GIAT KHI CHAY LUI SAU DO DUNG LAI
{ SET_PWM2_DUTY(255);
SET_PWM1_DUTY(255);
DELAY_MS(2000);
OUTPUT_HIGH(PIN_D3); //TAT CHAN ROLE CHIEU DONG CO
OUTPUT_HIGH(PIN_D7);
}

}
IF ((AD0>100)&&(AD0<=145)&&(AD1>0)&&(AD1<=100)&&INPUT (PIN_B1)&&INPUT(PIN_B0)) //QUAY PHAI
{ QUAYPHAI=(ABS(AD1-127));
OUTPUT_LOW(PIN_D3); //SET CHAN ROLE CHIEU DONG CO
OUTPUT_HIGH(PIN_D7);
if ((them<=100)&&(tien<90))
{ SET_PWM2_DUTY(200);
SET_PWM1_DUTY(200);
}
if ((them<=100)&&(tien>=90))
{SET_PWM2_DUTY(them);
SET_PWM1_DUTY(them);
}
if (them>100)
{SET_PWM2_DUTY(them);
SET_PWM1_DUTY(them);
}
DELAY_MS(200);

SET_ADC_CHANNEL(1); //CHON KENH AN1 DE DOC GIA TRI ADC
DELAY_US(10);
AD2=READ_ADC(); //DOC GIA TRI ADC
SET_ADC_CHANNEL(0); //CHON KENH AN0 DE DOC GIA TRI ADC
DELAY_US(10);
AD3=READ_ADC();
IF ((AD3>AD1)&&(ABS(AD2-AD0)<50)&&INPUT(PIN_B1)&&INPUT(PIN_B0)) //CHONG BI GIAT KHI QUAY PHAI
{ SET_PWM2_DUTY(255);
SET_PWM1_DUTY(255);
DELAY_MS(1000);
OUTPUT_HIGH(PIN_D3); //TAT CHAN ROLE CHIEU DONG CO
OUTPUT_HIGH(PIN_D7);
}

}
IF ((AD0>100)&&(AD0<=145)&&(AD1>145)&&INPUT(PIN_B1)&& INPUT(PIN_B0)) //QUAY TRAI
{ QUAYTRAI=(ABS(127-AD1));
OUTPUT_HIGH(PIN_D3); //SET CHAN ROLE CHIEU DONG CO
OUTPUT_LOW(PIN_D7);
if ((them<=100)&&(quaytrai<90))
{ SET_PWM2_DUTY(200);
SET_PWM1_DUTY(200);
}
if ((them<=100)&&(quaytrai>=90))
{SET_PWM2_DUTY(them);
SET_PWM1_DUTY(them);
}
if (them>100)
{SET_PWM2_DUTY(them);
SET_PWM1_DUTY(them);
}
DELAY_MS(200);

SET_ADC_CHANNEL(1); //CHON KENH AN1 DE DOC GIA TRI ADC
DELAY_US(10);
AD2=READ_ADC(); //DOC GIA TRI ADC
SET_ADC_CHANNEL(0); //CHON KENH AN0 DE DOC GIA TRI ADC
DELAY_US(10);
AD3=READ_ADC();
IF ((AD3<AD1)&&(ABS(AD2-AD0)<50)&&INPUT(PIN_B1)&&INPUT(PIN_B0)) //CHONG BI GIAT KHI QUAY TRAI
{ SET_PWM2_DUTY(255);
SET_PWM1_DUTY(255);
DELAY_MS(1000);
OUTPUT_HIGH(PIN_D3); //TAT CHAN ROLE CHIEU DONG CO
OUTPUT_HIGH(PIN_D7);
}
}

IF ((100>AD0)&&(AD1<100)&&INPUT(PIN_B1)&&INPUT(PIN_B0 )) //CHAY lui RE PHAI
{ REPHAI1=(them+ABS(AD1-127));
REPHAI2=ABS(them-ABS(AD1-127));

SET_PWM2_DUTY(REPHAI1);
SET_PWM1_DUTY(REPHAI2);
}

IF ((AD0<100)&&(AD1>145)&&INPUT(PIN_B1)&&INPUT(PIN_B0 )) //CHAY lui RE TRAI
{ RETRAI1=them+AD1-127;
RETRAI2=ABS(them-(AD1-127));
SET_PWM2_DUTY(RETRAI1);
SET_PWM1_DUTY(RETRAI2);
}


IF ((AD0>145)&&(AD1<100)&&INPUT(PIN_B1)&&INPUT(PIN_B0 )) //CHAY toi RE PHAI
{ LUIREPHAI1=(them+ABS(AD1-127));
LUIREPHAI2=ABS(them-ABS(AD1-117));
SET_PWM2_DUTY(LUIREPHAI1);
SET_PWM1_DUTY(LUIREPHAI2);
}
IF ((AD0>145)&&(AD1>145)&&INPUT(PIN_B1)&&INPUT(PIN_B0 )) //CHAY LUI RE TRAI
{ LUIRETRAI2=(them+AD1-127);
LUIRETRAI1=ABS(them-(AD1-127));
SET_PWM2_DUTY(LUIRETRAI2);
SET_PWM1_DUTY(LUIRETRAI1);
}


}
}


Múi giờ GMT. Hiện tại là 07:50 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam