robotpic
24-12-2010, 01:41 PM
e dùng pic 4331 . khi e nap chuong trình xong nó chay chuong trình, em dùng mũi kim đồng hồ đo để vào là chương trình không hoạt động nữa e reset lai mới hoạt động được,
nguyên nhân e đưa mũi kim đồng hồ vào là đo e viết chương trình pwm 2 chân rc1 và rc2 mà nó chạy sai em chưa rõ nguyên nhân, k biết có phải nhiễu không? e bật 1 chân tắt 1 chân thì cả đều bật, không thể 1 chạy 1 dừng, ai đã gặp rồi giúp e với.
đây là chương trình e viết:
#INCLUDE <18F4331.h>
#INCLUDE <def_4331.h>
#FUSES HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT,NOPUT
#FUSES NOCPD,NODEBUG,NOFCMEN,NOCPB,STVREN,PWMPIN,HPOL_LOW
#use delay(clock=20MHZ)
#use fast_io(a)
#use fast_io(d)
#use fast_io(c)
#use fast_io(e)
#INCLUDE <SCANF.C>
void main()
{
// DC7 - DC6(CCP1) - DC5(CCP1) - DC4(PWM7) -DC3(PWM1) - DC2(PWM3) - DC1(PWM5) //
///////////////////KICH ROLE CHIEU DC///////////////
trisc0=0; // role1
trisa1=0; // role2
trisa2=0; // role3
trisa3=0; // role4
trisa4=0; // role5
trisa5=0; // role6
trisb5=0; // role7
RC0=RA1=RA2=RA3=RA4=RA5=RB5=1;
////////////////// CHAN PWM DC///////////////////////////
TRISB4=0; // DC1 // PWM5
TRISB3=0; // DC2 // PWM3
TRISB1=0; // DC3 // PWM1
TRISD7=0; // DC4 // PWM7
TRISC1=0; // DC5 // CCP2
TRISC2=0; // DC6 // CCP1
TRISB2=0; // DC7 // BTHUONG_PWM2
/////////////////
// NUT AN DA KHAI BAO ROI///////////////////////////////////
TRISE0=0;
TRISE1=0;
TRISE2=0;
TRISD0=1; // GIAI MA 1
TRISD1=1; // GIAI MA 2
///////////////////////////////////////////////////////////
//pwm power
setup_power_pwm_pins( PWM_ODD_ON,PWM_ODD_ON,PWM_ODD_ON,PWM_ODD_ON);
setup_power_pwm(PWM_CLOCK_DIV_4|PWM_FREE_RUN,1,0,4 99,0,1, 0);
set_power_pwm_override(1, false, 0);
set_power_pwm_override(3, false, 0);
set_power_pwm_override(5, false, 0);
set_power_pwm_override(7, false, 0);
// ccp
setup_timer_2(T2_DIV_BY_4,124,1);
SETUP_CCP1(CCP_PWM);
SETUP_CCP2(CCP_PWM);
while(1)
{
set_pwm2_duty(125);
set_pwm1_duty(0);
}
}
mạch e gởi luôn các anh xem giúp e nhé.
nguyên nhân e đưa mũi kim đồng hồ vào là đo e viết chương trình pwm 2 chân rc1 và rc2 mà nó chạy sai em chưa rõ nguyên nhân, k biết có phải nhiễu không? e bật 1 chân tắt 1 chân thì cả đều bật, không thể 1 chạy 1 dừng, ai đã gặp rồi giúp e với.
đây là chương trình e viết:
#INCLUDE <18F4331.h>
#INCLUDE <def_4331.h>
#FUSES HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT,NOPUT
#FUSES NOCPD,NODEBUG,NOFCMEN,NOCPB,STVREN,PWMPIN,HPOL_LOW
#use delay(clock=20MHZ)
#use fast_io(a)
#use fast_io(d)
#use fast_io(c)
#use fast_io(e)
#INCLUDE <SCANF.C>
void main()
{
// DC7 - DC6(CCP1) - DC5(CCP1) - DC4(PWM7) -DC3(PWM1) - DC2(PWM3) - DC1(PWM5) //
///////////////////KICH ROLE CHIEU DC///////////////
trisc0=0; // role1
trisa1=0; // role2
trisa2=0; // role3
trisa3=0; // role4
trisa4=0; // role5
trisa5=0; // role6
trisb5=0; // role7
RC0=RA1=RA2=RA3=RA4=RA5=RB5=1;
////////////////// CHAN PWM DC///////////////////////////
TRISB4=0; // DC1 // PWM5
TRISB3=0; // DC2 // PWM3
TRISB1=0; // DC3 // PWM1
TRISD7=0; // DC4 // PWM7
TRISC1=0; // DC5 // CCP2
TRISC2=0; // DC6 // CCP1
TRISB2=0; // DC7 // BTHUONG_PWM2
/////////////////
// NUT AN DA KHAI BAO ROI///////////////////////////////////
TRISE0=0;
TRISE1=0;
TRISE2=0;
TRISD0=1; // GIAI MA 1
TRISD1=1; // GIAI MA 2
///////////////////////////////////////////////////////////
//pwm power
setup_power_pwm_pins( PWM_ODD_ON,PWM_ODD_ON,PWM_ODD_ON,PWM_ODD_ON);
setup_power_pwm(PWM_CLOCK_DIV_4|PWM_FREE_RUN,1,0,4 99,0,1, 0);
set_power_pwm_override(1, false, 0);
set_power_pwm_override(3, false, 0);
set_power_pwm_override(5, false, 0);
set_power_pwm_override(7, false, 0);
// ccp
setup_timer_2(T2_DIV_BY_4,124,1);
SETUP_CCP1(CCP_PWM);
SETUP_CCP2(CCP_PWM);
while(1)
{
set_pwm2_duty(125);
set_pwm1_duty(0);
}
}
mạch e gởi luôn các anh xem giúp e nhé.