em lập trình cho hai động cơ, nhưng báo lỗi nhiều qua, mà không biết lỗi ở đâu, ai giúp em với, thanks
Chương Trình :
Chương Trình :
Code:
#include <18f4520.h> #include <def_4520.h> #fuses HS,NOWDT,NOPROTECT,NOLVP #use delay(clock=20000000) void main() { setup_adc_ports(NO_ANALOGS|VSS_VDD); setup_adc(ADC_OFF|ADC_TAD_MUL_0); setup_psp(PSP_DISABLED); setup_spi(SPI_SS_DISABLED); setup_wdt(WDT_OFF); setup_timer_0(RTCC_INTERNAL); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_timer_3(T3_DISABLED|T3_DIV_BY_1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); //Setup_Oscillator parameter not selected from Intr Oscillator Config tab // TODO: USER CODE!! #define pwm1 output_high(pin_d0); delay_ms(70); output_low(pin_d0); delay_ms(30); #define pwm2 output_high(pin_d2); delay_ms(70); output_low(pin_d2); delay_ms(30); #define DC1_1 output_high(pin_d1) #define DC1_0 output_low(pin_d1) #define DC2_1 output_high(pin_d3) #define DC2_0 output_low(pin_d3) #define PHIM_BAM PORTA /* KHAI BÁO CÁC CHUONG TRÌNH CON */ {void motor_left_forward(); void motor_left_reverse(); void motor_right_forward(); void motor_right_reverse(); void forward(); void reverse(); void turn_left(); void turn_right(); /* CAC CHUONG TRINH CON */ // DC TRAI THUAN void motor_left_forward() { int8 i=100; DC1_1; // set xung dieu khien =1; while(i--){pwm1;} } // DC TRAI NGUOC void motor_left_reverse() { int8 k=100; DC1_0 ; // reset xung dieu khien ve gtri 0 while(k--){pwm1;} } // DC PHAI THUAN void motor_right_forward() { int8 l=100; DC2_1 ; // reset xung dieu khien ve gtri 0 while(l--){pwm2;} } // DC PHAI CHAY NGUOC void motor_right_reverse() { int8 m=100; DC2_0 ; // reset xung dieu khien ve gtri 0 while(m--){pwm2;} } // TIEN void forward() { motor_left_forward(); motor_right_forward(); } // LUI void reverse() { motor_left_reverse(); motor_right_reverse(); } // QUAY TRAI void turn_left() { motor_left_forward(); } // QUAY PHAI void turn_right() { motor_right_forward(); } /* CHUONG TRINH CHINH */ void main () { TRISD=0x00; // PORTD là ngõ ra ( DC) TRISA=0x00; // PORTA là ngõ vào (PHIM BAM) PORTD=0x00; // KHOI TAO GIA TRI BAN DAU 0x00 cho PORTD while(1) { switch (PHIM_BAM) { case 0b10000000: forward(); break; case 0b01000000: reverse(); break; case 0b11000000: turn_left(); break; case 0b00100000: turn_right(); break; } } } }}
Comment