Hallo Leute ich AVR Anfänger will etwas lernen. Ich möchte die hex Werte H und L des ADC auslesen komme nicht weiter. Habe es geschafft laut Roland Walter Buch die H Bits auf Tastendruck auszulesen. Aber ich bekomme immer nur eine zweistellige hex raus. Ich wollte 10 Byte. Eine dreistellige hex. Hier mein Listing für Basecom $Regfile="m8def.dat" 'ATmega8-Deklarationen $Crystal=3686400 'Quarz: 3,6864 MHz $baud = 9600 'Baudrate zum PC: 9600 Baud Declare Sub Keypressed Portd.5 = 1 DDRC =&B00000000 'PC7...PC0=0: PortC-Pins auf Eingang Admux = &B01100000 'Bits7+6=01: Aref ist intern verbunden ? 'Bit5=1: LeftAdjust, nur 8 Bit in ADCH „WAS muss ich hier ändern???“ 'Bits3...0=0000: Pin ADC0 wählen ADCSRA=&B11100010 'Bit7=1:AdcOn,Bit6=1:Start,Bit5=1:Frei 'Bits2+1+0=010: AdcClock=AvrClock/4 Do Debounce Pind.5 , 0 , Keypressed , Sub Loop End Sub Keypressed Udr = Adch End Sub End Schon mal vielen Dank. Ich hoffe ich mache mich hier nicht lächerlich!
Jürg Wodarka schrieb: > ? 'Bit5=1: LeftAdjust, nur 8 Bit in ADCH „WAS muss ich hier > ändern???“ Hrm, das Bit nicht setzen? Und mal das Datenblatt im Kapitel ADC öffnen.
Das habe ich schon probiert.Habe auch schon (alles) gelesen was es zum ADC gibt. Habe aber nichts gefunden was mich weiter bringt.
Die 10 Bits des AD Ergebnis verteilen sich auf die 2 Register ADCL und ADCH. Zum Auslesen muss man erst ADCH und dann ADCL auslesen - viele Compiler können auch schon gleich beide Register als ein pseudo 16 Bit register ansprechen etwa als adc oder adcw. Wenn das BIT LeftAdjust gestetzt ist, sind 8 Bits in ADCH und 2 in ADCL, sonst ist es anders herum.
ja das ist mir bekannt. aber ich kann nur ADCH oder ADHL auslesen. ich verstehe aber nicht wie ich die High und Low zusammen bekomme das ich eine dreistellige hex bekomme.
Jürg Wodarka schrieb: > ja das ist mir bekannt. aber ich kann nur ADCH oder ADHL auslesen. ich > verstehe aber nicht wie ich die High und Low zusammen bekomme das ich > eine dreistellige hex bekomme. Ergebnis = 256 * ADCH Ergebnis = Ergebnis + ADCL In BASCOM gibt es sicher auch noch andere Möglichkeiten um die High-Bits um 8 Stellen nach links zu verschieben. Aber warum benutzt du eigentlich nicht BASCOM-typisch ganz einfach die vorgefertigte Funktion getadc? http://avrhelp.mcselec.com/index.html?getadc.htm
:
Bearbeitet durch User
ich komm verrückt!! mit den zeilen bekomme ich auch nur zweistellige hex. Ergebnis = 256 * Adch Ergebnis = Ergebnis + ADCL mit getadc bekomme ich auch nichts hin. vieleicht solte ich anfangen zu stricken :-)
Hallo kbuchegg, war doch ok!!! Ergebnis = 256 * Adch Ergebnis = Ergebnis + ADCL AVRTerminal sendet halt nur 8 Bit. Also dann vielen Dank!
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.