Re: Fehlermeldung: erwartete 'OEF' Kategorie: Programmierung Basic (von Markus - 5.12.2012 23:06) | ||
Als Antwort auf Re: Fehlermeldung: erwartete 'OEF' von Jürgen A. - 5.12.2012 16:08 | ||
| ||
> > > > > > Hallo, > > > > > > > > > > > > ich bin absoluter Neuling beim Programmieren mit BASIC. Bei jedem Versuch ein Programm > > > > > > zu Kompilieren wird die Fehlermeldung > > > > > > "Syntax Fehler - erwartete 'EOF' , gefunden 'define'" > > > > > > angezeigt > > > > > > > > > > > > Mein Miniprogramm zum Ausprobieren lautet im Moment : > > > > > > > > > > > > define eingang1 PORT[1] > > > > > > define eingang2 PORT[2] > > > > > > define ausgang3 PORT[3] > > > > > > > > > > > > Sub main() > > > > > > If eingang1 = True > > > > > > And eingang2 = True > > > > > > Then ausgang3 = True > > > > > > Else ausgang3 = False > > > > > > End If > > > > > > > > > > > > End Sub > > > > > > > > > > > > Ich programmiere mit C-Control Pro IDE eine C- Controll Pro Mega 128 > > > > > > > > > > > > Beim Doppelklicken auf den Fehlercode wird immer die erste beschriebene Programmzeile markiert. > > > > > > Bei "gefunden" im Fehlertext wird immer das erste Wort im Programm angezeigt. > > > > > > > > > > > > Was muss ich tun, dass dieses Problem nicht mehr Auftaucht. > > > > > > > > > > > > > > > > > > Vielen Dank im Vorraus > > > > > > Markus > > > > > > > > > > > > > > > > Hallo Markus, > > > > > > > > > > die Syntax die Du benutzt ist nicht kompatibel zur C-Control Pro. Stammt die vielleicht > > > > > von der C-Control I? Bitte schau in die Demoprogramme die mitgeliefert werden. > > > > > > > > > > Gruss Peter > > > > > > > > > > > > Hallo Peter, > > > > Danke für die schnelle Antwort. Ich werde mich mal durch die Demoprogramme wühlen. Wei�t du ob > > > > es irgendwo ein Dokument gibt in dem der Syntax der C-Control Pro anschaulich und allgemein > > > > gehalten aufgelistet ist? > > > > > > > > Gru� Markus > > > > > > Hallo Markus, > > > > > > die Syntax des BASIC ist an Visual Basic angelehnt. Im Handbuch ist unter > > > Compiler die Syntax knapp zusammengefasst. Schau Dir mal eine Einführung > > > in ein älteres Visual Basic an, dann versuch vielleicht mal die Demoprogramme > > > zu verstehen. Einige Features wie Klassen oder Structures werden aber nicht > > > unterstützt. > > > > > > Gruss Peter > > > > > > Danke > > > hi > > bin auch noch nicht so der Mega Programmer, aber > das scheint wirklich ein Code aus der ccBasic Reihe zu sein. > > bei der Mega habe ICH noch keine Zuweisung des Portes auf eine define Alias zuweisung gefunden. > Was nicht hei�en soll das es diese garnicht gibt, mir ist es eben nur noch nicht vor die Augen > gekommen. > > Deinen Code würde ich, mit meinen geringen wissen zur 128 wie folgt umsetzen. > Ob jetzt 100%ig richtig wei� ich nicht.... denke ja > > #define eingang1 1 'Achte auf die Raute am anfang # PORT[1] etc. gibt > #define eingang2 2 'es soweit ich wei� nicht. > #define ausgang3 3 > > Sub main() > Port_DataDirBit(eingang1,0) 'die richtung des Portes auf Eingang > Port_DataDirBit(eingang2,0) 'die richtung des Portes auf Eingang > Port_WriteBit(eingang1,1) 'Die Funktion Port_WriteBit setzt den Wert > 'eines Pins, der auf Ausgang geschaltet ist. > 'Ist ein Pin auf Eingang geschaltet, so kann der > 'interne Pullup Widerstand eingeschaltet (1) > 'oder abgeschaltet (0) werden. > Port_WriteBit(eingang2,1) ' > > > Port_DataDirBit(ausgang3,1) 'die richtung des Portes auf Ausgang > > Do While(1) 'Endloser Programmlauf, sonst würde es sofort > 'nach C-C Start beendet werden > > If eingang1 = True And eingang2 = True Then > Port_WriteBit(ausgang3,PORT_ON) > Else > Port_WriteBit(ausgang3,PORT_OFF) > End If > End While 'Ende der While schleife > End Sub > > > Ich hoffe ich Anfänger konnte dir etwas helfen, die sache zu verstehen, falls ich mist hier erzähle > bzw. fabriziert habe, darf gern jemand uns auf den rechten Pfad bringen ;) > > Gru� Jürgen Hallo, Vielen Dank für deine Antwort. Leider funktioniert das so auch nicht. Der Kompilierfehler ist zwar behoben (Klar der Syntax stimmt) allerdings ist die Funktion nicht gegeben. Um zu verstehen warum sollte ich folgendes wissen: Mit dem #define Befehl wird doch einer Variable eine Textkonstante zugeordnet - kann diese als Text hinterlegte Zahl überhaupt noch als Zahlenwert verwendet werden? - Wenn Ja, steht dann nicht in der IF Then Funktion nicht If 1 = True And 2 = True Then Port_WriteBit(ausgang3,PORT_ON) Else Port_WriteBit(ausgang3,PORT_OFF) End If ich meine mal gelesen zu haben (bitte korriegieren falsch falsch!!!), dass alle Zahlenwerte die nicht 0 sind True sind. Das würde erklären warum am Ausgang dauernd ein High signal anliegt. falls das soweit alles richtig war müsste diese IF THEN Funktion so lauten: If Port_ReadBit(Eingang1) = True And Port_ReadBit(Eingang2) = True Then Port_WriteBit (Ausgang1,PORT_ON) Else Port_WriteBit (Ausgang1,PORT_OFF) End If leider Funktioniert das so auch nicht! Jetzt kommt nach einer kurzen Zeit nach dem Start drücken der Ausgang. Beim Betätigen des Eingang1 passiert nichts. Beim Betätigen von Eingang2 geht der Ausgang aus und kommt wieder nach einer kurzen zeit. Mein Programm lautet: Sub main() ' Variablen deklarieren #define Eingang1 16 #define Eingang2 17 #define Ausgang1 18 ' Ports deklarieren Port_DataDirBit(Eingang1,0) ' Eingang 1 Port_DataDirBit(Eingang2,0) ' Eingang 2 Port_DataDirBit(Ausgang1,1) ' Ausgang Port_WriteBit (Eingang1,1) Port_WriteBit (Eingang1,1) Do While (1) ' Programm starten If Port_ReadBit(Eingang1) = True And Port_ReadBit(Eingang2) = True Then Port_WriteBit (Ausgang1,PORT_ON) Else Port_WriteBit (Ausgang1,PORT_OFF) End If End While End Sub Gru� Markus | ||
Antwort schreiben Antworten: Re: Fehlermeldung: erwartete 'OEF' (von Jürgen A. - 6.12.2012 12:41) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum