hattest du nicht mal irgendwann geschrieben du benutzt einen ATMega8 oder ATMega16?
Ich bin mir nicht 100% sicher, aber $regfile = "m163def.dat" hört sich für mich irgendwie so an, als wäre das für einen ATMeag163.
Hallo!
ATmega8: AVCC, AGND und AREF sind geschalten!
VCC und GND natürlich auch!
Mein Programm:
$regfile = "m163def.dat"
Config Adc = Single , Prescaler = Auto
Config Portb = Output
Start Adc
Dim W As Word , Channel As Byte
Channel = 5
Do
W = Getadc(channel)
If W > 0 then Portb.0 = 0 else Portb.0 = 1
Loop
End
Aber es tut sich einfach nichts, wenn ich den PC.5 beschalte! (Sprich AD-Channel 5)
Was kann ich nur tun?
Habe am PC.5 genau 5V vom Netz mit 10k Widerstand vorgeschalten.
Der ADWandler scheint aber einfach nicht zu reagieren!
Wie kann ich den richtig benutzen?
Bitte helft mir, möchte den Chip nicht abrauchen!
MfG,
ShadowPhoenix
hattest du nicht mal irgendwann geschrieben du benutzt einen ATMega8 oder ATMega16?
Ich bin mir nicht 100% sicher, aber $regfile = "m163def.dat" hört sich für mich irgendwie so an, als wäre das für einen ATMeag163.
Hallo
Welchen uC hast du den jetzt ??
$regfile = "m163def.dat" ????
M8 oder einen M163. Kann so nicht gehen, da der 163 für den ADC eine andere Interruptadresse verwendet.
Trag mal ein und probiere nochmal, falls du einen MEGA 8 hast.
$regfile = "m8def.dat"
MFG
Dieter
Ok!
Mein Code schaut nun so aus:
$regfile = "m8def.dat"
Config Adc = Single , Prescaler = Auto
Config Portb = Output
Dim W As Word , Channel As Byte
Start Adc
Do
W = Getadc(5)
If W > 0 then Portb.0 = 0 else Portb.0 = 1
Loop
End
Nur die Led leuchtet von Anfang an, das heißt: W ist von Anfang an größer als 0!
Aber warum?
Der ADWandler sollte doch Anfangs den Wert 0 haben?
Habe auch schon IF W > 10 then... probiert!
Aber W scheint auch von Anfang an größer als 10 zu sein...
Was kann ich nur tun?
MfG,
ShadowPhoenix
Warum gibst du den Wert "W" in deinem Programm nicht einfach mal mit "Print W" auf die serielle Schnittstelle aus und guckst ihn die an?
Das ist vielleicht etwas aussagekräftiger als die LED.
Bist du sicher, dass die LED bei Portb.0=1 leuchtet und bei Portb.0=0 aus ist? Ich glaube das könnte eventuell auch umgekehrt sein.
Wenn 0 = Low bedeutet, würde das heisssen, dass der Port bei 0 auf GND liegt. Wenn die LED "oben" an 5V und "unten" am Port hängt, würde sie dann bei 0 leuchten und bei 1 ausgehen.
(kann aber sein, dass ich mal wieder völlig daneben liege)
Hallo
Ober schreibst du doch, du hast 5 Volt an PIN C 5. Dann ist w natürlich immer > 0.
5 Volt w = 1023 ,
2,5 Volt w = 512
0 Volt w = 0
MFG
Dieter
@recycle
Hmm, wie kann ich mit PrintW den Wert anzeigen lassen?
Besser: WO wird der Wert dann angezeigt?
Einfach nur PrintW... hmm ich hab leider kein HyperTerminal!
Du hast recht, bei 0 leuchtet meine Led, und bei 1 ist sie aus!
Aber ich schrieb doch:
[ WENN W grösser als 0 ist, DANN leuchte (0) ]
@Dino Dieter
Das Problem ist, die Led leuchtet auch, wenn ich 0V an PC.5 habe!
Schau, ich möchte einfach nur abfragen, ob PC.5 größer ist als 0, also ob mehr als 0.000 V anliegen.
Wenn ja, dann soll die Led leuchte, wenn nicht, dann soll die LED nicht leuchten!
Ich bekomm das irgendwie nicht hin
W ist immer größer als 0!
Werte die du mit "Print" ausgibst werden im Terminal-Programm ausgegeben. Dass du kein "Hyperterminal" hast, sollte wohl nicht so das Problem sein, da in Bascom ein Terminalprogramm integriert ist.Besser: WO wird der Wert dann angezeigt?
Einfach nur PrintW... hmm ich hab leider kein HyperTerminal!
Was verstehst du unter "0V"? Beschaltest du den Pin für 0V gar nicht, oder legst du ihn auf Masse?Das Problem ist, die Led leuchtet auch, wenn ich 0V an PC.5 habe!
Hallo
Dann teste doch erstmal PORTB.0 ob er noch geht.
do
PORTB.0 = 0
wait 1
PORTB.0 = 1
wait 1
loop
Habe das Programm getestet und es geht so.
Schaff dir mal eine RS232 Verbindung zum PC. Ist doch super zum Fehler suchen.
MFG
Dieter
@recycle
Mit 0V meine ich garnicht angeschlossen.
Hmm nur das Terminalprogramm funzt irgendwie nicht.
Es wird garnichts angezeigt, egal was ich ausgeben will!
@Dieter
RS232 hab ich keinen Programmierer usw..
Ich arbeite mit Parallelport, ist doch kein Problem, oder?
Der Portb funktioniert einwandfrei!
W scheint andauernd über 0V zu sein!
Der AVR ist neu!
Was kann ich nur tun? (
MfG,
ShadowPhoenix
Lesezeichen