Hallo Freunde.
Wirklich keine Ahnung, woran es lag, aber jetzt plötzlich funktioniert die Variablendeklaration eines Ports. Hier der funktionsfähige Code eines Testprogramms:
Code:$regfile = "m8515.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '------------------------------------------------------------------------------- ' *** Konfiguriere Ein- und Ausgangsports *** Config Porta = Input Config Portb = Output Porta = &HFF ' Aktiviert die internen Pullup-Widerstände Portb = &HFF ' schaltet alle Ausgänge 1, LED = 0 Portc = &HFF Portd = &HFF '------------------------------------------------------------------------------- ' *** Deklarieren der Variablen *** Dim Zaehler As Byte '------------------------------------------------------------------------------- ' *** Deklarieren der Subroutinen *** Declare Sub Test_1 Declare Sub Test_2 '------------------------------------------------------------------------------- ' =============================== ' ***** Hauptprogramm ***** ' =================================== Do Zaehler = Pina Select Case Zaehler Case &B11111110 : Call Test_1 Case &B11111101 : Call Test_2 End Select Loop Sub Test_1: Toggle Portb.2 Waitms 200 End Sub Test_1 Sub Test_2: Toggle Portb.4 Waitms 200 End Sub Test_2 End
Es funktioniert sogar so gut, dass ich nun auch vermutlich den vermeintlichen "Fehler" bei der Timer-Steuerung gefunden habe. Das Programm läuft ja immer wieder ab, solange die Bedingung an den Eingängen TRUE ist. Bei älteren, ersten Programmversuchen hatte ich immer das Problem, dass das Programm nur solange lief, wie die ISR bestand. Am Ende der ISR wurde die Bedingung aber nicht erneut geprüft, sondern das Programm hielt einfach an. Dadurch musste ich While-Wend-Schleifen einbauen, um damit das Programm die ISR immer wieder durchlief.
Eröffnet mir nun viele neue Möglichkeiten. Wenn ich Probleme dabei habe, melde ich mich sofort wieder.
Danke euch beiden.
LG - Maik







Zitieren

Lesezeichen