Forum: Mikrocontroller und Digitale Elektronik Problem mit vier Tastern am Atmega32


von technicus (Gast)


Lesenswert?

Hi,

hab ein kleines Problem und ich hoffe ihr könnt mir helfen. Ich habe 
vier Taster an einem Atmega32 an dem PortA von 0-3. Alle funktionieren 
bis auf taster zwei, der am Eingang A.1 sitzt. Verdrahtung ist ok. 
Vielleicht findet jemand einen Fehler in meinem Code.

Gruß
Jens


$regfile = "m32def.dat"
$crystal = 1000000

Config Portb = Output

Config Pina.0 = Input
Config Pina.1 = Input
Config Pina.2 = Input
Config Pina.3 = Input

Config Lcdbus = 4
Config Lcd = 16 * 2
Config 1wire = Portd.5

Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , 
Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0

Config Debounce = 100

Dim Ds1820 As Integer
Dim Halb As Byte

Cursor Off
Cls
Locate 1 , 1
Lcd "Temp:"

Do

Debounce Pina.0 , 0 , Schalter1 , Sub
Debounce Pina.1 , 0 , Schalter2 , Sub
Debounce Pina.2 , 0 , Schalter3 , Sub
Debounce Pina.3 , 0 , Schalter4 , Sub


  1wreset
  1wwrite &HCC
  1wwrite &H44
  Waitms 300
  1wreset
  1wwrite &HCC
  1wwrite &HBE
  Ds1820 = 1wread(9)
  1wreset
  Halb = Ds1820 And 1
  Locate 1 , 7
  Shift Ds1820 , Right
  If Ds1820 > 127 Then
    Lcd "-"
    Ds1820 = 256 - Ds1820
    If Halb = 1 Then Ds1820 = Ds1820 - 1
  Else
    Lcd " "
  End If
  Lcd Ds1820 ; ".";
  If Halb = 1 Then
    Lcd "5"
  Else
    Lcd "0"
  End If
  Lcd "C "
  Wait 1

Loop

Schalter1:
Toggle Porta.0
Locate 2 , 1
Lcd "Taster1"
Waitms 500
Return

Schalter2:
Toggle Porta.1
Locate 2 , 1
Lcd "Taster2"
Waitms 500
Return

Schalter3:
Toggle Porta.2
Locate 2 , 1
Lcd "Taster3"
Waitms 500
Return

Schalter4:
Toggle Porta.3
Locate 2 , 1
Lcd "Taster4"
Waitms 500
Return

End

von Hannes Lux (Gast)


Lesenswert?

Hast Du das JTAG-Interface deaktiviert?

...

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.