Gast
#156162
Hallo,
beim meinem Versuch, (auf dem ATmega16 funktionierenden) Code für den
AD-Wandler vom ATmega16 auf den ATmega8 zu übertragen, ist was
schiefgegangen.
Der untenstehende Code funktioniert für den ATmega16 kompiliert im
Simulator einwandfrei. Für den ATmega8 kompiliert hängt er sich beim
zweiten "while(ADCSRA & (1 << ADSC));" auf. Das ADSC Flag wird nicht
zurückgesetzt. Als Simulator verwende ich AVRStudio 4.10 Build 356.
Was habe ich falsch gemacht???
MfG
- cl
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <inttypes.h>
int main(void)
{
int i;
ADCSRA = (1 << ADEN) | 0x06;
ADMUX = 0x00;
for (i = 0; i < 16; i++)
{
while(ADCSRA & (1 << ADSC));
ADCSRA |= (1 << ADSC);
while(ADCSRA & (1 << ADSC));
}
return(0);
}