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 

 BITTE BITTE BITTE freq AUSGEBEN lassen Kategorie: C-Control I V1.1 (von sl - 16.07.2004 22:11)
 Als Antwort auf Re: Zähler Variable von IQ250 - 16.07.2004 14:54
> nein die torzeit betrÀgt ja nur 100ms also zÀhlt er in sek 110 mal

Hallo IQ250,

(nomen est omen???)

JEDE P R O F F E S S I O N E L L E
Programmiersprache hat einen DEBUGGER

mit dem man sich:
JEDE VARIABLE,
:den Aufrufstack
den Prozessorstack
Prozessorregister usw.

anschauen kann.

Die professionellste Methode Fehler zu suchen
ist sich IM DETAIL anzuschauen was passiert

also bitte bitte bitte bitte bitte bitte bitte bitte bitte bitte

fĂŒge in das Beispielproggi
die Zeile
PRINT FREQ 'DEBUG-AUSGABE

in der Schleife ein und schau Dir mit Hyperterminal an
WAS fĂŒr eine Frequenz ausgegeben wird.

Du kannst Dir ABSOLUT sicher sein

Ein Programm macht IMMER IMMER IMMER IMMER genau das was man programmiert hat

Es kommt aber des öfteren vor das das Programm etwas
ANDERES macht als was man DENKT

und da hilft es nun mal gar nicht
stÀndig zu sagen "aber es muss doch so wie ich DENKE"

da hilft nur: aufhören zu DENKEN

und statt dessen per print ANALYSIEREN

Du probierst doch gerne rum

dann probier doch mal aus wie das geht mit

print in Hyperterminal Variablen auszugeben

nochmal zu deinem eigenen Programm

sobald die Bedingung "if FREQ >2" erfĂŒllt ist

springt das Programm zu

#run

setzt
a=5

und 10 MILLI-Sekunden = 0,01 Sekunden
spÀter ist das Programm BEENDET

NACH BEENDIGUNG des Programms geht der Variableninhalt VERLOREN

wie wÀre es mit folgender Variante


'--------------------------
'------ I/O PORTS ---------
'--------------------------

define FREQ_IN   port[4]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
define a         byte[1]
define b         byte[2]
'--------------------------------------------------
'-----------  SHOWING FREQUENCY RANGE    ----------
'--------------------------------------------------
'SET COUNTER GATE TIME ( 20ms UNITS )AND MAKE PORT INPUT
#ZĂ€hlerstand
FREQ=200
if FREQ >2 then goto run
b=1
goto ZĂ€hlerstand
#run
a=5
goto run

damit lÀuft das Programm dann weiter

ABER

ohne irgendeine Ausgabe kannst Du immer noch nicht analysieren was ablÀuft

jetzt mal ein Demo dazu

define Eingang1 port[1]
define a byte[1]
define b byte[2]


#Zaehlerstand
FREQ=200
if Eingang1 = ON then goto run
b=1
PRINT b

goto Zaehlerstand
#run
a=5
PRINT a
end

wenn Du dieses Programm im Simulator laufen lÀsst
und Dir im Hauptmenu unter
Ansicht - C-Control Ausgaben Alt-3

anzeigen lÀsst sausen lauter "1" en durch das Fenster

wenn Du jetzt im Fenster

Ansicht -C-Control Digitalports

auf den Port "1" klickst

wird noch GENAU EINE "5" ausgegeben und dann wird das Programm beendet


zweite Variante

define Eingang1 port[1]
define a byte[1]
define b byte[2]


#Zaehlerstand
FREQ=200
if Eingang1 = ON then goto run
b=1
PRINT b

goto Zaehlerstand
#run
a=5
PRINT a
goto run


jetzt sausen lauter "1"en durch das Ausgabefenster
solange man den Digiport "1" in Ruhe lÀsst

sobald Du EINMAL kurz auf
Port 1 geklickt hast
sausen lauter "5" durch das Fenster

so und nun erzÀhl mir nicht das das bei DIR nicht so gehen
wĂŒrde ich habe es eben beim Schreiben des postings GENAUSO durchgetestet.

Wenn es bei Dir etwas anderes macht dann IST etwas anders

ĂŒbrigens es könnte auch folgendes sein

Du hast gepostet

"#ZĂ€hlerstand" mit "Ă€" UMLAUTE versteht der compiler NICHT

du musst Zaehlerstand mit "ae" schreiben
 das könnte es natĂŒrlich auch sein

dann hast Du  Dir das Fenster Meldungen NICHT angeschaut
und ein fehlerhaftes oder gar kein Programm auf die cm ĂŒbertragen

was lerne ich daraus?

Wenn es besonders SCHNELL gehen soll geht es besonders
LANGSAM

(in diesem Fall 14 ! Postings - und Fehler immer noch nicht gefunden)

Erinnere Dich an den Tag an dem Du ganz ruhig und entspannt
warst. (ich lÀchle) Ja wirklich erinner Dich mal

Rufe Dir in Erinnerung wo das war
welche Uhrzeit ist es?
was siehst Du?
was hörst Du fĂŒr GerĂ€usche?
gibt es einen besonderen Geruch?

Erinnere Dich an möglichst viele Details
dann kommt auch dieser ruhige entspannte Zustand wieder

so und nu schlendere mal mit Ruhe daran die Beispiele aus diesem Posting im Simulator nachzuvollziehen.


viele GrĂŒĂŸe

sl

define LED       port[5]
define FREQ_IN   port[4]
define ADC1      ad[1]
define ADC2      ad[2]
define ADC5      ad[5]
define ADC6      ad[6]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------

LED=off
'--------------------------------------------------
'-----------  SHOWING FREQUENCY RANGE    ----------
'--------------------------------------------------
'SET COUNTER GATE TIME ( 20ms UNITS )AND MAKE PORT INPUT
FREQ=5 '100ms
'READ THE COUNTS AND SWITCH LED
#START
IF (FREQ > 150) or (FREQ < 100) then LED=off
IF (FREQ < 150) and (FREQ > 100) then LED=on

PRINT FREQ 'DEBUG-AUSGABE

goto START


 Antwort schreiben

Bisherige Antworten: