
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Community! Bin ziemlich ratlos: habe ein Servo an der C-Control angeschlossen und ein kleines Testprogramm geschrieben. Das funktionierte in dieser 1.Version einwandfrei. Danach habe ich das Programm erweitert (2.Version); auch in dieser Version alles o.k. Nach einer 3. Erweiterung/Version macht das Programm nicht mehr das, was ich will und läßt sich auch nicht mehr mit einem beliebigen anderen Programm überschreiben! Es bleibt bei der 3.Version. Bei der Übertragung irgendeines Programms scheint offensichtlich alles ok zu sein (Workbench-Übertragungsfenster ok, die RS232-LED blitzelt auch ca. 1 sec, aber nach Reset und Start läuft wieder das Testprogramm in der 3. Version ab. Frage: kann man den Programmspeicher löschen?? Hab ich vielleicht mit meiner Tabelle einen Überlauf hervorgerufen (in der 3.Version 3 Tabellen mit je 50 Bytes)?? Bitte um Hilfe! lg Rudi ps: es handelt sich um eine Servosteuerung für einen Bahnschranken, der handgekurbelt mehr oder weniger in der Bewegung ruckelt. Das hab ich über eine Wertetabelle realisiert, die dem Servo den Drehwinkel vorgibt. Das ist das Testprogramm der 1.Version: define SERV1 da[1] define SERV2 da[2] define LIGHT port[16] 'Display Hintergrundbeleuchtung '-------------------------- '---- SYSTEM MEMORY ------- '-------------------------- define WERT1 byte[1] define SCHRITT byte[2] goto MAIN '------------------------------------------------- '-- SERVO MODE AKTIVIEREN - '------------------------------------------------- FUNCTION SERVOMODE() CONFIG.INIT CONFIG.PUT 00000001b CONFIG.OFF END FUNCTION '------------------------------------------------- '-- DISPLAY DATA LOOP - '------------------------------------------------- #MAIN SERVOMODE() LCD.INIT LIGHT=off SCHRITT=1 #LOOP FOR SCHRITT = LBound(MyTab) TO UBound(MyTab) WERT1 = Looktab(MyTab, SCHRITT) 'Nächsten Tabellenwert ermitteln SERV1 = WERT1 'Wert testweise an beide Servos SERV2 = WERT1 LCD.POS 1,1 LCD.PRINT "SERVO1: " LCD.PRINT WERT1 'Servowert anzeigen LCD.PRINT " " 'Rest der Zeile löschen LCD.POS 2,1 LCD.PRINT "STEP: " LCD.PRINT SCHRITT 'Tabellenindex anzeigen LCD.PRINT " " 'Rest der Zeile löschen Pause 3 'x sec warten NEXT SCHRITT SCHRITT = 1 Pause 50 goto LOOP Table MyTab 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200 205 210 215 220 225 230 235 240 245 250 240 250 240 255 End Table |
| Antwort schreiben |