Liste der Anhänge anzeigen (Anzahl: 1)
Atmega8 ADC unter Bascom
Hallo zusammen,
ich habe ien kleines Problem und hoffe jemand kann mir helfen.
Also ich versuche mit einem ATmega8 am Port PC0(ADC0) eine Spannung eizulesen und den Wert auszugeben.
Die Konfiguration kann man unter Bascom sowohl in Maschinencode als auch mit Bascom Hi-Level-Statements ausführen. Angeschlossen wird ein Poti.
Nun mein Problem:
Konfiguration im Maschinecode funktioniert bestens, sogar als Kurvenausgabe. Kommentiere ich Maschinecode aus, und verwende Bascom, ist der ausgegebene Wert IMMER 1023! Egal vohin ich das Poti stelle.
Code:
'ACC + Poti: A/D-Konverter, einfaches Beispiel
'Hardware: Poti1 an PC0/ADC0
' MAX232 an PD0/PD1, Nullmodemkabel zum PC
'----------------------------------------------------------
$regfile = "m8def.dat" 'ATmega8-Deklarationen
$crystal = 3686400 'Quarz: 3,6864 MHz
$baud = 9600 'Baudrate zum PC: 9600 Baud
'----------------------------------------------------------
Dim H As Word
Dim L As Byte
Ddrc = &B00000000 'PC7...PC0=0: PortC-Pins auf Eingang
'----------------------------------------------------------
'Register direkt gesetzt, läuft
'Admux = &B01100000 'Bits7+6=01: Aref ist intern verbunden
'Bit5=1: LeftAdjust, nur 8 Bit in ADCH
'Bits3...0=0000: Pin ADC0 wählen
'Adcsr = &B11100111 'Bit7=1:AdcOn,Bit6=1:Start,Bit5=1:Frei
'Bits2+1+0=111: AdcClock=AvrClock/128
'----------------------------------------------------------
'BASCOM Statements liefern immer nur den Wert 1023
Config Adc = Single , Prescaler = 128
Enable Interrupts
Start Adc
'----------------------------------------------------------
Do 'Hauptschleife
'udr = Adch 'Aktuelles AD-HiByte in die UART
H = Getadc(0) 'aktueelen Wert auslesen
Print H 'Print h
Waitms 200 'Datenmenge etwas begrenzen
Loop
Was mache ich Falsch????
mfg.
Dietmar
(Entschuldigt bitte die Form, aber ich weiß nicht wie ich den Code richtig reinbekomme.)