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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.