wie wärs mal mit
start adc
bevor du mit dem messen anfängst?
Kann mir einer weiterhelfen!
Leider kann ich seit kurzen mit diesem Programm nicht mehr auf den AD-Wandler von meinem ATMEGA8 zugreifen.
$regfile = "m8def.dat"
$crystal = 3686400
$baud = 9600
Config Adc = Single , Prescaler = Auto
Dim W As Word , Kanal As Byte
Kanal = 0
Do
W = Getadc(kanal)
Print " Kanal " ; Kanal ; " Wert " ; W
Loop
End
Mit einem anderen Beispiel aus dem Buch von Roland Walter klappt es jedoch.
Vor einiger Zeit hat mein eigenes Programm noch funtioniert leider weiss ich nicht was ich verstellt habe.
Es währe schön wenn jemand mir hierbei Helfen könnte!
Danke
Michael
wie wärs mal mit
start adc
bevor du mit dem messen anfängst?
Sorry hatte ich vergessen!!!
Aber funktioniert trotzdem nicht zeigt nur max Wert von 1023 an. Kann nicht verändert werden durch andere Poti Stellung
Klingt, als ob das Poti keine GND-Verbindung hätte.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Ich hatte schon ein Funtionierendes Programm mit mehreren AD-Eingängen das Funtioniert hat. Leider zeigen die alle auch nur noch max Werte an. Hatte kurzzeitig Update auf Bascom 1.11.7.8 gemacht wegen Programm-Größen Probleme. Habe dies wieder rückgängig gemacht aber trotzdem funktioniert es nicht mehr
ist dein kanal der richtige? und ist die hardware ok?
Wie gesagt die GRD-Verbindung ist Gut da ein anderes Programm von Roland Walter funtioniert. Leider mit anderen Befehlen ADMUX und ADCSR usw.
Es sind nur zwei verschiedene Arten den AD-Wandler abzufragen. Wobei beiden funktioniert haben, jetzt leider nur noch eine.
Leider ist die Abfrage von mereren Kanälen bei Roland Walter nicht so gut erklärt. Deshalb habe ich es mit Getadc probiert.
Habe nochmal mein Original Programm was funktioniert hat beigefügt.
müßte eigendlich so klappen!!Code:$regfile = "m8def.dat" 'ATmega8-Deklarationen $crystal = 3686400 $baud = 9600 Dim A As Word Dim B As Single Dim C As Single Dim D As Single Dim Channel As Byte Config Adc = Single , Prescaler = Auto Start Adc Do If Channel = 0 Then D = 9.775171 If Channel = 1 Then D = 0.293255132 If Channel = 2 Then D = 1.9550342 If Channel = 3 Then D = 1.1730205 A = Getadc(channel) B = A * D C = Round(b) / 100 Print C; If Channel = 0 Then Print " Grad,"; If Channel = 1 Then Print " Ampere(3A),"; If Channel = 2 Then Print " Ampere(20A),"; If Channel = 3 Then Print " Volt,"; Incr Channel If Channel > 3 Then Channel = 0 Waitms 200 Loop
Und jetzt nicht mehr?????? [-o<
Ich habe es nun noch einige male Versucht aber es klappt einfach nicht mehr.
Habe das Programm von Roland Walter für meine Zwecke leicht umgeschrieben
Wenn ich nur ein Kanal Abfrage zeigt er mir den richtigen Wert an,
sobalt ich das Programm auf zwei Kanäle erweitere Vertausch er mir die Ergebnisse?????
Warum???
Code:$regfile = "m8def.dat" 'ATmega8-Deklarationen $crystal = 3686400 'Quarz: 3,6864 MHz $baud = 9600 'Baudrate zum PC: 9600 Baud Dim A As Word Dim B As Byte Ddrc = &B00000000 'PC7...PC0=0: PortC-Pins auf Eingang Admux = &B01100000 Adcsra = &B11100010 Do B = 0 Admux = &B01100000 'Adcsra = &B11100010 A = Adch Print "Kanal " ; B ; "= " ; A ; " - "; Waitms 1000 B = 1 Admux = &B01100001 'Adcsra = &B11100010 A = Adch Print "Kanal " ; B ; "= " ; A ; " - "; Waitms 1000 Loop
Lesezeichen