Hallo liebe Community, Ich bin neu hier und hoffe auf die Rettung durch euch. :) Ich habe ein Projekt (.TXT DATEI) mit einem AD Wandler aufgebaut. Dabei soll das Programm folgenden Grundlegenden Ablauf haben: Initialisierung -> Wartezeit -> Batteriespannung Kontrolle -> Einstellung/Setting auslesen -> | Set1 | Set2 | Set3 | Set4 | Set5 | -> Einschalt -> Ausschalt -> wieder Batteriekontrolle ... Es scheint alles zu funktionieren bis auf die letzten beiden Schritte. Dort Soll der Controller die Spannung messen und einen MOSFET an den jeweiligen Schaltgrenzen an- (Einschalt) oder ausschalten (Ausschalt). Dabei Rampt an dem Pin eine Spannung hoch. Er soll dann so lange in "Einschalt" bleiben, bis der Schwellwert aus dem Setting überschritten ist. Danach soll er zu "Ausschalt" weiter gehen und erst ausschalten, wenn die Spannung niedriger als im Setting definiert. Komischerweise ist der AD- Wandler der gleiche Aufbau wie bei der Überprüfung der Batteriespannung. und da klappt es. Auch das Auslesen der Settings (auch AD Wandler) funktioniert. Nur bei Ein- und Ausschalt geht es nicht. Jetzt frage ich mich, ob ich irgendwo einen Fehler habe, den ich ich seit Wochen nicht finden kann. +----------- Fehlerbild: Wenn ich die Spannung hoch rampe (0-VCC), schaltet er den PIN für den MOSFET nicht durch. Wenn ich die Spannung bereits über dem Schwellwert anlege bevor der Controller an ist schaltet er den Pin für den MOSFET. Schaltet ihn aber nicht mehr aus wenn ich wieder runter rampe. Ich habe auch schon mal eine Impuls auf einem Pin setzen lassen wenn er an bestimmten Stellen durch das Programm läuft. Dabei ist mir aufgefallen, dass er den Einschalt und Ausschalt Teil nicht als Schleifen durchläuft sondern immer nach einer Konvertierung wieder geht. Ich hoffe ihr könnt mir helfen. Danke schon mal im Voraus
Gast
#5812946
> in r27,ADCH ; einlesen des High-Teils > in r26,ADCL ; einlesen des Low-Teils Aus dem Datenblatt: "When ADCL is read, the ADC Data Register is not updated until ADCH is read. Consequently, if the result is left adjusted and no more than 8-bit precision is required, it is sufficient to read ADCH. Otherwise, ADCL must be read first, then ADCH."
Oh wie Krass. Danke Das habe ich noch nicht vorher gelesen. Super. Ich werde das nachher (nach 15.00 Uhr) gleich ausprobieren. Danke noch mal.
Also Ich habe das jetzt gerade ausprobiert und es funktioniert wunderbar. Vielen Dank noch mal. :)
Gast
#5814655
Freut mich, dass es der einzige Fehler war - und danke für die Rückmeldung, gibt es nicht immer.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.