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!
Gast
#3553683
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.
Gast
#3553874
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
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!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.