使用MPLAB v8.63+ C語言撰寫一個ADC感測控制CCP輸出, 但在PWM輸出時每2秒左右會出現週期性掉電現象,掉電時間維持約1.3mS左右又會恢復, 不知是否有設定部分問題造成類似現象,已確認之前同一支程式不會發生此問題。
波形上傳不上來,先附上程式設定請各前輩幫忙把把脈
//TOPIC:Partice for PIC12F1822 digital Buck (Fsw=40kHz)
#include
//#include
//#pragma config OSC=internal RC clockout
unsigned long Duty=5, Vref=134, Duty_max=95, Duty_min=5;
unsigned long RESULT,RESULT_old1,RESULT_old2;
void InitializePWM1(void); // InitializePWM1
void InitializeTMR2(void);
void ConvertADC(void);
void main(void)
{
// Setup for ADC Module
TRISA =0b00000001;
OSCCON =0b01111011; // bit 6-3 : 1111= 16MHz
// bit 6-3 : 1110= 8MHz
// bit 6-3 : 1101= 4MHz
// bit 6-3 : 1001= 250kHz
ANSELA =0b00000001;
ADCON0 =0b00000011;
// Setup for PWM Module
InitializePWM1( );
InitializeTMR2( );
// InitializeADC();
while(1)
{
CCPR1L = 100;
}
}
// - Configure CCP1 for PWM
//***********************************************
void InitializePWM1(void)
{
CCP1CON=0b00001100;
TRISA =0b00000011;
PR2 = 99;
CCPR1L = Duty;
return;
}
// - Enable the Timer2
//***********************************************
void InitializeTMR2(void)
{
T2CON = 0b00000000; // OpenTimer2
// bit 6-3 : Postscaler 1:16
// bit 2 : Timer2 on bit
// bit 1-0 : Prescaler 1:4
T2CON = 0b01111100; // Start Timer2 Counter
return;
}