optimisations in adc code

This commit is contained in:
Lucas Pleß 2013-06-12 15:30:15 +02:00
parent ea03c8ca67
commit ee0f2a921d
2 changed files with 8 additions and 7 deletions

View File

@ -30,12 +30,13 @@ uint16_t adc_read_single(uint8_t channel) {
return ADCW;
}
uint16_t adc_read_avg(uint8_t channel, uint8_t nsamples) {
uint32_t sum = 0;
uint16_t adc_read_avg(const uint8_t channel, const uint8_t nsamples) {
uint16_t sum = 0;
uint8_t count = nsamples % 60;
for (uint8_t i=0; i<nsamples;++i ) {
for (uint8_t i=0; i<count;++i ) {
sum += adc_read_single(channel);
}
return (uint16_t)(sum / nsamples);
return (sum / count);
}

View File

@ -1,8 +1,8 @@
#ifndef _adc_h
#define _adc_h
void adc_init(void);
uint16_t adc_read_single(uint8_t);
uint16_t adc_read_avg(uint8_t, uint8_t);
extern void adc_init(void);
extern uint16_t adc_read_single(uint8_t);
extern uint16_t adc_read_avg(uint8_t, uint8_t);
#endif