Trích:
Nguyên văn bởi xalachxoan
Mình thử code của bạn, biên dịch và mô phỏng nhưng led ở chân CCP1 không có tín hiệu gì cả. Mình mô phỏng bằng proteus.
Mình thấy pic16f877a chỉ có 2 chân băm xung thôi nhưng mình muốn sử dụng 8 chân thì làm như thế nào mong được chỉ giáo!
Trân trọng cảm ơn!
|
Nếu thử với Proteus thì mình đã thử với đoạn code này trên PIC12F683... và đèn led có nhấp nháy mà bạn
Code:
#include <12F683.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES INTRC_IO //Internal RC Osc, no CLKOUT
#FUSES NOCPD //No EE protection
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOMCLR //Master Clear pin used for I/O
#FUSES NOPUT //No Power Up Timer
#FUSES BROWNOUT //Reset when brownout detected
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled
#use delay(clock=4000000)
int i;
void main()
{
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_1,25,1);
set_pwm1_duty(0);
while(true)
{
for(i=0;i<25;i++)
{
set_pwm1_duty(i);
delay_ms(200);
}
}
}
Còn với việc làm PWM nhiều kênh thì theo mình ko thể sử dụng chân CCPX đc. Mà phải sử dụng phương pháp quét lần lượt theo chu kỳ thời gian thôi. Ai có cách hay hơn thì post lên cho anh em tham khảo với.