fix adc
This commit is contained in:
parent
b74b63cd3b
commit
b78d822ae3
14
main.c
14
main.c
|
|
@ -19,24 +19,27 @@ void __interrupt() ISR(void) {
|
||||||
INTCONbits.GIE = 0;
|
INTCONbits.GIE = 0;
|
||||||
if (PIR1bits.TMR1IF) {
|
if (PIR1bits.TMR1IF) {
|
||||||
PIR1bits.TMR1IF = 0; // Clear interrupt flag
|
PIR1bits.TMR1IF = 0; // Clear interrupt flag
|
||||||
|
T1CONbits.TMR1ON = 0;
|
||||||
static uint16_t off_ticks; // Retains value between interrupts
|
static uint16_t off_ticks; // Retains value between interrupts
|
||||||
static uint16_t timer;
|
static uint16_t timer;
|
||||||
if (pulse_state == 0) {
|
if (pulse_state == 0) {
|
||||||
// Calculate pulse parameters
|
// Calculate pulse parameters
|
||||||
uint16_t on_ticks = 75 + ((uint16_t)servo_pos * 237) / 255; // Map to 0.5ms-2.5ms
|
uint16_t on_ticks = 125 + ((uint16_t)servo_pos * 125) / 255; // Map to 0.5ms-2.5ms
|
||||||
off_ticks = 2500 - on_ticks; // 2500 ticks = 20ms
|
off_ticks = 2500 - on_ticks; // 2500 ticks = 20ms
|
||||||
RC5 = 1; // Start pulse
|
|
||||||
timer = 65535 - on_ticks;
|
timer = 65535 - on_ticks;
|
||||||
TMR1L = (unsigned char)(timer & 0xFF);
|
TMR1L = (unsigned char)(timer & 0xFF);
|
||||||
TMR1H = (unsigned char)(timer >> 8);
|
TMR1H = (unsigned char)(timer >> 8);
|
||||||
|
RC5 = 1; // Start pulse
|
||||||
pulse_state = 1;
|
pulse_state = 1;
|
||||||
} else {
|
} else {
|
||||||
RC5 = 0; // End pulse
|
|
||||||
timer = 65535 - off_ticks;
|
timer = 65535 - off_ticks;
|
||||||
TMR1L = (unsigned char)(timer & 0xFF);
|
TMR1L = (unsigned char)(timer & 0xFF);
|
||||||
TMR1H = (unsigned char)(timer >> 8);
|
TMR1H = (unsigned char)(timer >> 8);
|
||||||
|
RC5 = 0; // End pulse
|
||||||
pulse_state = 0;
|
pulse_state = 0;
|
||||||
}
|
}
|
||||||
|
T1CONbits.TMR1ON = 1;
|
||||||
}
|
}
|
||||||
INTCONbits.GIE = 1;
|
INTCONbits.GIE = 1;
|
||||||
}
|
}
|
||||||
|
|
@ -62,7 +65,7 @@ void setup() {
|
||||||
T1CONbits.TMR1ON = 1;
|
T1CONbits.TMR1ON = 1;
|
||||||
|
|
||||||
// Configure ADC
|
// Configure ADC
|
||||||
TRISAbits.TRISA2 = 0;
|
TRISAbits.TRISA2 = 1;
|
||||||
ANSELbits.ANS2 = 1;
|
ANSELbits.ANS2 = 1;
|
||||||
ADCON0 = 0b00001001;
|
ADCON0 = 0b00001001;
|
||||||
ADCON1 = 0;
|
ADCON1 = 0;
|
||||||
|
|
@ -116,8 +119,7 @@ void main() {
|
||||||
__delay_us(100);
|
__delay_us(100);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
//target_pos = 511;
|
smooth_servo(128);
|
||||||
smooth_servo(127);
|
|
||||||
__delay_us(100);
|
__delay_us(100);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user