Deutsch
Forum

CASE als Fehler: Profan 5.0 und Handbuch von 6,0

 

Jens
Hoffert
Hallo, liebe Profan-Gemeinde!,

@Admins:
wie kann ich mein Profil (Avatar und Signatur) denn vervollständigen?
@ Alle:
Hintergrundinformationen:
Ich habe mir für mein Heizungssystem eine UVR 1611 zugelegt. Mit dieser möchte ich den solaren Ertrag der Solaranlage anzeigen lassen. Die Steuerung hat aber als geringste Durchflussrate 0,5 liter pro Zählimpuls.
Der, von mir eingesetzte Durchflusszähler liefert aber 293 Impulse bei 0,5 liter!
Hardwareteiler (Zählergruppen) sind zwar eine (eher aufwendige) Alternative, aber da eh ein (Win-ME) Rechner ständig online mit der Steuerung in Verbindung steht, wollte ich eine - ich nenne es mal: Teilersoftware- zur Impulsgenerierung über die Parallelschnittstelle schreiben.
Dabei bin ich auf Profan gestoßen, was sehr vielversprechend klingt.

Meine Programmierkenntnisse sind aber eher Antiquiert, da ich mein letztes Basic-Programm vor ca. 10 Jahren geschrieben habe! ( Ich weiss gar nix mehr )

Die Geschichte mit INPOUT32.DLL habe ich schon rausgefunden, allerdings habe ich kein, meinen Anforderungen ähnelndes Programm gefunden; naja, schnell mal selbst schreiben.....

NU Meckert er aber rum:Befehl unbekannt

Kann es sein, dass 5.0 selbigenwelchen noch nicht kennt?

CASE @Neq (eingang%,impuls%) : IMPULSE-ZÄHLEN

.......is wohl doch ne Nummer zu hoch für mich......zumindest im Augenblick......

Grüße !!!
..............................................Jens........................................

Ps.: und gute Nacht!!!;............ Mich Wurmts ich kann nit schlafen.......

1 kB
Hochgeladen:02.04.2006
Ladeanzahl59
Herunterladen
 
02.04.2006  
 



Um Dein Profil zu bearbeiten gibts oben im Menü ein Punkt Profil. Oder klicke hier:  [...] 

[hr:dc054c0a79]
Zum Source.

Der Fehler ist wohl die Benennung der Prozedur Impulse-Zählen.

Ich rate von Umlauten ab, und das Minuszeichen ist fatal.

proc CountImpuls <-- tut es auch

Quelltexte kann Du hier in der Community direkt im Beitrag posten.
KompilierenMarkierenSeparieren
 $O+
DEF @OUT32(2) !"INPOUT32.DLL", "Out32"
DEF @INP32(1) !"INPOUT32.DLL", "Inp32"
DECLARE BasAdr%, zahl%, eingang%, impuls%
Let BasAdr% = $378
Let eingang% = 0
Let zahl% =0

Proc Impulse_lesen

    let impuls%=@INP32(BasAdr%)
    CASE @Neq (eingang%,impuls%) : IMPULSE_count

EndProc

Impulse_lesen

Proc Impulse_count

    INC zahl%
    CASE @Equ (zahl%,293) : Sende_impuls

EndProc

Impulse_lesen

Proc Sende_impuls

    @OUT32(BasAdr%, 1)

Endproc

LET zahl% = @SUB (zahl%,293)
Impulse_lesen
 
02.04.2006  
 




Jens
Hoffert
Hallo iF,

Ich habe das Wochenende zum schmökern genutzt, und mein Progrämmle umgeschrieben.

Nun stehe ich vor dem Problem, dass es wegen zu tiefer PROC-Verschachtelung abbricht.

Ich benötige so etwas, wie eine Endlosschleife bei der so lange die Adresse abgefragt wird, bis sich der Wert ändert.
Wie kann ich das lösen?

MfG Jens Hoffert
KompilierenMarkierenSeparieren
 $O+
DEF @OUT32(2) !"INPOUT32.DLL", "Out32"
DEF @INP32(1) !"INPOUT32.DLL", "Inp32"
Declare EinAdr%, Ausadr%, InputVorher%, InputAktuell%, counter%, Output%, Toggle%, nul%
Let EinAdr% = $379
Let AusAdr% = $378
Let InputVorher% = 0
Let InputAktuell% = 0
Let counter% = 0
Let Output% = 0
Let Toggle% = 0
Let nul% = 888
out32 (AusAdr%,128)

PROC Schalten

    Case @equ (Toggle%,0) : Umschalten
    Out32 (AusAdr%,128)
    Let counter = 0
    Let Toggle = 0

ENDPROC

PROC Umschalten

    Out32 (AusAdr%,129)
    Let counter% = 0
    Let Toggle% = 1

ENDPROC

PROC Auslesen

    Inp32 (EinAdr%)
    Let InputAktuell% = EinAdr%
    Let Inputaktuell% = @sub (Inputaktuell%,nul%)
    Case @equ (Inputaktuell%,InputVorher%) : Auslesen

ENDPROC

Let InputVorher% = InputAktuell%
Inc counter%
Case @equ (counter%,3) : Schalten
AUSLESEN
Let InputVorher% = InputAktuell%
Inc counter%
Case @equ (counter%,3) : Schalten
AUSLESEN
end
 
03.04.2006  
 




Rolf
Koch
Hi ganz einfach, indem Du ein paar Kleinigkeiten abänderst:
KompilierenMarkierenSeparieren
Proc Auslesen

    declare ret%
    Inp32 (Einadr%)
    Let Inputaktuell% = Einadr%
    Let Inputaktuell% = @Sub (Inputaktuell%,Nul%)
    case @Equ (Inputaktuell%,Inputvorher%) : ret%=1   Hier wird eine 1 zurückgeliefert, anstatt sich dauernd selbst aufzurufen.

Endproc

Let Inputvorher% = Inputaktuell%
Inc Counter%
Case @Equ (Counter%,3) : Schalten
Auslesen
case %(0)=1:Auslesen        Wenn das Return eine 1 ergab wieder rein!
Let Inputvorher% = Inputaktuell%
Inc Counter%
Case @Equ (Counter%,3) : Schalten
Auslesen
case %(0)=1:Auslesen      Wenn das Return eine 1 ergab wieder rein!
End
 
03.04.2006  
 




Jens
Hoffert

KompilierenMarkierenSeparieren
case @Equ (Inputaktuell%,Inputvorher%) : ret%=1   Hier wird eine 1 zurückgeliefert, anstatt sich dauernd selbst aufzurufen

habe alles mögliche versucht, aber ich bekomme es einfach nicht hin!
bei ret%=1 schmeisst Profan mir nen Fehler entgegen.
Habs auch mit return, let ret%=1 usw. versucht u.a. auch mit waitscan, es will nit
Ich benötige irgendwie die ständige Überwachung der Werte 888 und 889 der Parallelportadresse,
wobei nur bei wechsel von 888 zu 889 oder 889 zu 888 ein fortsetzen des Progs erfolgt.

hat jemand noch ne Idee??

Gruß Jens

ps.: ich hoffe, ich Nerv nicht - bin blutiger Anfänger.....
 
04.04.2006  
 




Rolf
Koch
SOOOORRY zwei Fehler von mir, denn ich habe in der Tat Return vergessen - so gehts, wenn man einen ungetesteten Code verschickt
KompilierenMarkierenSeparieren
Case @Equ (Inputaktuell%,Inputvorher%) : Ret%=1 Hier wird eine 1 zurückgeliefert, anstatt sich dauernd selbst aufzurufen.
Return ret%

Ausserdem muss es unten lauten:
KompilierenMarkierenSeparieren
So sollte es aber funktionieren. Was meint denn Profan? Die Fehlermeldung ist doch hoffentlich nicht geheim *lol*

Rolf
 
04.04.2006  
 




Jens
Hoffert
Ich Danke Euch für die Hinweise und Tipps!!
Das Programm macht sogar das, was ich mir vorgestellt habe!

Auf die while, -, wend-Schleife muss man erst mal kommen.... ist zwar nicht im Sinne des Erfinders , aber hauptsache es geht. ( vorerst mit einer Teilereinheit pro Schnittstelle)
Mal sehen, welche Fragen die mehrfachauswertung noch aufwirft....
....werde das Progrämmle zum Wochenende mal testen...

Gruß Jens
 
06.04.2006  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.619 Betrachtungen

Unbenanntvor 0 min.
bastler17.01.2011

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

Jens Hoffert (4x)
Rolf Koch (2x)
iF (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie