Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Neues Programm überschreibt altes nicht! Kategorie: Programmierung Basic (von Rudi - 17.05.2010 18:30)
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

Bisherige Antworten:

Re: Neues Programm überschreibt altes nicht! (von Joe - 18.05.2010 18:32)
    Re: Neues Programm überschreibt altes nicht! (von Rudi - 19.05.2010 9:37)