Forum: Mikrocontroller und Digitale Elektronik RFM12 empfängt nur "Müll"


von Monsterhero (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

vielleicht könnt ihr mir helfen.
Ich bin nun schon seit ca. 2-3 Wochen dabei eine Funkstrecke mit 2 RFM12 
Modulen aufzubauen. Die Module funktionieren soweit und Daten werden 
gesendet, allerdings nicht das, was ich möchte.
Egal was ich sende, es kommt "Datenmüll" an.

Meine Programme laufen auf einem ATMega32 (Sender) und einem ATMega1284P 
(Empfänger). Programmiert in Bascom.

Mein Code besteht aus den Verschiedensten Bruchstücken die ich zu RFM12 
gefunden hab. Eventuell kann sich das mal jemand anschauen und mir 
sagen, wo es hängt. Ich dreh mich grade irgendwie im Kreis.


Schonmal vielen Dank im Vorraus.


Grüße

Monsterhero

von Michi (Gast)


Lesenswert?

Eine komplett [u]selbstprogrammierte[/u] Software mit der Kenntnis aller 
Register des RFM12 sollte auch korrekt funktionieren. Hier eine 
praktische Hilfe:
http://www.controller-designs.de/index.php?lang=de&cat=projekte&cont=rfm12_eva&sub=

von Daniel B. (Gast)


Lesenswert?

Die Seite kenn ich schon, der Download ist leider down. Ich bin 
eigentlich fast überzeugt dass die Register passen. Würde sich eventuell 
jemand den Code anschauen und sagen ob das soweit passt? Irgentwo muss 
ja doch noch ein Fehler drin sein.

von c-hater (Gast)


Lesenswert?

Daniel B. schrieb:

> Ich bin
> eigentlich fast überzeugt dass die Register passen.

Wenn die Register passen, ist das schon ganz nett. Aber mindestens 
genauso wichtig ist, daß in die Register auch die "richtigen" Inhalte 
geschrieben werden.

Was "richtig" ist, dafür gibt es keine allgemein gültige Regel. Gäbe es 
die, bräuchte man überhaupt keine beschreibbaren Register, denn dann 
könnte schon der Hersteller einfach alles hardkodieren...

Die RFM12-Dinger sind wegen ihrer vielfältigen Anpassbarkeit an die 
konkrete Aufgabe garnicht so einfach zu beherrschen. Die Tatsache, daß 
die verfügbaren Datenblätter z.T. fehlerhaft sind und einige 
Zusammenhänge auch überhaupt nicht beleuchten, sondern davon ausgehen, 
daß der geneigte Leser sich aus dem Blockschaltbild, gediegenem 
Ingenieurswissen und einem gut Teil Intuition das selbst zusammenreimt, 
macht die Sache nicht einfacher.

Wenn du nicht das Optimum, willst, sondern erstmal einfach nur etwas, 
was irgendwie funktioniert, dann bist du gut beraten, existierenden Code 
als Vorlage für eine eigene Implementierung zu nehmen, z.B. den 
RFM12-Code aus dem Ethersex-Projekt.

von Michi (Gast)


Lesenswert?

@Monsterhero
Wenn du dich anmeldest, könnte ich dir den Subfolder gezipped von oben 
erwähntem Proggi via PM senden.

von Daniel B. (Gast)


Lesenswert?

Ja, also erstmal sollte es nur irgentwie funktionieren. Wie gesagt, hab 
ich mich verschiedener Codes bedient. Zuerst diese einzeln und dann auch 
miteinander kombiniert. Leider kein Ergebnis.

Mein Problem ist ja, dass Daten gesendet werden. Nur wird eben nicht das 
Empfangen was gesendet wurde. Ich habe auch schon verschiedene Varianten 
für die Übertragungsroutine versucht. Mit und ohne Preambel, mit und 
ohne Dummybytes, usw. leider kein Erfolg. Ich wüsste jetzt auch nicht 
mehr, wo ich denn ansetzen soll.

von Daniel B. (Gast)


Lesenswert?

Michi schrieb:
> @Monsterhero
> Wenn du dich anmeldest, könnte ich dir den Subfolder gezipped von oben
> erwähntem Proggi via PM senden.

Bin angemeldet ;)

von Michi (Gast)


Lesenswert?

> Bin angemeldet ;)
Du hast ne mail

von Daniel B. (Gast)


Lesenswert?

Es funktioniert!

Am Ende lag es nur daran, dass ich den Soft_SPI genutzt habe. Dieser hat 
immer den doppelten Wert zurückgeliefert. Nun teile ich diesen einfach 
durch 2 und schon kommt das an was ich will.

Ich danke vor allem dir Michi, dass du dir die Mühe gemacht hast.


Grüße

Daniel

von Martin K. (maart)


Lesenswert?

Daniel B. schrieb:

> Am Ende lag es nur daran, dass ich den Soft_SPI genutzt habe. Dieser hat
> immer den doppelten Wert zurückgeliefert.

Währe es nicht angebracht, herauszufinden, warum immer der doppelte 
Wert geliefert wird? Sonst ist es doch nur Frickelei und das nächste 
Problem lässt bestimmt nicht lange auf sich warten.

von Daniel B. (Gast)


Lesenswert?

Also ich meine irgendwo schon mal von diesem Problem gelesen zu haben, 
jedoch hat das damals bei mir nicht funktioniert.

Ich glaube es lag daran dass der Soft-SPI auf die falsche Flanke wartet 
und dadurch diese Verschiebung zustande kommt.

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.