-
        

Ergebnis 1 bis 4 von 4

Thema: Tiny13

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    14.03.2006
    Beiträge
    35

    Tiny13

    Anzeige

    Hallo Leute,
    mir ist ein Tiny13 in die Hände gefallen und wie ich nun mal bin habe ich versuch ein kleines Programm dafür zu schreiben.
    Leider scheint Bascom nich damit zu arbeiten. Ich bekomme nur jede Menge Fehlermeldungen.

    Code:
    ' einfache Zeitsteuerung mit ATTiny13
    
    $regfile = "ATtiny13.DAT"                                   'ATTiny13-Deklarationen
    $crystal = 1000000
    
    Ddrb = &10001                                               'Bit 0 und 4 auf Ausgang alle anderen auf Eingang
    Portb = & 01110                                             'alle eingänge mit Pullup versehen
    
    
    Led Alias Portb.0
    Dip2 Alias Pinb.1
    Ein Alias Pinb.2
    Dip1 Alias Pinb.3
    Aus Alias Portb.4
    Res Alias Pinb.5
    
    Dim Z As Byte
    
    Start1:
    
    
    If Dip1 = 0 And Dip2 = 0 Then Z = 1                         '1 Sekunde
    'End If
    If Dip1 = 1 And Dip2 = 0 Then Z = 2                         '2 Sekunden
    'End If
    If Dip1 = 0 And Dip2 = 1 Then Z = 60                        '1 Minute
    'End If
    If Dip1 = 1 And Dip2 = 1 Then Z = 120                       '2 Minuten
    'End If
    
    
    Do
    If Ein = 1 Then Goto Ablauf                                 'Warten auf Start
    Loop
    
    
    Ablauf:
    
    Led = 1
    Wait 500ms                                                  'Led ein
    Led = 0
    Wait 500ms                                                  'Led aus
    Z = Z - 1
    If Zeit = 0 Then Goto Ausgang                               'prüfen ob Zeit abgelaufen
    'End If
    If Ein = 0 Then                                             'prüfen ob Start noch 1 ist
       Led = 0                                                  'wenn nicht dann Led aus
       Goto Start1                                              'zurück zum Anfang
    End If
    
    Ausgang:
    Aus = 1                                                     'Ausgang auf 1
    Led = 1                                                     'Led einschalten
    Do
    If Ein = 0 Then                                             'prüfen ob Start noch 1 ist                 '
       Aus = 0                                                  'wenn nicht dann Led aus
       Led = 0                                                  'wenn nicht dann Led aus
       Goto Start1                                              'zurück zum Anfang
    End If
    Loop

    Meine Frage nun:

    Kann man einen Tiny überhaupt in Bascom Programieren und wenn ja was mache ich falsch?

    Gruß
    Rolf

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Aber sicher kann man das.
    Der Tiny13 ist noch recht beliebt für Minischaltungen.

    Zu den Fehlern.

    ddrb-Befehle: Alle 8 Bit angeben und ein "B" für Binär dazu.(Siehe Befehlref.)

    Waitbefehle: Siehe Befehlsref.

    "If Zeit = 0 Then Goto Ausgang"
    Variable ist nicht definiert.


    Out of Space:

    Stacks nicht angegeben.

    Siehe hier
    http://www.roboternetz.de/phpBB2/viewtopic.php?t=28982
    Gruß
    Ratber

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    06.02.2006
    Alter
    53
    Beiträge
    30
    Null Fehler nach Ausbesserung.... Vergleich mal mit Deinem Code, ist aber trotzdem Spagetti...
    Code:
      ' einfache Zeitsteuerung mit ATTiny13
    
    $regfile = "ATtiny13.DAT"                                   'ATTiny13-Deklarationen
    $crystal = 1200000
    $hwstack = 32                                               ' default use 32 for the hardware stack
    $swstack = 10                                               'default use 10 for the SW stack
    $framesize = 40                                             'default use 40 for the frame space
    
    Ddrb = &B00010001                          'Bit 0 und 4 auf Ausgang alle anderen auf Eingang
    Portb = &B0001110                         'alle eingänge mit Pullup versehen
    
    
    Led Alias Portb.0
    Dip2 Alias Pinb.1
    Ein Alias Pinb.2
    Dip1 Alias Pinb.3
    Aus Alias Portb.4
    Res Alias Pinb.5
    
    Dim Z As Byte
    
    Start1:
    
    
    If Dip1 = 0 And Dip2 = 0 Then Z = 1                         '1 Sekunde
    'End If
    If Dip1 = 1 And Dip2 = 0 Then Z = 2                         '2 Sekunden
    'End If
    If Dip1 = 0 And Dip2 = 1 Then Z = 60                        '1 Minute
    'End If
    If Dip1 = 1 And Dip2 = 1 Then Z = 120                       '2 Minuten
    'End If
    
    
    Do
    If Ein = 1 Then Goto Ablauf                                 'Warten auf Start
    Loop
    
    
    Ablauf:
    
    Led = 1
    Waitms 500                              'Led ein
    Led = 0
    Waitms 500                              'Led aus
    Z = Z - 1
    If Z = 0 Then Goto Ausgang              'prüfen ob Zeit abgelaufen
    'End If
    If Ein = 0 Then                                             'prüfen ob Start noch 1 ist
       Led = 0                                                  'wenn nicht dann Led aus
       Goto Start1                                              'zurück zum Anfang
    End If
    
    Ausgang:
    Aus = 1                                                     'Ausgang auf 1
    Led = 1                                                     'Led einschalten
    Do
    If Ein = 0 Then                                             'prüfen ob Start noch 1 ist                 '
       Aus = 0                                                  'wenn nicht dann Led aus
       Led = 0                                                  'wenn nicht dann Led aus
       Goto Start1                                              'zurück zum Anfang
    End If
    Loop

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    14.03.2006
    Beiträge
    35
    Danke für die schnelle Hilfe.

    An die Stacks habe ich überhaupt nicht gedacht.

    Gruß
    Rolf

Berechtigungen

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