-
-
Erfahrener Benutzer
Roboter Genie
Hallo Rakke,
die Idee mit dem Zeiger gefällt mir nicht so recht.
Wenn das Hauptprogramm also den Speicher zur Verfügung stellt, und z.B. eine Variable mit den zu sendenen Daten nutzt, und nur die Adresse/den Zeiger an die Interrupt-Funktion gibt, dann kann das Hauptprogramm ja schliesslich weitermachen und neue Daten in diese Variable schreiben.
Jetzt kommt die 'langsame' sendende Interruptfunktion und liest die vom 'schnellen' Hauptprogramm schon wieder geänderten Daten.
Somit ist der erste Inhalt dieser Variablen noch gar nicht komplett gesendet worden.
Wenn du, wie du vorschlägst, mehrere Zeiger in der Interruptfunktion verwalten möchtest, dann muss auch das Hauptprogramm 'wissen' wann diese Zeiger wieder benutzt werden dürfen, nachdem die dort hinterlegten Daten komplett gesendet wurden. Ich glaube, dass damit die Verwaltung im Hauptprogramm wieder zu groß wird. (Glauben heist aber nicht wissen.)
Zur Abstimmung bei der Bearbeitung:
Ich möchte den in der originalen asuro.c-Library angegeben Funktionsaufruf exakt weiter so benutzten.
Zum einen ist die Funktion ja schon bei allen ASURO-Freaks im Einsatz, und zum anderen habe ich mir überlegt, dass es keinen Sinn macht z.B. die lenght-Variable wegzulassen und nur Strings als data-Variable in die Funktion zu geben. Möglich wäre es, wenn wir immer nur Daten mit dem in C notwendigen '\0' als Endekennung eines Strings hätten.
Ich selbst nutze die Sendefunktion aber auch um 'pure' Daten zu senden. Also z.B. einzelne Messwerte der Sensoren, die ich dann mit einem kleine Programm am PC empfange und auswerte.
Wenn hier aber andere Ideen kommen, z.B. doch ein Ansatz mit den Zeigern, dann immer her damit.
Viele Grüße vom Sternthaler
Nicht mehr lang, und wir rutschen.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen