-
-
Hallo,
der Code besteht aus mehreren Teilen.
Gestern habe ich den Kontroller noch mit 2.8 Volt gespeist, weil mein Display, das noch mit angesteuert wird, nicht mehr abkann.
Kann es sein, dass ich den Kontroller kaputt gemacht habe, wenn am Aref bei den 2.8 Volt Eingangsspannung nur 2.05 Volt anlagen, ich dem Kontroller aber am Adc1 2.5 Volt zugeführt habe?
Heute habe ich das ganze noch mal bei 5Volt Eingangsspannung und ohne Display probiert und auch hier zeigt der Kontroller ein sehr komisches Verhalten.
Bezogen auf den Adc habe ich folgenden Code:
Adc.c:
void einlesen (void){
messwert = ADCL;
messwert |= (ADCH<<8 );
}
void adc_init (void)
{
ADCSRA = (1<<ADEN) |(1<<ADSC) | (1<<ADATE) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0); // free running prescaler = 128
ADMUX = (1<<REFS1) | (1<<REFS0) | (1<<MUX0); // interne Referenzspannung, Mux0 = Pin ADC0 Mit diesem Register wird der zu messende Kanal ausgewählt.
ADMUX &= ~(1<<ADLAR);
SFIOR &= ~((1<<ADTS2) | (1<<ADTS1) | (1<<ADTS0));
messwert = ADCL;// einmalige Messung
messwert |= (ADCH<<8 );
messwert = 0;
}
in der while Schleife der main Funktion wird dann Folgendes aufgerufen:
if (messwert >= 500){
PORTC ^= (1<< PC7);} // Led an PC7
einlesen ();
mehr ist es im Grunde nicht.
Beim Atmega 8 hat alles wunderbar funktioniert.
Könntet ihr bitte noch mal einen Blick auf den Code werfen, denn ich sitze jetzt schon den 3 Tag an dem Teil und bin echt ratlos.
MfG
Destrono
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen