PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C-Control Pro programmieren - Fehler



Getriebesand
01.09.2013, 16:33
Hallo,

Ich habe mir den Pro bot 128 selbst zusammengelötet und gehe jetzt ans Programmieren.

Hier mein selbstgeschriebenes basic-Programm:

#define Fll 19
PortDataDirBit(19,PORT_OUT) 'Lampe vorne links
Sub main()

Do While True 'Endlosschleife
Port_WriteBit(FLL,PORT_ON) 'Lampe blinkt
AbsDelay(1000) 'im Sekundentakt
Port_WriteBit(FLL,PORT_OFF)
AbsDelay(1000)
End While

End Sub

Der Fehler: Beim kompilieren kommt in der IDE der Fehler
"Syntaxfehler -erwarte 'EOF' - gefunden PortDataDirBit"
Wenn ich PortDataDirBit durch EOF ersetze, kommt der selbe Fehler!:(:confused:
Meine IDE Version ist 1.71.
Weiß jemand was da los ist?

Getriebesand

Wsk8
01.09.2013, 18:31
Meine Basic-Kenntnisse sind zwar etwas eingerostet, aber es wäre mir neu, dass es hier #define ... gibt.

mfg

Getriebesand
02.09.2013, 15:40
Hallo
Mit #define kann man ports benennen, zum Bleistift port 19 (Lampe vorne links) FLL.
wenn ich das weglasse, geht´s auch nicht!

Es kann sein, dass es ein paar Tage dauert, bis ich auf einen Beitrag anworten kann.

getriebesand

Peter(TOO)
02.09.2013, 16:24
Hallo Getriebesand,

Da hast du wirklich etwas Sand im Getriebe.

EOF = End Of File

Der Compiler hat bestimmte Merkmale, an welchen er erkennt, wann das Programm logisch zu ende ist.

Typisches Beispiel ist eine offene Klammer "(", da muss irgendwo zuerst noch ein geschlossene Klammer ")" zu finden sein. Der Compiler sucht diese dann, möglicherweise bis über das Ende der Textdatei hinaus.
Da wäre die typische Fehlermeldung "unerwartetes EOF"

Ich kenne deinen Compiler nicht, aber möglicherweise muss da als letztes noch ein "END" stehen, damit der Compiler weiss, das fertig mit Übersetzen ist.

Eine andere Möglichkeit ist noch, dass nach "End Sub" einfach noch ein Zeilenvorschub fehlt.

MfG Peter(TOO)

bnitram
02.09.2013, 20:28
Hallo,
Ich besitze selber einen Probot. Hab ihn zwar schon länger nicht mehr programmiert weil ich umgestiegen bin aber ich versuchs mal:

Also ich hab das Programm mal überarbeitet.

#define FLL 19
Port_datadirbit(FLL , Port_out) 'Lampe vorne links
Sub main()

Do While True 'Endlosschleife
Port_writebit( FLL , 0) 'Lampe blinkt
AbsDelay(1000) 'im Sekundentakt
Port_WriteBit(FLL , 1)
Absdelay(1000)
End While

End Sub

Ich denke so sollte es schon ehr funktionieren. Gerade die IDE vom ProBot is sehr empfindlich alleine schon was die Groß- und Kleinschreibung angeht.
Ich hoffe es hilft dir weiter und es funktioniert. Du kannst aber auch gerne auf meiner Pro-Bot Website vorbei schauen.(Link ist in der Signatur)

MfG
bnitram

Getriebesand
05.09.2013, 18:13
Hallo

Habe alle Vorschläge ausprobiert, funkioniert nicht! Immer noch die oben genannte Fehlermeldung!:(:(
Trotzdem danke für die Hilfe.

Getriebesand

Peter(TOO)
05.09.2013, 18:24
Hallo Getriebesand,

Gib mal als allerletztes Zeichen in der Datei ein CTRL-Z (0x1A) ein.

MfG Peter(TOO)

Getriebesand
05.09.2013, 18:42
Hallo Gemeinde,

Danke für die Infos.

Ich antworte hier mal für meinen Sohn. Er ist gerade zwölf Jahre alt geworden, hat den RoboPro schon vor einem Jahr alleine zusammen gelötet und eignet sich jetzt alleine ohne fremde Hilfe das Programmieren an. Ich bin stolz auf ihn, da er meine Ratschläge (rtf : read the f#g handbook) befolgt und sich viel Mühe gibt. Deswegen danke für eure Ratschläge. Ich kann Ihnen leider nicht helfen, da ich von Computern keine Ahnung habe.


Grüße der Vater

Peter(TOO)
05.09.2013, 21:30
Hallo Vater vom Getriebesand,

Der kleine macht das schon richtig, ich habe so mit 9 Jahren, meine ersten Radios zusammengelötet, das war gegen Ende der 60er, das gab's noch keine Mikroprozessoren.
Die Löterei habe ich dann zum Beruf gemacht und über die Mikrokontroller mussten wir auch alles selber lernen, da gab's Mitte der 70er noch keine Bücher wie heute und wenige Leute die man fragen konnte.

MfG Peter(TOO)

Getriebesand
08.09.2013, 15:43
Hallo
wenn das so:

#define FLL 19
Port_DataDirBit(FLL , Port_out) 'Lampe vorne links
Sub main()

Do While True 'Endlosschleife
Port_WriteBit( FLL , 0) 'Lampe blinkt
AbsDelay(1000) 'im Sekundentakt
Port_WriteBit(FLL , 1)
AbsDelay(1000)
End While

End Sub
CTRL-Z (0x1A)

gemeint war, gehts immer noch nicht!:(

getriebesand

bnitram
08.09.2013, 20:39
Hallo nochmal,
setz an den Anfang hinter Sub Main() das hier:
"Pro_bot128_init()"

Das setzt natürlich voraus das du die Lib eingebunden hasst. Wenn du nicht weißt wie das geht, schau dir mal dieses Video an:
http://www.youtube.com/watch?v=uu8cO2b64lM

MfG
bnitram

Croal
08.09.2013, 20:54
Wenn du die Libary einbindest reicht wenn du nur zB.
Do While True
FLL_ON
AbsDelay(1000)
FLL_OFF
End While
schreibst, müsste klappen. In der Libary ist eine Sub routine geschrieben. Wenn du wissen willst wie das richtig geschrieben wird wenn du zB. Eine eigene Sub Routine schreiben willst kannst du in der PRO_BOT_Lib.cbas nachschauen.

Getriebesand
12.09.2013, 17:28
Hallo
Ich habe die Lib jetzt als 2. datei ins Projekt geladen.

Das neue Programm:
Pro_Bot128_init()
Do While True 'Endlosschleife
FLL_ON 'Lampe blinkt
AbsDelay(1000) 'im Sekundentakt
FLL_OFF
AbsDelay(1000)
End While

Dann kommt der bekannte Fehler, und die "Pro_bot128_init()" Zeile wird makiert.

Getriebesand

Croal
12.09.2013, 18:46
Tja , das ist komisch. Eigendlich müsste das funktionieren. Ich tippe mal das du die falsche Libary eingebunden hast. Es gibt nämlich zwei, das eine ist für c und das andere ist für Basic. Die Datei hat die Endung ".cbas."

Nachtrag:
ich habs gerade probiert da ich schon länger nicht mit der IDE gearbeitet habe und der Code funktioniert:

Sub main()

PRO_BOT128_INIT()

Do While True
AbsDelay(1000)
FLL_ON()
AbsDelay(1000)
FLL_OFF()
End While
End Sub

Was wichtig ist das du auf Projekt gehst, dann auf Neu Speichern, dann auf Datei neu hinzufügen, dann datei hinzufügen wobei du dann die Libary einbindest. So ergibt sich ein Stammbaum auf der Seite.

Getriebesand
17.09.2013, 16:51
Hallo
ich habe die .cbas Libary.
Geht trotzdem nicht!:-(

Getriebesand

Wsk8
17.09.2013, 18:41
#define Fll 19

Sub main()


Do While True 'Endlosschleife


Port_WriteBit(Fll,PORT_ON) 'Lampe blinkt
AbsDelay(1000) 'im Sekundentakt
Port_WriteBit(Fll,PORT_OFF)
AbsDelay(1000)


End While


End Sub
Lässt sich bei mir fehlerfrei kompilieren. Musste nichts mit einbinden.

mfg

Getriebesand
23.09.2013, 15:37
Hallo
Funktioniert auch nicht! Da kommt bei mir so was wie "Variable Port_WriteBit nicht definiert".

Getriebesand


Tschuldigung für die späte Antwort...

Wsk8
23.09.2013, 16:08
http://www.conrad.de/ce/de/content/c_control_pro_downloadbereich/C-Control-PRO-Downloadbereich
Installier mal die neueste IDE, kann nur an der liegen.

mfg

Getriebesand
26.09.2013, 15:08
Hallo
jetzt sind die Fehler weg!:-):-)
Aber noch eine Frage: Beim kompilieren kommt im Meldungsfenster "Schreibe Symboldaten-9080 Bytes".
Muss ich dann warten? Oder ist das Kompilieren dann abgeschlossen?

Getriebesand

MeisterSkywalker
21.10.2013, 15:41
Hallo Getriebesand.

Wenn in der Ausgabe "Schreibe Symboldaten - x Bytes" steht ist das Kompilieren abgeschlossen und du kannst das Programm aus deinen C-Control übertragen.
x steht in dem Fall für eine beliebige Zahl (wird umso größer je länger dein Programm ist).

mfg Sky

Getriebesand
22.11.2013, 18:11
Hallo

Danke für die Hilfe!
Das Kompillieren geht jetzt, nur immer wenn ich das Programm starten will, kommt
die Meldung "Hardware antwortet nicht" oder es passiert gar nichts. Mit den
Beispielprogrammen gehts aber!

Weiß jemand wieso?


Das Programm:

#define Fll 19


Sub main()


Do While True 'Endlosschleife


Port_WriteBit(Fll,PORT_ON) 'Lampe blinkt
AbsDelay(1000) 'im Sekundentakt
Port_WriteBit(Fll,PORT_OFF)
AbsDelay(1000)


End While


End Sub




Gruß, Getriebesand

Getriebesand
23.11.2013, 12:33
Hallo
ich habs noch einmal mit der Libary und damit

Sub main()

PRO_BOT128_INIT()

Do While True
AbsDelay(1000)
FLL_ON()
AbsDelay(1000)
FLL_OFF()
End While
End Sub

probiert, jetzt gehts, aber die anderen LEDs gehen auch an und zwar, wenn die Schritte

'Line LED
Port_DataDirBit(Line_LED,PORT_OUT)

'Status LEDs
Port_DataDirBit(FLL,PORT_OUT)
Port_DataDirBit(FLR,PORT_OUT)
Port_DataDirBit(BLL,PORT_OUT)
Port_DataDirBit(BLR,PORT_OUT)

in der Libary abgearbeitet weden.:confused:
Die FLL LED blinkt, wie im Programm vorgeschrieben.

Gruß Getriebesand

Getriebesand
23.01.2014, 15:29
Hallo nochmal

Weiß einer was da los ist??
Ein Fehler in der Lib?

mfg Getriebesand

Getriebesand
24.02.2014, 16:26
Hallo

Ich habe es jetzt ohne die Lib und damit
#define Fll 19

Sub main()


Do While True 'Endlosschleife


Port_WriteBit(Fll,PORT_ON) 'Lampe blinkt
AbsDelay(1000) 'im Sekundentakt
Port_WriteBit(Fll,PORT_OFF)
AbsDelay(1000)


End While


End Sub

probiert und es leuchten immer noch alle Lampen!
Die Lampe vorne links blinkt wie sie soll.

Weiß jemand weiter?

Getriebesand

Getriebesand
09.03.2014, 17:05
Hallo
Ich habe ein neues Problem!
Ihr findet es hier (https://www.roboternetz.de/community/threads/64378-Interpreter-auf-Pro-Bot-128-laden).

Getriebesand