Deutsch
Forum

Interrupt

 
- Seite 1 -



dr.dirk
Hallo,

gibt es in Profan die Möglichkeit den Programmablauf über ein Interrupt zu unterbrechen (z.B. Timergesteuert).
Der Timer löst standartmäßig ein "WaitInput" aus. Das kann ich aber so nicht gebrauchen. Mein Programm muß ständig den seriellen Port im "Blick haben" und auf verschiedenste Tasten reagieren. Zwischen all diesen Aufgaben soll das Programm aber nach einer exakten Zeitvorgabe über die serielle Schnittstelle ein Telegramm senden.
Zur Zeit habe ich den "&GetTickCount" Befehl in die Programmschleife eingebaut und berechne die vergangenen ms seit des letzten Aufrufes und wenn die gewünschte Zeit vergangen ist wird das Telegramm gesendet.

Dirk
 
ich nutze XProfanX2
01.02.2014  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »


dr.dirk
pExec - das war der entscheidene Hinweis. Ich habe das Telegramm senden so zu sagen ausgelagert.
Es sieht im Moment so aus als ob es funktioniert.

Vielen Dank
Dirk
 
ich nutze XProfanX2
01.02.2014  
 




H.Brill
Reicht da nicht SetTimer aus ? Ist da die Zeit abgelaufen, so
wird sogar WaitInput verlassen. Bei der seriellen Schnittstelle
mache ich das immer so. Man muß halt nur das Timing des
sendenden Gerätes im Blick haben und dementsprechend
den Timer setzen. So mancher MC (z.B. AVR)braucht da ein
paar Millisekunden. Wenn man dann auch die Puffer bei OpenCom
groß genug hält (z.B. 1024), geht auch nichts verloren.

Man kann aber auch die Schnittstelle ständig pollen, wenn man
XProfans MultiProzessing (pExec) benutzt. Dann kannst du den
Timer fürs Senden des Telegramms benutzen.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
01.02.2014  
 




dr.dirk
pExec - das war der entscheidene Hinweis. Ich habe das Telegramm senden so zu sagen ausgelagert.
Es sieht im Moment so aus als ob es funktioniert.

Vielen Dank
Dirk
 
ich nutze XProfanX2
01.02.2014  
 




H.Brill
Also ich würde das so machen (Pseudocode) :
KompilierenMarkierenSeparieren
SetTimer 1000'wenn alle Sekunde das Telegramm geschickt werden soll.
f& = Opencom(...)
' evtl mit Setcom() konfigurieren
' dann mit pExec() Prozess zum Abhorchen der Schnittstelle aufrufen.
pid& = pExec(|Polling, %HWnd oder Fensterhandle, f&)
' Handle der Schnittstelle und evtl. andere Handles, die in der Procedur
' angesprochen werden (z.B. ein Editcontrol,Listbox usw.) mitgeben.
ende% = 0

WhileNot ende%

    WaitInput

    If %wmTimer

        process("Suspend", pid&)' Prozess anhalten
        ' Hier das Telegramm senden
        process("Resume", pid&)' Prozess läuft weiter

    EndWhile

    Proc Polling

        Parameters handle&, Port&
        var ende% = 0

        Whilenot ende%

            case getText$(handle&) = "" : ende% = 1
            ' Hier Schnittstelle pollen

        EndWhile

    EndProc

 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
01.02.2014  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

6.031 Betrachtungen

Unbenanntvor 0 min.
H.Brill30.09.2022
iF28.12.2015
Georg Teles27.12.2015
dr.dirk27.12.2015
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

H.Brill (2x)
dr.dirk (2x)


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