Hallo zusammen,
nach dem mein RFM12 nun läuft hab ich leider noch ein Problem mit dem
Sleepmode des Moduls.
Setze das Modul in den Sleepmode. Int kommt auch nach eingestellter
Zeit.Aber nur ein einzigstes mal. Wie verhält sich das Modul nach dem
der Sleep Interrupt kommt? Muss ich das Modul wieder konfigurieren, muss
ich es nochmal in den Sleepmode setzen?
Modul ist davor sauber initalisiert und läuft auch.
Hier mein Programmcode:
1 | void rf12_enable_wakeup(void)
|
2 | {
|
3 | rf12_trans(0xE730); // Wakup-Timer 6144 ms
|
4 | rf12_trans(0x820A); // Wakeup aktivieren, Clockoutput an
|
5 | rf12_trans(0x0000); // Statusregister auslesen;
|
6 | }
|
7 |
|
8 | void ConfigInterrupts()
|
9 | {
|
10 | EICRA |= 0x02;
|
11 | EIMSK |= 0x01; // Enable INT0
|
12 | }
|
13 |
|
14 | ISR(INT0_vect)
|
15 | {
|
16 | intOccured=1;
|
17 | }
|
18 |
|
19 | int main(void)
|
20 | {
|
21 |
|
22 | ConfigInterrupts();
|
23 | sei();
|
24 |
|
25 |
|
26 |
|
27 | rf12_enable_wakeup();
|
28 | uart_puts("wakeuptimer gesetzt");
|
29 |
|
30 | while(1)
|
31 | {
|
32 |
|
33 | if (intOccured==1)
|
34 | {
|
35 |
|
36 | intOccured=0;
|
37 | rf12_enable_wakeup();
|
38 | uart_puts("int Occured");
|
39 | }
|
40 |
|
41 | }
|
42 | }
|
Hat jemand eine Idee woran das liegen könnte?
Gruß Kappo