
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo Jens! ich habe eine Mini mit 16 Pins. Der Port ist über DIP oder Jumper mit GND verbunden. Mein Programm sieht so aus: DEFINE J1 PORT[1] 'AD PORT DEFINE J2 PORT[2] 'AD PORT DEFINE J3 PORT[5] 'AD PORT ' --- ABFRAGE JUMPER / DIPSCHALTER ------------------------------------------ IF J1 = ON AND J2 = ON AND J3 = ON THEN GOTO STUFE000 IF J1 = OFF AND J2 = ON AND J3 = ON THEN GOTO STUFE100 IF J1 = ON AND J2 = OFF AND J3 = ON THEN GOTO STUFE010 IF J1 = ON AND J2 = ON AND J3 = OFF THEN GOTO STUFE001 #STUNFE000 Programm... GOTO STUFE000 #STUNFE100 Programm... GOTO STUFE100 #STUNFE010 Programm... GOTO STUFE010 #STUNFE001 Programm... GOTO STUFE001 Problem: Stufe 000, 100 und 010 funktionieren. Alle Stufen ab 001... gehen nicht und der Micro bleibt hängen. Was ist mein Fehler? LG Martin > Hallo Martin! > > Anbei mal ein Lösungsansatz, getestet mit der Open-Micro. Mit dem DIP-Schalter an Port[3] wirst Du Probleme bekommen, das wird so nicht funktionieren, hier musst Du einen anderen Port verwenden. > > JG Jens > > > ' --- Betriebssystem konfigurieren ----------------------------------------------------- > include "om10.inc" ' Betriebssystem Daten laden > RunOnErr = on ' bei Fehler Programm neustarten (Fehler in ERR) > > ' --- definition der Ports -------------------------------------------------- > define RS232 Port[1] ' Serielle Schnittstelle > define Dip1 Port[2] ' Dip1 > define Dip2 Port[4] ' Dip2 > define Dip3 Port[5] ' Dip3 > > ' --- definition der Variablen ---------------------------------------------- > define PrgMode Byte[1] ' Programmverzweigung > DEFINE Bit0 Bit[1] ' Bit0 vom Byte PrgMode > DEFINE Bit1 Bit[2] ' Bit1 vom Byte PrgMode > DEFINE Bit2 Bit[3] ' Bit2 vom Byte PrgMode > > ' --------------------------------------------------------------------------- > ' --- Hauptprogramm --------------------------------------------------------- > ' --------------------------------------------------------------------------- > print "Progtramm gestartet..." ' Textausgabe > #Loop > Gosub DipAbfrage ' Dip-Schalter abfragen > Print "Mode = ";PrgMode ' Textausgabe > Pause 50 ' 1 Sekunde warten > Goto Loop > End > > #DipAbfrage > PrgMode = 0 ' Reset - alle Bits löschen > if (not Dip1) Then Bit0 = ON ' Bit0 setzen > if (not Dip2) Then Bit1 = ON ' Bit1 setzen > if (not Dip3) Then Bit2 = ON ' Bit2 setzen > return |
| Antwort schreiben |