Interrupt bei einem GPIO Pin des RasPi
- af0815
- Lazarusforum e. V.
- Beiträge: 6762
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Interrupt bei einem GPIO Pin des RasPi
BTW: Wie sieht es jetzt mit dem Interrupt bei einem GPIO aus ? Gibt es eine Konklusion ?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Lazarusforum e. V.
- Beiträge: 3177
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Interrupt bei einem GPIO Pin des RasPi
Ich wollte niemanden auf dumme Gedanken bringen. Als Beispiel wenn du den Objektzeiger einfach austauschst und auf eine vollkommen andere Datenstruktur zeigst oder zur Datenübergabe eines Integers oder so missbrauchst. Damit runierst du die Typsicherheit, für die wir hier Pascal verwenden.
Es gibt auch durchaus legitime Gründe, den Objektzeiger auszutauschen: Wenn ich per RTTI den Methodenzeiger ermittle ist dies vergleichsweise langsam. Dann kann man durch Austauschen des Objekts recht zügig über die Objekte einer Liste iterieren anstatt die Methode erneut suchen zu müssen. Aber auch hier ist die Typenkompatibilität manuell sicherzustellen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Interrupt bei einem GPIO Pin des RasPi
Hmm.
Für einen "Fake Closur" braucht man das nicht.
Einfach eine Klasse mit der Datenstrutur und einer in "Queue();" anzugebende Funktion, die die Daten ausgibt und dann mit "free;" endet. Da bleibt die Objektstruktur doch "sauber".
Klar ist, dass der Sender-Thread nach "Queue()" das Objekt nicht mehr anpacken darf, da der Empfänger-Thread es ja schon zerstört haben könnte.
-Michael
Für einen "Fake Closur" braucht man das nicht.
Einfach eine Klasse mit der Datenstrutur und einer in "Queue();" anzugebende Funktion, die die Daten ausgibt und dann mit "free;" endet. Da bleibt die Objektstruktur doch "sauber".
Klar ist, dass der Sender-Thread nach "Queue()" das Objekt nicht mehr anpacken darf, da der Empfänger-Thread es ja schon zerstört haben könnte.
-Michael