wenn ich das versuche, die funktion zu implementieren, kann er die header-datei delay.h nicht finden.
Ja, ich merke es auch gerade: es müsste auch in der von VODKACITY benutzten Reihenfolge laufen.
Nach dem Einschalten/Reset stehen sämtliche DDR- und PORT-Register auf 0x00. Somit ergibt sich: Eingang ohne Pullup. Also ein hochohmiger Eingang, das Potential am Pin wird nur von der Außenbeschaltung bestimmt. In der aktuelle Schaltung: der TTL-Eingang des ULN zieht den Pin über Widerstände auf Masse.
Nun wird das PORT-Register auf 0x00 gesetzt. Da es diesen Wert schon enthält, ändert sich nichts.
Schließlich wird das DDR-Register auf 0xFF gesetzt. Die Pins werden damit zu Ausgängen. Weil das PORT-Register auf 0x00 steht, werden alle Pins auf Masse gezogen. Damit ist die Initalisierung abgeschlssen. Die Pins wurden bisher nie auf high geschaltet. Die Treiber wurden also noch nicht aktivert, ebensowenig die internen Pullups.
Füg mal ein paar Verzögerungen hinzu, um zu prüfen, an welcher Stelle des Programms der unerwünschte Impuls tatsächlich auftritt. Das geht am einfachsten mit einer Funktion aus <util/delay.h>.
Füge in das Programm folgende Funktion ein, und rufe sie dann an den interessanten Stelle per warte(1000) auf.
Code:#include <util/delay.h> void warte (int loop) //loop: wartezeit in ms { int i; for(i=0;i<loop;i++) _delay_ms(1); }
wenn ich das versuche, die funktion zu implementieren, kann er die header-datei delay.h nicht finden.
Welche avrgcc-Version? Bei älteren Versionen war es <avr/delay.h>
Ich habe mir das ganze bezüglich den externen pull down widerständen zwischen Portausgang und Masse nochmals überlegt.
Nach meiner Meinung kann das ganze nicht funktionieren, da am anfang die internen Pullup widerstände deaktiviert sind ( niederohmig ) und durch meine Zusätzlichen Pull down widerstände würde das Potential am ausgang wiederum durch meine 10k Ohm widerstände auf ca. 5V bleiben würde. ---> Endstufen schalten durch.
Denkt jemand genauso, oder habe ich hier ein Fehler in der Denkweise?
Danke nochmals für eure Infos.
Lg Benny
Wenn die internen Pull-Ups deaktiviert sind, ist der Port hochohmig und nicht niederohmig.
Den Satz danach kann ich in seinem Sinn nicht ganz überblicken.
@uwe ich denke ich hab die neuste version, hab sie von der CD.... und diese hab ich erst seit Aug. 2006
Gruss Benny
kann mir keiner weiterhelfen???
![]()
IN deinem letzten Beitrag hast du Pull-Down mit Pull-Up verwechselt. Ich hoffe du hast da nicht einen generellen Gedankenfehler drin.
Hallo Hubert.
Ja weißt du wie wir unser Problem lösen können? --> Softwaremäßig?
Danke für deine Hilfe
Benny
Hast du schon Pull-Down-Widerstände probiert, also etwa 5k nach GND von jedem Port?
Welche Ports verwendest du?
Machen das alle Ports oder nur einige?
Lesezeichen