Schaltplan werde ich mal vorbereiten. Ist aber Nur Atmega8 in der Standartbeschaltung mit 3,6MHz Quarz. AVCC =5V direkt, AREF = 5V über 100nF angeschlossen, GND Masse.
Der Sensor liegt an ADC0 (pinc0) über einen 100nF angeschlossen.
Das Programm soll mir nur auf einem Display den digitalenwert anzegen. Zusätzlich noch den Wert vom high und low Byte.
Das Poti liefert das gleich Ergebnis. Mit einem Multimeter und Oszilloscope kann ich erkennen, das die Spannung auch bei 0,1V Ausgabe vom Sensor noch stabiel ist.Code:$regfile = "m8def.dat" 'AtmelMega8 Deklaration $crystal = 3686400 'Gibt Taktgeschwindigkeit des Quarzes an $baud = 14400 'Festlegung der Übertragungsgeschwindigleit UART Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcdbus = 4 Cursor Off Config Timer0 = Timer , Prescale = 1024 Enable Timer0 Timer0 = 0 Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Ddrb = &B00110000 Ddrc = &B00011100 Ddrd = &B11111110 Portb = &B00001111 Declare Sub Warten() Declare Sub Wertholen() Dim Entfernungswertesumme As Word Dim Messungen As Byte Dim Entfernungswertdigi As Word At $160 Dim Entfernungswertdigi1 As Byte At $160 Overlay Dim Entfernungswertdigi2 As Byte At $161 Overlay Gosub Wertholen Cls Locate 1 , 1 Lcd "D: D1: " Locate 2 , 1 Lcd "D2:" Do Entfernungswertdigi = 0 Entfernungswertdigi1 = 0 Entfernungswertdigi2 = 0 Gosub Wertholen Locate 1 , 4 Lcd Entfernungswertdigi Locate 1 , 13 Lcd Entfernungswertdigi1 Locate 2 , 5 Lcd Entfernungswertdigi2 Waitms 400 Loop End Sub Wertholen() Entfernungswertdigi = 0 Entfernungswertdigi = Getadc(0) End Sub Sub Warten() Do Start Timer0 Loop Until Tcnt0 >= 169 Stop Timer0 Timer0 = 0 End Sub
Ist der ADC pin offen , zeigt er gleiches Verhalten wie bei den kleinen Spannungen...







Zitieren

Lesezeichen