unsigned int read(unsigned char channel)
{
// Channel numbers greater than 31 are invalid.
if (channel > 31)
{
return 0;
}
ADCSRA = 0x87; // bit 7 set: ADC enabled
// bit 6 clear: don't start conversion
// bit 5 clear: disable autotrigger
// bit 4: ADC interrupt flag
// bit 3 clear: disable ADC interrupt
// bits 0-2 set: ADC clock prescaler is 128
// 128 prescaler required for 10-bit resolution when FCPU = 20 MHz
ADMUX &= ~(1 << 7);
ADMUX |= 1 << 6; // use AVCC as voltage reference
ADMUX &= ~0x1F; // clear channel selection bits of ADMUX
ADMUX |= channel; // we only get this far if channel is less than 32
ADCSRA |= 1 << ADSC; // start the conversion
while (ADCSRA & (1 << ADSC)); // wait while ADC is converting
if (ADMUX & (1 << ADLAR)) // if in 8-bit mode, result is left-adjusted
return ADCH; // so just return high byte of 16-bit ADC result register
return ADC; // else right-adjusted 10-bit result; return entire 16 bits
}
lufamseed wrote:PD5 as front sensor
Return to General Robotics Discussion
Users browsing this forum: No registered users and 1 guest
|
My Account
|
Wish Lists
|
BIG Order Form
|
Shopping Cart
US toll free: 1-877-7-POLOLU ~
(702) 262-6648 |
|||||||||||||
| Catalog | Forum | Resources | Distributors | Ordering | About | Contact | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|