PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pull Up Widerstände funktionieren nicht



Fabi1234
15.08.2007, 01:04
Hi,

ich bin noch relativ neu in der Bascom Programmierung. Ich hab folgendes Problem, um mir externe Pull Down Widerstände zu sparen, versuche ich gerade die internen Pull Up Widerstände zu verwenden, aber anscheinend wollen sie bei mir nicht tun. Das Programm läuft einfach durch, wie wenn meine Tastendruckbedingungen garnicht da wären.

Was hab ich falsch gemacht? Das Programm werde ich unten anhängen, danke für eure hoffentlich zahlreichen Tipps. Das Programm sieht ziemlich wüst aus vom Aufbau her, hoff mal das meine Kommentare weiterhelfen werden.

Gento
15.08.2007, 06:13
Deine Soft schaut ein wenig 'grausam aus....gosub....gosub usw.
Aber egal.

Im Kopf:
Config Pinc.0 = Input 'Taster 1

Im Programstart/Init:
Portc.0 = 1 'Taster 1 Pullup auf + setzen.

Das klappt bei mir und sollte auch bei Dir gehen.

Gento

for_ro
15.08.2007, 08:28
Deine Soft schaut ein wenig 'grausam aus....gosub....gosub usw.
Aber egal.
Gento

Was gefällt die an den GOSUBs nicht? Die meisten Anfänger programmieren nicht so strukturiert wie er. Soll er lieber GOTO und IF Orgien benutzen oder den mehrfach benutzten Code anstelle der GOSUBs kopieren?
Ich würde nur die Befehlsgruppen zusammenfassen, wie DIM, ALIAS, CONFIG usw., dass macht das Finden einfacher.

Ansonsten denke ich auch, dass es funktionieren müsste, wenn die Taster gegen GND verbinden. Und da wird bestimmt das Problem sein.
Je nach Tasterkannst du auch die Debounce Zeit mal höher setzen.

Dies würde ich einfacher machen:

Incr Count2 '""
Count2a = Count2 And 1
'................................Audiomuting...... ..............................
If Count2a > 0 Then
Muting = 1 'Muting ausschalten
Locate 2 , 11 'Cursor nach rechts versch
Lcd " " 'Nichts anzeigen
Else
Muting = 0 'Muting einschalten
Locate 2 , 11
Lcd "Muted" 'Muting anzeigen
End If
Return

Z.B. so:

Toggle Muting
Locate 2,11
If Muting=1 then
Lcd " "
Else
LCD "Muted"
Endif
Return

Hast du so für jeden Taster in deinem Programm.
Laut Hilfe sollen Einzel-Pins mit PinX.Y Konfiguriert werden, also
Config Pinb.1 = Output

Gruß

Rolf

Fabi1234
15.08.2007, 09:37
Hi,

danke für eure Antworten, leider scheint es zumindest im Simulator immer noch nicht zu tun. Hier mal die neue Version der Software, er springt immer in den Tuner Teil, und führt dann da das Programm aus.

Edit:

Mittlerweile hab ich das Programm mal auf das nötigste reduziert und bin auch selbst ein Stückchen weitergekommen.

Die Pull Up Widerstände funktionieren mittlerweile auch. Die 12 Sek warten am Anfang im Simulator leider nicht.

Leider hab ich immernoch folgendes Problem. Wird das Programm gestartet so arbeitet er trotz den Pull Ups immernoch alle Subroutinen durch. Danach macht das Programm aber das was ich will. Wo hab ich jetzt vielleicht noch was übersehen? Die neueste Version häng ich jetzt mal anstatt der alten unten an.

Fabi1234
17.08.2007, 09:31
Hi, ich bins nochmal. Ich habe heute nochmal das oben gepostete Programm auf den Mc übertragen und das ganze getestet. Jetzt bin ich aber nochmehr verwirrt, als ich es vorher war. Nach dem Programmstart, führt er jetzt erstmal das komplette Programm aus, ohne Rücksicht auf die Tastenabfragen. Eben wie im Simulator. Auch die Standby Anzeige, die Muting anzeige am Anfang und die 12 Sekunden Pause funktionieren (anders als im Simulator).

Der 5 Kanal und das Muting lassen sich dann jetzt auch endlich so schalten, wie ich es will. Der Rest der Kanäle jedoch reagiert garnicht auf die Tastendrücke. Auf dem LCD wird aber angezeigt, dass alle Kanäle gerade aktiv sind und die Relais sind auch alle durchgeschaltet.

Vielleicht noch ne Information über den Anschluss der Taster. Ich hab alle über eine Leitung an Masse angeschlossen der Rest ist direkt an den Eingängen des Atmega über nen Flachbandkabel angeschlossen.

Langsam werde ich ziemlich ratlos, hat vielleicht jemand noch ne Idee warum das Programm nicht so tut wie es soll. Als Bascom Version hab ich die 1.11.8.7.

Danke schonmal für alle weiteren Antworten.

repi64
17.08.2007, 12:46
Hi,
habe mir dein Prog nicht zu genau angeschaut aber auf Port C liegt der JTAG, der Werksseitig enabled ist.
Also das Fusebit für JTAGEN disablen.

Fabi1234
17.08.2007, 14:23
Vielen Dank Repi

Genau das wars, jetzt tut alles so wie es soll.

Edit:
Sorry noch nen bisschen Offtopic, welches Fusebit muss ich den im Bascom Simulator setzen, dass er da das Jtag Interface deaktiviert?