Forum: Mikrocontroller und Digitale Elektronik RFM70 Timing Problem?


von Marcel (Gast)


Angehängte Dateien:

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

von Marcel (Gast)


Angehängte Dateien:

Lesenswert?

Ich sehe gerade, dass ich fälschlicher Weise die Dateien vom Sender 
beigefügt habe, mein Fehler. Hier jetzt die richtigen Dateien vom 
Empfänger!

Entschuldigt den Fehler.

von Marcel (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.