/*không thấy bác nào quan tâm nên em lại post lên lần hai !
mong các bác giúp đỡ. em gặp vấn đề ở đây là! em băm xung cho hai kênh pwm như vậy và thử hiện thị ra led nhưng chỉ thấy kênh 2 có sự thay đổi độ sáng của led. còn kênh một không thấy hiện tượng gì!
em hiển thị lên lcd thì thấy xung băm ở hai kênh pwm vẫn có sự thay đổi như bài làm! không hiểu tạii sao???
các bác giúp em nhe!
thanks!
*/
mong các bác giúp đỡ. em gặp vấn đề ở đây là! em băm xung cho hai kênh pwm như vậy và thử hiện thị ra led nhưng chỉ thấy kênh 2 có sự thay đổi độ sáng của led. còn kênh một không thấy hiện tượng gì!
em hiển thị lên lcd thì thấy xung băm ở hai kênh pwm vẫn có sự thay đổi như bài làm! không hiểu tạii sao???
các bác giúp em nhe!
thanks!
*/
Code:
#include <16f877a.h> #include <def_877a.h> #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT #use delay(clock=8000000) #include <lcd_lib_4bit.c> #bit TMR2ON =0x12.2 int16 i,j; int16 n; int a1,b1,c1,a2,b2,c2; void main() { trisc=0x00; lcd_init(); LCD_PutCmd (0x82 ); lcd_putchar("DKH_4X"); LCD_PutCmd (0xC3 ); lcd_putchar("robocon"); delay_ms(500); LCD_PutCmd (0x01 ); n=0; while(n<300) { setup_timer_2(T2_DIV_BY_16,255,1); setup_ccp1(CCP_PWM); setup_ccp2(CCP_PWM); set_pwm1_duty(299 - n); set_pwm2_duty(n); a1=n/100; b1=(n-100*a1)/10; c1=n%10; a2=(299-n)/100; b2=((299-n)-100*a2)/10; c2=(299-n)%10; lcd_init(); LCD_PutCmd (0x80); lcd_putchar(a1+48); LCD_PutCmd (0x81); lcd_putchar(b1+48); LCD_PutCmd (0x82); lcd_putchar(c1+48); LCD_PutCmd (0xC0 ); lcd_putchar(a2+48); LCD_PutCmd (0xC1 ); lcd_putchar(b2+48); LCD_PutCmd (0xC2); lcd_putchar(c2+48); delay_ms(200); LCD_PutCmd (0x01 ); n++; if(n==300) goto thoat; } thoat: TMR2ON=0; setup_ccp1 (CCP_OFF); setup_ccp2 (CCP_OFF); }
Comment