RFM12 Wakeup-Timer

Gast #1108794
Lesenswert?

Hallo

Hat vielleicht schon einmal jemand Erfahrungen mit dem Wakup-Timer des 
RFM12 Funkmoduls gemacht? Laut Dokumentation wird diese Funktion über 
die Register Powermanagement (0x81..) und Wakeup-Timer (0xE0..) 
gesteuert. In meinen erfolglosen Versuchen bin ich wie folgt 
vorgegangen:

1. Wakeup-Timer im Powermangement Register deaktiviert
2. Wakup-Time (m*2^R) im Wakeup-Timer gesetzt
3. Wakeup-Timer im Powermangement Register aktiviert

Hat vielleicht jemand ein Beispiel in dem der Wakeup-Timer zur Anwendung 
kommt?
Gast #3052864
Lesenswert?

Das hier funktioniert bei mir:
1
#define RF_WAKEUP_TIMER 0xE000
2
#define RF_SLEEP_MODE   0x8201
3
#define RF_WAKEUP_MODE  0x8203
4

5

6
void rfm12_startSleep(uint8_t n) {
7
  rfm12Cmd(RF_WAKEUP_TIMER | 0x0A00 | n);
8
  rfm12Cmd(RF_SLEEP_MODE);
9
  if (n > 0) {
10
    rfm12Cmd(RF_WAKEUP_MODE);
11
   }
12
   rfm12_state = RFM12_SLEEPING;
13
   rfm12_clearPins();
14
}
15

16
void rfm12_clearPins(void){
17
  RFM12_SEL_IN();
18
  RFM12_CLK_IN();
19
  RFM12_MOSI_IN();
20

21
  RFM12_SEL_HI();
22
  RFM12_CLK_HI();
23
  RFM12_MOSI_HI();
24
  RFM12_INT_HI();
25
}

die void rfm12_clearPins(void) sollte nicht wirklich notwendig sein, die 
ist nur dazu da, um den Verbrauch noch zu minimieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren