Forum: Mikrocontroller und Digitale Elektronik Taster Problem. Mach ich da etwas falsch ?


von noob (Gast)


Lesenswert?

Servus allerseits ^^.

Ich habe einen Taster an den Attiny 2313 angeschlossen, aber irgendwie 
reagiert der MC nicht auf den Tastendruck.


So hab ich das angeschlossen:

                     _
                   __|__ S1
                  /
PD4---------------    -------------------- GND.

Mein Code sieht so aus:

Config Pind.4 = Input
Portd.4 = 1
'//Internetn Pull UP  Widerstand aktivieren

   Do

    If Pind.4 = 0 Then
      Call Null()
    End If
   Loop

Hab es auch mit If Pind.4 = 1 Then... versucht, geht auch nicht.

Bin noch anfänger...

von Franz-Rainer (Gast)


Lesenswert?

Und was passiert bei Call Null()?

Ist das Bascom?

von noob (Gast)


Lesenswert?

Hallo Franz.

Ja das ist Bascom. Bei Call Null wird ebenhalt meine Segment Anzeige zu 
Null ^^. Die Prozedur funktioniert auf jeden fall, ich habe sie schon 
getestet.

von Franz-Rainer (Gast)


Lesenswert?

Bascom hat doch einen Simulator. Funktioniert es dort?

von Franz-Rainer (Gast)


Lesenswert?

Schreib mal:

Config Portd.4 = Input

von noob (Gast)


Lesenswert?

geht leider auch nicht :(

von Franz-Rainer (Gast)


Lesenswert?

Probier mal:

ddrd = &b00000000

von noob (Gast)


Lesenswert?

funktioniert leider auch nicht :(

von EF (Gast)


Lesenswert?

fehlt da nicht ein Pullup-Widerstand ? (auf der Portseite)

von EF (Gast)


Lesenswert?

       Vcc
       |
      | | ca. 4,7K    _
      | |           __|__ S1
       |           /
PD4----o-----------    -------------------- GND.

von EF (Gast)


Lesenswert?

ich sehe gerade, dass du den ja intern aktiviert hast, also vergiss 
meine Anmerkungen

von Franz-Rainer (Gast)


Lesenswert?

Guten Morgen...

Also habe den Code unten eingegeben, und es funktioniert einwandfrei.
Denke es hat was mit deinem  "Call Null()" zu tun.

Config Portb = Output
Config Pind.4 = Input
Portd.4 = 1
'//Internetn Pull UP  Widerstand aktivieren

   Do
    If Pind.4 = 0 Then
     Portb = 0
    Else
      Portb = 255
    End If
   Loop

von Franz-Rainer (Gast)


Lesenswert?

Auch so funktionierts:



Config Portb = Output
Config Pind.4 = Input
Portd.4 = 1           '//Internetn Pull UP  Widerstand aktivieren


Declare Sub Null()
Declare Sub Eins()

   Do
    If Pind.4 = 0 Then
     Call Null()
    Else
      Call Eins()
    End If
   Loop

Sub Null()
   Portb = 0
End Sub

Sub Eins()
   Portb = 255
End Sub

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
Noch kein Account? Hier anmelden.