Hallo, ich arbeite mit dem STK500 und einem ATMega8. Nun versuche ich an ADC0/PC0 eine analoge Spannung zwischen 0 und 5V zu erfassen. Ich benutze die interne Referenzspannung des AVR von 2,56V. Hierzu möchte ich folgendes Prgramm verwenden: .include "m8def.inc" .def akku = r16 .def datenl = r24 .def datenh = r25 .CSEG rjmp start .ORG $0B rjmp fertig .ORG $10 start: ldi akku,LOW(RAMEND) out SPL,akku ldi akku,$ff out DDRB,akku out DDRD,akku ldi akku,0b01100000 out ADMUX,akku ldi akku,0b11101101 out ADCSR,akku sei haupt: nop rjmp haupt fertig: push r24 push r25 in r24,ADCL in r25,ADCH out PORTD,r25 out PORTB,r24 pop r25 pop r24 reti .EXIT Aber irgendwie funktioniert das nicht. Ich habe jetzt nur mal den PortD an die LEDs angeschlossen, um zu sehen, ob sich überhaupt etwas tut. Die Spannung generiere ich über ein 20K-Potentiometer. Was stimmt an diesem Programm nicht? Ich bin genau nach Datenblatt des AVR vorgegangen... Ich hoffe ihr könnt mir helfen. Danke + Gruß Jörg
> Nun versuche ich an ADC0/PC0 eine analoge Spannung zwischen 0 und > 5V zu erfassen. > Ich benutze die interne Referenzspannung des AVR von 2,56V. Wenn du die benutzt, kannst du aber auch nur Spannungen bis 2,56V messen. > .ORG $0B > rjmp fertig Laut Datenblatt ist an der Adresse 0B der "USART, Rx complete"-Interrupt. > ldi akku,0b01100000 > out ADMUX,akku Ich dachte, du wolltest die interne Referenzspannung nutzen. Bei dieser Einstellung wird aber das externe Aref benutzt. Ich schätze mal, du hast versehentlich die Einsen um ein Bit verschoben. Am besten tippst du keine Bitkolonnen, sondern die Namen der Bits. Das macht die Sache übersichtlicher und weniger fehlerträchtig. ldi akku, (1 << REFS1) | (1 << REFS0) > ldi akku,0b11101101 > out ADCSR,akku ADCSR gibt's beim ATmega8 nicht. Das heißt ADCSRA. Möglicherweise wird aber beides akzeptiert.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.