Forum: Mikrocontroller und Digitale Elektronik RFM12 ready problem


von noob (Gast)


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?

von boon (Gast)


Lesenswert?

hast Du die Pinbelegung der Beispiele aufs Pollinboard angepasst?

von noob (Gast)


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.

von Charly B. (charly)


Lesenswert?

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

vlg
Charly

von boon (Gast)


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.

von Frank aus Köln (Gast)


Lesenswert?

Hallo noob,

bau deine wait ready Routine mal so um:
1
unsigned char rfm12_wait_ready(void)                                        //
2
{                                                                           //
3
    unsigned char ready     = 0;                                            //
4
    unsigned int  timeout   = 1000;                                         //
5
    while( (ready==0) && (timeout!=0) )                                     //
6
    {                                                                       //
7
        if ( rfm12_status()& 0x8000 )                                       //
8
        {                                                                   //
9
            ready = 1;                                                      //
10
        }                                                                   //
11
        timeout--;                                                          //
12
    }                                                                       //
13
    if ( timeout == 0 )                                                     //
14
    {                                                                       //
15
        return 0;                                                           //
16
    }                                                                       //
17
    else                                                                    //
18
    {                                                                       //
19
        return 1;                                                           //
20
    }                                                                       //
21
}                                                                           //

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

Gruß aus Köln

Frank

von Frank aus Köln (Gast)


Lesenswert?

Sorry, rfm_status fehlte noch:
1
unsigned int rfm12_status(void)                                             //
2
{                                                                           //
3
    return rfm12_spi( 0x0000 );                                             //
4
}                                                                           //

Gruß aus Köln

Frank

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.