-
        

Ergebnis 1 bis 3 von 3

Thema: Als Neuling noch viele Fragen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.10.2006
    Beiträge
    109

    Als Neuling noch viele Fragen

    Anzeige

    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:
    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
    Edit: Code-Tags verwenden ! (PicNick, Mod. )


    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!

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    wie sindn die schalter und taster angeschlossen? nach masse oder nach 5V?
    und außerdem: was soll der taster bewirken? oder ist der hier noch gar nicht wichtig? die beiden zeilen nach sim sind in jedem falle falsch... die bräuchtest du wenn, dann nach dem input-setzen noch, wenn die taster und schalter nach masse verschaltet sind, damit werden nämlich die internen pullup-rs eingschaltet

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.10.2006
    Beiträge
    109
    Habe inzwischen durch Probieren die Probleme lösen können. Danke für die schnelle Antwort.
    Ist halt am Anfang nicht so einfach wenn man ndie Bascom-Befehle noch nicht richtig beherrscht.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •