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 

 Ein stück lesen und dann KONKRETE Frage stellen Kategorie: C-Control I V1.1 (von sl - 10.12.2004 23:04)
 Als Antwort auf Re: Speichertaste für dieses Programm von Peter - 10.12.2004 18:40
Hallo Peter,

Deine Beschreibung mit Speicherplatz lÀsst mich vermuten dass Du Dir das abspeichern der Werte
anders vorstellst als es in Programmiersprachen (so auch in cc-basic) tatsÀchlich gemacht wird.

Speicherplatz lÀsst mich vermuten, dass Du Dir das Àhnlich wie einem Fernseher vorstellst wo man
die Programme (=Frequenzen) auf einen bestimmten "Speicherplatz"  = Programmplatz speichert

Diese Vorstellung ist fĂŒrs Programmieren wenig hilfreich. Vor allem weil sowas nicht mit ein, zwei Befehlen
zu realisieren ist, sondern mit einem kleinen Unterprogramm das mehr als zwei Befehle enthÀlt.

erst mal Kommentare die das Programm erlÀutern sollen (ob Du es schon verstehst ist eine zwete Frage):

define TasterA1 port[1] 'gebe dem Hardware-Eingang "1" den Namen "TasterA1"
define TasterA2 port[2] 'gebe dem Hardware-Eingang "2" den Namen "TasterA2"

define TasterB1 port[3] 'gebe dem Hardware-Eingang "3" den Namen "TasterB1"
define TasterB2 port[4] 'gebe dem Hardware-Eingang "4" den Namen "TasterB2"

define AusgangA DA[1] 'gebe dem Hardware-AALOG-Ausgang "1" den Namen "AusgangA"
define AusgangB DA[2]  'gebe dem Hardware-AALOG-Ausgang "2" den Namen "AusgangB"
define WertA word   'definiere eine Variable mit Namen "WertA"
define WertB word    'definiere eine Variable mit Namen "WertB"


WertA = 0 'setze die Variable names "WertA" auf den Wert 0
WertB = 0 'setze die Variable names "WertB" auf den Wert 0

#Loop 'definiere die Zeichenfolge "loop" als "Programmstellenmarkierung"

  if (Not TasterA1) then WertA = WertA - 1 'wenn am Eingang namens "TasterA1" 0V anliegen mache folgendes:

nimm den aktuellen Wert der Variable namens "WertA" und ziehe von diesem den Wert "1" ab

speichere das Ergebnis in der Variable namens "WertA"

das bedeutet immer wenn der Taster der am Eingang "TasterA1" (entspricht Hardwareeingang "1" = port[1]
dann wird der Wert der Variable namens "WertA" um eins verkleinert

  if (Not TasterA2) then WertA = WertA + 1
  if (Not TasterB1) then WertB = WertB - 1
  if (Not TasterB2) then WertB = WertB + 1

  if WertA < 0 then WertA = 0 ' wenn aus der Berechung oben ein Wert kleiner als null entstanden ist
setze den Wert auf 0

  if WertA > 255 then WertA = 255  ' wenn aus der Berechung oben ein Wert grösser als 255 entstanden ist
setze den Wert auf 255

  if WertB < 0 then WertB = 0
  if WertB > 255 then WertB = 255


  AusgangA = WertA 'setze den Analogausgang namens "AusgangA" auf den Wert der Variable "WertA"

  AusgangB = WertB 'setze den Analogausgang namens "AusgangB" auf den Wert der Variable "WertB"

goto Loop 'springe zu Programmstellenmarkierung namens "loop"

end

so das ist jetzt erst mal ne grobe Beschreibung was die einzelnen Programmzeilen machen

Die Namen die dabei verwendet werden enthalten typische "AnfÀngerfehler"
keine Frage das Programm funktioniert. Fehler insofern das die Namen schlecht verstÀndlich sind

Jetzt werden mir gleich etliche Programmier-"Profis" widersprechen

"wieso wenn man's drauf hat dann versteht man das doch ?"

Meine Meinung dazu: der richtige Profi vergibt selbsterklÀrende Namen
damit er auch in 10 Jahren noch ein Programm mit 25.000 ! richtig gelesen fĂŒnfundzwanzigTAUSEND !!
Zeilen versteht. (Das ist die Grössenordnung mit der ich es beruflich zu tun habe)
Und das geht nur mit selbsterklÀrenden Namen und ergÀnzenden Kommentaren

so jetzt dasselbe Programm auf diese Art

define Taste_gedrueckt OFF
' wenn Taste gedrueckt wird liegt am Eingang 0 Volt an. 0Volt hat den "Digitalwert" "OFF"
der Digitalwert "OFF" entspricht  = not Digitalwert "ON"

define Taster_SteuerwertA_kleiner port[1]
define Taster_SteuerwertA_groesser port[2]

define Taster_SteuerwertB_kleiner port[3]
define Taster_SteuerwertB_groesser port[4]

define AusgangA DA[1]
define AusgangB DA[2]

define SteuerwertA word
define SteuerwertB word


SteuerwertA = 0
SteuerwertB = 0

#Schleifen_Anfang

  if Taster_SteuerwertA_kleiner = Taste_gedrueckt then SteuerwertA = SteuerwertA - 1

  if Taster_SteuerwertA_groesser = Taste_gedrueckt then SteuerwertA = SteuerwertA + 1

  if Taster_SteuerwertB_kleiner = Taste_gedrueckt then SteuerwertB= SteuerwertB - 1

  if Taster_SteuerwertB_groesser = Taste_gedrueckt then SteuerwertB = SteuerwertB + 1

  if SteuerwertA  < 0 then SteuerwertA  = 0
  if SteuerwertA  > 255 then SteuerwertA  = 255

  if SteuerwertB < 0 then SteuerwertB = 0
  if SteuerwertB > 255 then SteuerwertB = 255

  AusgangA = SteuerwertA  
  AusgangB = SteuerwertB

goto Schleifen_Anfang

end

damit wird es schon ein bisschen besser verstÀndlich was das bisherige Programm macht

Werte speichern funktioniert ĂŒber das Stichwort "speicher"

gib "speicher" in die Suchfunktion der Hilfe der C-Control-PC-Software ein
lies, probiere evtl. selber etwas aus und dann stelle eine KONKRETE Frage

Das dĂŒrfte eines der lĂ€ngeren Postings sein die in diesem Forum geschrieben wurden
und dennoch erklÀrt es noch nicht alles.

Ganz offen und ehrlich: ich habe jetzt keinen Bock
Dir hier einen kompletten Basickurs reinzutasten noch ein fertiges Programm und da ich nicht
hellsehen kann was Du durch nachlesen verstehst bzw. wie ausfĂŒhrlich die ErklĂ€rungen sein mĂŒssen.

Deshalb musst Du Dich jetz schon bequemen das oben geschriebene mal nachzulsen und dann wieder
 KONKRETE Fragen zu posten

KONKRETE Fragen zu beantworten macht nÀmlich Spass

so long

sl



>
> >
> > > Habe hier ein kleines Programm fĂŒr die Ansteuerung der PWM AusgĂ€nge gefunden .Leider hat das Programm keine Möglichkeit die eingestellten Werte abzuspeichern.Da ich absoluter Beginner bin ,weiss ich mir hier nicht zu helfen .Vielleicht kann mir jemand einen Tip geben ,wie man die beiden Werte A und B zusammen auf eine weitere Taste abspeichern kann .Beim Start der C-Control sollte dann der Wert der ersten Speichertaste in Kraft treten !
> > > Weitere Speichertasten (wenn möglich ) wÀre toll , wie soll ich`s machen .
> >
> > BeschÀftige Dich mit den Befehlen:
> >
> > open#, print#, input#, close# fĂŒr das (dauerhafte) Abspeichern der Werte.
> >
> > damit ist das leicht zu lösen. Alles was Du  dafĂŒr wissen musst, steht in den Hilfedateien.
> > Programmieren muss man lernen. Fertige Lösungen gibt es kaum. Anregungen und Beispiele,
> > die das Lernen leichter machen aber in rauhen Mengen (siehe auch die nebenstehenden Links).
> >
>
> Danke fĂŒr den Tip ,
>
> wenn ich Dir sage ,wielange ich das Teil schon auf dem Tisch liegen habe ,dann wirst du mich zum Tr.... abstempeln .....  :-]]  ,
> ich habe schon viele NĂ€chte und Stunden im Netz gesucht und schon einiges probiert ,aber mir fehlt einfach der gewisse Schups,ich muss das einfach mal in der Praxis sehen und dann dran rumprobieren ! Anders komm ich leider nicht zurecht damit und kann den Sinn der einzelnen Befehle nicht verstehen .
> Trotz Allem bleibe ich am Ball ,vielelicht kann mir doch mal jemand den passenden Tip geben .
> Vielleicht kannst du mir sagen ,welchen Befehl ich fĂŒr einen Speicherplatz benötige ?
> Oder wie man ihn anlegt ,bzw wie man da was abspeichern kann?
>
>
> Danke vorab ,
>
> Gruß Peter
>
>
> >
> > GrĂŒĂŸe
> > Henrik
>

 Antwort schreiben

Bisherige Antworten:

Re: Ein stück lesen und dann KONKRETE Frage stellen (von Peter - 11.12.2004 20:26)
    Re: Ein stück lesen und dann KONKRETE Frage stellen (von Stefan Tappertzhofen - 11.12.2004 21:04)
Re: Ein stück lesen und dann KONKRETE Frage stellen (von Peter - 11.12.2004 1:40)