Gast
#1392839
Hallo, ich lese gerade einen Beschleunigungssensor aus. Mit einem mega16
klappt das wie gewünscht. Die Werte im Ruhezustand der drei Achsen
liegen bei etwa 400.
Nun muss ich die ganze Anwendung aber auf einem attiny84 laufen lassen.
Dieser soll per software UART die achsenwerte rausschicken. Die Software
UART (dannegger code) funktioniert. Der ADC macht aber zicken:
ich initialisiere den PORTA folgendermaßen:
DDRA = 0x0;
PORTA = 0x0;
den ADC lese ich mit meiner Standardfunktion die beim mega16 klappt:
int ReadChannel(int channel)
{
int i;
int result = 0;
ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0);
ADMUX = channel;
ADMUX |= (1<<REFS1) | (1<<REFS0);
ADCSRA |= (1<<ADSC);
while (ADCSRA&(1<<ADSC));
for(i=0;i<4;i++)
{
ADCSRA |= (1<<ADSC);
while (ADCSRA&(1<<ADSC));
result += ADCW;
}
ADCSRA &= ~(1<<ADEN);
result /= 4;
return result;
}
Lese ich nun den ADC stürzt der tiny scheinbar ab, es wird nichts mehr
an die UART gegeben. Ich sehe im Datenblatt keinen großen unterschied
zwischen mega16 und tiny in bezug auf den adc... Was mache ich
möglicherweise falsch?