//********************************************************************** #define LED PORTA.F1 #define VC PORTA.F2 #define VH PORTA.F3 static unsigned int cnt, buzzer; static unsigned char adFlag; //********************************************************************** void interrupt() { if (INTCON.T0IF == 1) { // 約1msec周期 INTCON.T0IF = 0; TMR0L = 0x2F; TMR0H = 0xF8; cnt++; if (cnt == 1) VH = 1; if (cnt == 9) VH = 0; if (cnt == 245) VC = 1; if (cnt == 248) adFlag = 1; if (cnt == 250) { VC = 0; cnt = 0; } if (buzzer >= 1) { buzzer--; if (buzzer == 0) { Pwm_Stop(); LED = 0; } else { Pwm_Start(); LED = 1; } } } } //********************************************************************** void Pwm_Change_DutyEx(unsigned int duty_ratio) { CCPR1L = duty_ratio >> 2; CCP1CON.F6 = duty_ratio & 0b00000001; CCP1CON.F7 = (duty_ratio & 0b00000010) >> 1; } //********************************************************************** void Usart_Write_String(char *buf) { static int len, i; len = strlen(buf); for (i = 0; i < len; i++) { Usart_Write(buf[i]); } } //********************************************************************** void main() { static unsigned int ad0, old; static unsigned char buf[10]; // OSCCON.IRCF2 = 1; OSCCON.IRCF1 = 1; OSCCON.IRCF0 = 1; ADCON1 = 0b11111110; TRISA = 0b00000001; TRISB.F1 = 0; // TX TRISB.F4 = 1; // RX TRISB.F3 = 0; // CPP T0CON.T0CS = 0; T0CON.PSA = 1; T0CON.T0PS0 = 1; T0CON.T0PS1 = 1; T0CON.T0PS2 = 1; T0CON.T0SE = 1; T0CON.T08BIT = 0; T0CON.TMR0ON = 1; TMR0L = 0x2F; TMR0H = 0xF8; // INTCON.PEIE = 1; INTCON.TMR0IE = 1; INTCON.TMR0IF = 0; INTCON.GIE = 1; // Usart_Init(9600); // Pwm_Init(1000); // 1Khz Pwm_Change_DutyEx((PR2 * 4) / 2); Pwm_Stop(); // cnt = 0; adFlag = 0; ad0 = 0; old = 0; buzzer = 0; // while (1) { if (adFlag == 0) continue; adFlag = 0; ad0 = Adc_Read(0); if (ad0 > old) { if ((ad0 - old) > 2) { buzzer = 1000; } } else { if ((old - ad0) > 2) { buzzer = 1000; } } old = ad0; WordToStr(ad0 * 5, buf); Usart_Write_String(buf); Usart_Write_String("mV\r\n"); } } //**********************************************************************