RFM12 Biwait Problem

Gast #2141730
Lesenswert?
• ▲
▼
Hallo,

ich nutze das RFM12 Modul am Atmega 32 und programmiere in Bascom.  Ich 
habe eine Receive-Routine, die per Interrupt aufgerufen wird, sobald 
Daten empfangen werden. In dieser Receive Routine kommt nun "Bitwait" 
vor. Nun ist es (selten, aber eben manchmal) so, dass nach dem Auslösen 
eines Interruptes, das Programm bei Bitwait stoppt, weil kein Signal 
mehr anliegt.

Um dies zu beseitigen dachte ich mir, vor Biwait einen Timer (ISR) zu 
starten. Der Timer wird direkt nach Bitwait wieder deaktiviert. Wenn der 
Timer nun z.b. 400ms gezählt hat, so ist damit klar, dass das Programm 
bei Bitwait hängt. Nun möchte ich, dass dann aus der Timer ISR 
gesprungen wird und nach Bitwait weiter gemacht wird. Gibt es die 
Möglichkeit z.b. den Pointer Stack zu manipulieren, damit die Timer ISR 
nach Ablauf der 400ms hinter Bitwait weiter macht? Oder gibt es 
vielleicht eine bessere Alternative? Auf Bitwait verzichten geht leider 
nicht.
Gast #2141794
Lesenswert?
• ▲
▼
mach doch direkt einen counter in deine bitwait, warte halt bis der 
counter =0 ist.? wenn der counter 0 wurde, setze ein flag, und hüpf 
raus. musst natürlich noch das flag prüfen, in der übergeordneten 
anwendung.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.