darxon
08.07.2005, 12:56
Ich habe mal eine Frage an die erfahreneren AVR Anwender.
Ich habe ein Problem mit den Pullup Widerständen am PortD eines AT90S2313. An den Eingängen hängen Tasten und der Controller steuert einen Schrittmotortreiber wenn eine der Tasten gedrückt wird. Die Pullup-Widerstände sind aktiv und die Eingänge auf High Pegel. Der extern angeschlossene Schalter zieht den Pegel gegen Masse. Im Debugger vom AVRstudio läuft das Programm einwandfrei.
Wird der Controller jedoch in die Schaltung eingesetzt, dann springt der Schrittmotor sporadisch kurz an. Der Controller springt also in die Ansteuerroutine für den Schrittmotor. Der einzige Anlaß, daß dies passieren kann ist allerdings ein Sinken des Pegels am Eingang des PortD, was ja eigentlich durch die Pullup-Widerstände verhindert werden soll.
Könnte es sein, daß man sicherheitshalber extern noch Pullup-Widerstände anschließen sollte um auf Nummer sicher zu gehen, weil die internen eventuell probleme machen können?
Der Eingang am PortD wird übrigens zyklisch über Polling abgefragt, also nicht über einen Interrupt.
Ich habe ein Problem mit den Pullup Widerständen am PortD eines AT90S2313. An den Eingängen hängen Tasten und der Controller steuert einen Schrittmotortreiber wenn eine der Tasten gedrückt wird. Die Pullup-Widerstände sind aktiv und die Eingänge auf High Pegel. Der extern angeschlossene Schalter zieht den Pegel gegen Masse. Im Debugger vom AVRstudio läuft das Programm einwandfrei.
Wird der Controller jedoch in die Schaltung eingesetzt, dann springt der Schrittmotor sporadisch kurz an. Der Controller springt also in die Ansteuerroutine für den Schrittmotor. Der einzige Anlaß, daß dies passieren kann ist allerdings ein Sinken des Pegels am Eingang des PortD, was ja eigentlich durch die Pullup-Widerstände verhindert werden soll.
Könnte es sein, daß man sicherheitshalber extern noch Pullup-Widerstände anschließen sollte um auf Nummer sicher zu gehen, weil die internen eventuell probleme machen können?
Der Eingang am PortD wird übrigens zyklisch über Polling abgefragt, also nicht über einen Interrupt.