So hier mal ein kleiner Zwischenstatus des Projektes (Ohne Breakout-Detection):
Schaltplan:
http://www.filedealer.com/freeupload...e362c21a3c.pdf

Quellcode für den Tiny24:
Code:
'Mikrocontrollereinstellungen:
$regfile = "attiny24.dat"                                   'Einstellen des verwendeten Chips
$crystal = 8000000                                          'Taktfrequenz (hier der Takt aus dem
                                                             'internen kalibrierten Oszillator
'Variablen:
Dim Gang As Byte                                            'Festlegen der Variable und des Types

'Ports:
Config Porta = Output                                       'PortA wird als Ausgang festgelegt
Config Pinb.0 = Input                                       'Neutralstellung
Config Pinb.1 = Input                                       'Signal vom Sensor "oben"
Config Pinb.2 = Input                                       'Signal vom Sensor "unten"


Declare Sub Nullstellung                                    'Deklarieren der Sub-Programme
Declare Sub Schalten

Gang = 0                                                    'Variable "Gang" wird auf 0 gesetzt

Do                                                          'Das eigentliche Do-Loop Programm
   If Pinb.0 = 1 Then Call Nullstellung Else Waitms 1000    'Abfragen des Ports für Neutralstellung
                                                               'und ausführen der entsprechenden Sub-Routine
   If Pinb.0 = 0 Then Call Schalten Else Waitms 1000        'Low-Abfrage für den Port für die Nullstellung


   If Gang = 1 Then Ddra = &B00110000 Else Waitms 100       'Anzeigen des Variablenwertes auf der
                                                              '7-Segment Anzeige

   If Gang = 2 Then Ddra = &B01101101 Else Waitms 100


   If Gang = 3 Then Ddra = &B01111001 Else Waitms 100


   If Gang = 4 Then Ddra = &B00110011 Else Waitms 100


   If Gang = 5 Then Ddra = &B01011011 Else Waitms 100


   If Gang = 6 And Pina.7 = 0 Then Ddra = &B00011111 Else Waitms 100


Loop
End                                                         'Programmende

Sub Nullstellung                                            'Festlegen der Sub-Programme
   Gang = 0                                                 'Gang wird auf 0 gesetzt
   If Pinb.2 = 0 Then Gang = Gang + 1 Else Waitms 100       'Gang wird um eins erhöht wenn der
                                                              'untere Hall-Sensor aktiviert wird
   If Pinb.1 = 0 Then Gang = 2 Else Waitms 100              'Gang wird auf 2 gesetzt wenn der
                                                              'obere Hallsensor auf GND gezogen
                                                              'wird (falls man direkt von Neutral auf 2 Schaltet)
End Sub                                                     'Sub-Programm Ende

Sub Schalten(byval Gang As Byte)                            'Festlegen des zweiten Sub-Programmes
   If Pinb.1 = 0 Then Gang = Gang + 1 Else Waitms 100       'Gang wird um 1 erhöht wenn der obere
                                                              'Sensor gegen GND gezogen wird
   If Pinb.2 = 0 Then Gang = Gang -1 Else Waitms 100        'Gang wird um 1 verringert wenn der
                                                              'untere Sensor gegen GND gezogen wird
End Sub                                                     'Sub-Programm Ende
Und ist der $EEPROM Befehl im Bascom dafür da das interne EEPROM des Controllers zu beschreiben?