RFM70 Timing Problem?

Gast #2863685
Lesenswert?
• ▲
▼
Hallo zusammen.
Erst mal großes Lob an dieses tolle Forum mit seinen vielen hilfreichen 
Artikeln und Threads und vielen Dank an alldiejenigen die hier so 
hilfsbereit sind und auf die ganzen Fragen antworten und die Artikel mit 
Inhalt füllen. Macht weiter so.

Nun stehe ich allerdings vor einem, wie ich hoffe "kleinen" Problem für 
die Profis. Ich bastel seit einigen Tagen mit den RFM70 rum. Als 
Einstieg hab ich mich an den Sourcen von Daniel Weber 
(http://projects.web4clans.com/?p=90) gehalten. Der Code funktioniert 
soweit einwandfrei, Kommunikation klappt.

Daraufhin hab ich den Code so erweitert, dass das ganze über Interrupt 
abläuft, vorher polling, und dass ein ACK mit Payload zurück gesendet 
wird. Der Code von mir lief auch soweit, allerdings hab ich nachher beim 
"optimieren" meines Testcodes, durch entfernen unnötiger Codeteile, 
festgestellt, dass plötzlich nur noch ein Datenpacket empfangen bzw. 
ausgegeben wird und dann "hängt" sich der Empfang auf. Der Sender sendet 
weiterhin korrekt weiter.
Durch testen habe ich herausgefunden, dass wenn ich in der main.c vor 
receivePayload ein _delay_ms(1) einfüge der Empfang wieder wunderbar 
funktioniert (Zeile 51/52 in der main.c).
Ich verstehe gerade nicht, wieso dieses delay notwendig ist. Im reinem 
polling Betrieb wurde die Funktion (receivePayload) auch sehr oft 
aufgerufen ohne delay dazwischen.

Ich habe auch versucht ein paar mehr Ausgaben auszugeben, allerdings bin 
ich dem Problem nicht wirklich auf die Schliche bekommen. Meine 
Vermutung geht in Richtung interruptFlag, dass damit irgendetwas nicht 
passt.
Achja, gesendet wird aktuell alle 300ms ein Datenpaket von 7 Zeichen.
Die Hardware ist auf Senderseite ein ATMega8, und auf Empfängerseite 
(macht Probleme) ein ATMega32.

Ich bin noch nicht so sehr erfahren was ich MCU-Programmierung betrifft, 
aber es macht mir viel Spaß und das was ich im Moment schon habe läuft 
auch soweit, es würde mich einfach nur interessieren, warum dieses delay 
notwendig wird.

Vielen Dank im Voraus für eure Hilfe.

Schöne Grüße
Marcel
Angehängte Dateien:
Gast #2865886
Lesenswert?
• ▲
▼
Mittlerweile bin ich durch ausprobieren soweit gekommen, dass ich mind. 
ein Delay von 229µs brauche, wobei es dabei dann nach ca. 10 (8-14) 
empfangenen Daten zum hängen kommt. Bei einem Delay von ca 235µs läuft 
es dagegen wieder einwandfrei. Erklären kann ich es mir leider immernoch 
nicht. Hoffe, dass sich noch jemand findet der einen Tipp hat dem ich 
nachgehen kann.

Schönen Gruß
Marcel

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.