mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RFM12 ready problem


Autor: noob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo Leute,
ich habe mir zwei AVR-Funk boards von Pollin besorgt inklusive die RFM12 
Module.
Nun habe ich diverse Programme aus diesem Forum verwendet und immer das 
selbe Problem.
Wenn ich das board auf empfang ist bleibt er in der ready funktion 
hängen bis es etwas empfängt.
Dann habe ich ein timeout eingebaut und jetzt kommt immer der timeout 
kein empfangen möglich.Ich habe auch ein pullup an FSK Pin.
ich habe echt keine Ahnung was ich machen kann.
Kann mir da bitte jemand helfen.

ach ja getestet habe ich das ganze mit dem treiber von flashcraft und 
von benedikt K. immer das selbe problem.
was kann das sein?

Autor: boon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hast Du die Pinbelegung der Beispiele aufs Pollinboard angepasst?

Autor: noob (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja das hab ich es klappt ja auch wenn einer Sendet Empfämgt der andere 
das auch. Das Problem ist halt nur, das der Empfanger jedesmal in der 
ready funktion wartet bis es etwas empfängt.
mach schon seit drei tagen rum ohne erfolg bin echt ratlos.

Autor: Charly B. (charly)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habs im moment so geloest das ich uebern timerinterrupt
ein timeout erzeuge und rauskomme, bis ich eine bessere
idee habe

vlg
Charly

Autor: boon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noob schrieb:
> ja das hab ich es klappt ja auch wenn einer Sendet Empfämgt der andere
> das auch. Das Problem ist halt nur, das der Empfanger jedesmal in der
> ready funktion wartet bis es etwas empfängt.
> mach schon seit drei tagen rum ohne erfolg bin echt ratlos.

ist wohl im "Design" der Software so vorgesehen.

Autor: Frank aus Köln (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo noob,

bau deine wait ready Routine mal so um:
unsigned char rfm12_wait_ready(void)                                        //
{                                                                           //
    unsigned char ready     = 0;                                            //
    unsigned int  timeout   = 1000;                                         //
    while( (ready==0) && (timeout!=0) )                                     //
    {                                                                       //
        if ( rfm12_status()& 0x8000 )                                       //
        {                                                                   //
            ready = 1;                                                      //
        }                                                                   //
        timeout--;                                                          //
    }                                                                       //
    if ( timeout == 0 )                                                     //
    {                                                                       //
        return 0;                                                           //
    }                                                                       //
    else                                                                    //
    {                                                                       //
        return 1;                                                           //
    }                                                                       //
}                                                                           //

Der µC hat sich bei mir auch dumm und Dusselig gewartet, wenn ich das 
Statuswort abfrage dann gehts.

Gruß aus Köln

Frank

Autor: Frank aus Köln (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, rfm_status fehlte noch:
unsigned int rfm12_status(void)                                             //
{                                                                           //
    return rfm12_spi( 0x0000 );                                             //
}                                                                           //

Gruß aus Köln

Frank

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.