#include <p24FJ64GA002.h>
#include "types.h"
#include "librtc.h"
#include "libadc.h"
関数 | |
void | __attribute__ ((interrupt, auto_psv)) |
void | ADC_init (void) |
変数 | |
ADC_T | adc |
void __attribute__ | ( | (interrupt, auto_psv) | ) |
参照先 ADC::adc, rtc, RTC_get_ticks(), と RTC::tick.
{ IFS0bits.AD1IF = 0; /* LPF */ adc.adc[0] = (ADC1BUF0 + ADC1BUF3 + ADC1BUF6 + ADC1BUF9) >> 2; adc.adc[1] = (ADC1BUF1 + ADC1BUF4 + ADC1BUF7 + ADC1BUFA) >> 2; adc.adc[2] = (ADC1BUF2 + ADC1BUF5 + ADC1BUF8 + ADC1BUFB) >> 2; #ifndef ADC_LOWMEM adc.cycle = RTC_get_ticks(adc.last, rtc.tick); adc.last = rtc.tick; #endif return; }
void ADC_init | ( | void | ) |
参照元 main().
{ #ifndef ADC_LOWMEM adc.last = rtc.tick; adc.cycle = 0xffff; #endif /* 内蔵ADC */ /* FEDCBA9876543210 */ AD1CON1 = 0b1000000011100101; AD1CON2 = 0b0000010000110000; AD1CON3 = 0b0001111111111111; AD1PCFG = 0b1111111111111000; AD1CSSL = 0b0000000000000111; AD1CHS = 0b0000000000000000; IPC3bits.AD1IP = 1; IEC0bits.AD1IE = 1; IFS0bits.AD1IF = 0; return; }