Hallo zusammen, ich habe ein Problem mit einem Atmega168, an dessen Port D.1 beim Starten in kurzer Impuls ausgegeben wird. Der Imnpuls hat eine Länge von nur ca. 0,5 Sekunden, aber den kann ich nicht gebrauchen. Meine Vermutung ist, dass der Impuls durch den TxD erzeugt wird, der auch auf dem Port hängt. Habe schon versucht über txen0 = 0 den UART abzuschalten, aber es bringt nichts. Hat jemande eine Idee wie ich das ändern kann? $regfile = "m168pdef.dat" $crystal = 16000000 $hwstack = 50 $swstack = 50 $framesize = 50 Ucsr0b.txen0 = 0 Ucsr0b.rxen0 = 0 Ddrd = &B0011_0011 Portd = &B1100_0000 Ddrc = &B0011_1111 Portc = &B1100_0000 Do Waitms 1 Loop Besten Dank
Robert S. schrieb: > Meine Vermutung ist, dass der Impuls durch den TxD > erzeugt wird, der auch auf dem Port hängt. Nein. > Habe schon versucht über txen0 = 0 den UART abzuschalten, aber es bringt > nichts. Natürlich nicht. Der ist nach Reset abgeschaltet. > Hat jemande eine Idee wie ich das ändern kann? Zieh das Programmiergerät ab! mfg.
Hi >Meine Vermutung ist, dass der Impuls durch den TxD >erzeugt wird, der auch auf dem Port hängt. Unsinn. Nach einem RESET sind TXDEN0 und RXDEN0 = 0. >Der Imnpuls hat eine Länge von nur ca. 0,5 Sekunden ... Das sind für einen Controller Ewigkeiten. Wo sollen die herkommen? MfG Spess
spess53 schrieb: > Wo sollen die herkommen? Wenn ein Dragon angeschlossen ist und der Controller keine Spannung hat, gibt es beim Einschalten jeweils einen deutlich sichtbaren Impuls auf allen offenen Ports. Kommt wohl von der parasitären Versorgung des Controllers durch die SPI-Pullups des Dragon. Das passiert aber auch nur, wenn der Controller mindestens 10 Sekunden abgeschaltet war. Eine halbe Sekunde sind die allerdings nicht lang. Bei JTAGICE oder AVRISP passiert das nicht. Aber die haben auch keine Pullups auf den ISP-Leitungen. mfg.
Hi Da muss ich wohl Jahrzehnte lang irgend etwas mit zig ATMEL-Programmern falsch gemacht haben. So ein Mist ist mir in 18 Jahren noch nicht unter gekommen. MfG Spess
N'abend, danke für die ersten Antworten, aber an dem Programmiergerät liegt es nicht. Vielleicht ist der Port auch nur 0,2 Sekunden high? Ich kann es nicht messen. Wie Spess schon schrieb, ist es für einen Prozessor eine Ewigkeit. Na klar können beim Einschalten irgendwelche Ports kurzzeitig high werden, aber der Impuls kommt leicht verzögert. Gruß Rob
Robert S. schrieb: > Na klar können beim Einschalten irgendwelche Ports kurzzeitig high > werden, aber der Impuls kommt leicht verzögert. Beim Einschalten passiert da von alleine gar nichts. Passiert das bei Dir auch mit gelöschtem Programm?
Startverzögerung in den Fuses auf 64ms eingestellt? Mal einen externen Pulldown an den Pin gehängt? Gruß Horst
Setze ALS ERSTES in deinem Programm beide Pins (RX und TX) als EINGANG! Ähnliches Verhalten hatte ich immer in meinen Programmen.
Dennis X. schrieb: > Setze ALS ERSTES in deinem Programm beide Pins (RX und TX) als EINGANG! ALS ERSTES...EINGANG! Das hättest du jetzt auch noch fett, unterstrichen und übergross schreiben können. Ändert aber auch nichts daran, dass es Unsinn ist. Denn alle Pins sind nach dem Reset als Eingänge geschaltet. mfg.
Dachte ich auch immer, es macht dennoch einen Unterschied. Ich habe hier eine Schaltung, welche immer ein null Byte über den uart geschickt hat sobald ich diese mit Spannung versorgt hab. Durch das ändern der Reihenfolge und das zusätzliche Beschalten als Eingang hat genau dieses Phänomen aufgehört. Ich kann hier auch nur schreiben was bei mir geholfen hat... Ich kenne dem Grundzustand der Register und dennoch trat dieses Verhalten auf. Ich weiß nicht warum aber es ist reproduzierbar. Falls es jemand weiß bitte immer gerne.
Dann sind deine Beobachtungen oder Schlussfolgerungen falsch. Die besagten Pins sind, wie alle anderen auch, nach dem Reset auf Eingang geschaltet. Daran ändert oder verbessert sich auch nichts, wenn diese nochmals auf Eingang geschaltet werden. Egal wann, in welcher Reihenfolge oder wie oft. mfg.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.