Ich habe schon ein paar mal gepostet. Nun das nächste Problem. Mein Attiny2313 reagiert auf keine Tastendrücke die ich an einzelnen Port Pins angeschlossen habe. Die beschriebenen Wege Pins abzufragen die ich bisher gefunden habe führten leider nicht zum Erfolg.
Im Folgenden mal der Quellcode, sieht ziemlich wurschtelig aus aber ich probiere noch:
Edit: Code-Tags verwenden ! (PicNick, Mod. )Code:regfile = "attiny2313.dat" 'ATtiny2313 Prozessor $crystal = 8000000 '8MHz int. Taktquelle '$sim Portd.0 = 1 'Pin2 (Taster) auf Eingabe Portd.1 = 1 'Pin3 (Schalter) auf Eingabe Config Portd.0 = Input 'Pin2 auf Eingabe Config Portd.1 = Input 'Pin3 auf Eingabe Config Lcd = 16 * 1a 'Displayart festlegen. Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 _ , Db6 = Portb.2 , Db7 = Portb.3 _ , E = Portb.4 , Rs = Portb.5 'Anschluss LCD Display Dim T As Byte 'Zeitvorgabe Dim Text1 As String * 8 'Variable für LCD Texte Dim Text2 As String * 8 Dim Xx As Byte Dim P As Bit 'Betriebsart Dim X As Bit Dim Ta As Bit 'Tasterstatus Dim Tas As Bit ' ********** Version anzeigen für 3 Sekunden ********** ' ***************************************************** ' * Es gibt 16*1 Displays die aber im 8*2 Betrieb ar- * ' * beiten!! Dann muss nach 8 Zeichen eine neue Zeile * ' * begonnen werden!! * ' ***************************************************** Cursor Off 'Cursor abschalten. Cls 'LCD Display löschen Locate 1 , 4 Lcd "Timer" 'und Text ausgeben. Diesen Locate 2 , 2 Lcd "V1.0" Wait 3 '3 Sek. anzeigen Cls 'LCD Display löschen ' ****** Schalterstellungsauswertung ****** Anfang: If Pind.1 = 0 Then 'Je nach Schalterstellung wird auf dem Text1 = " 1 Pe" 'Display die jeweilige Betriebsart an- Text2 = "rson" P = 0 'gezeigt. Diese wird auch zur weiteren Ta = Pind.0 'Verarbeitung verwendet. T = 15 '15Min. vorgeben Elseif Pind.1 = 1 Then Text1 = " 2 Per" Text2 = "sonen" 'Dazwischen wird der Status des Tas- P = 1 'ters mehrfach zur weiteren Verarbei- Ta = Pind.0 'tung abgefragt. T = 10 '10Min. vorgeben End If If P = X Then 'Der Display wird dabei nur neu aufge- Ta = Pind.0 'baut wenn sich die Schalterstellung Cls 'ändert. Wait 1 Locate 1 , 3 Lcd Text1 Locate 2 , 1 Lcd Text2 X = Not X End If ' ****** Tasterauswertung ****** 'If Taster = 0 And Tas = 0 Then 'Taster abfragen und Schleife starten. ' Tas = 1 'Nach dem Start den Taster verriegeln ' Goto Schleife 'und erst nach erneutem drücken wieder 'Elseif Taster = 1 Then 'freigeben. ' Tas = 0 'End If Goto Anfang End
Der weitere Programmteil ist noch gar nicht geschrieben. Eigentlich sollte auf dem Display nach der Versionsnummer entweder "1 Person" oder "2 Personen" erscheinen, abbhängig von PinD.1.
Aber nach der Anzeige der Versionsnummer wird der Display gelöscht und dann tut sich nichts mehr!







Zitieren

Lesezeichen