Hallo Leute,
ich weiß ich habe diese Frage bereits gestern im Forum "GCC" gestellt,
aber da mir dort irgendwie keiner antwortet, vermute ich mal, dass die
Frage dort nicht hingehört. Wenn ich nach Fragen zum Raspberry Pi suche,
dann finde ich sie auch eher hier. Von mir aus kann der Beitrag also
dort gelöscht werden. Nun zu meinem Anliegen:
Ich betreibe zurzeit ein Raspberry Pi im Dauerbetrieb mit einer
Funkkommunikation mittels 433MHz. Dazu habe ich einen kleinen Adapter
mit einem RFM12B entwickelt, welcher auf die GPIOs des Raspberry
gesteckt werden kann. Auf dem Raspberry wird ein C-Programm ausgeführt,
welches einfach nur lausch ob Daten in einem vorgesehenen Format
verfügbar sind, diese empfängt, auf Richtigkeit prüft und ggf. in eine
Textdatei speichert und ausgibt. Die Daten kommen von 3
Temperatursensoren, welche etwa alle 30 Sekunden neue Werte senden.
Soweit so gut. Alles funktioniert eigentlich ganz gut. Nun habe ich
allerdings das erste Mal ein paar Dauertest gemacht und musste
feststellen, dass ich nach ein paar Stunden betrieb die im Anhang zu
sehende Fehlermeldungen bekomme. Habt ihr eine Ahnung woran das liegen
könnte? Ich habe mir bereits die bcm2835.c angeschaut und habe
festgestellt, dass das Debug-Flag wohl irgendwie eingeschaltet werden
müsste, doch ich habe wirklich keine Ahnung wo das passiert und warum
erst so spät.
Hier mal der Codeabschnitt, in welchem ich auf die Bibliothek zugreife:
1 | // Function to write a command to the RFM12
|
2 | uint16_t RF12_WRT_CMD(uint16_t cmd)
|
3 | {
|
4 | char buffer[2];
|
5 | uint16_t reply;
|
6 |
|
7 | buffer[0] = cmd >> 8;
|
8 | buffer[1] = cmd;
|
9 |
|
10 | bcm2835_spi_transfern(buffer,2);
|
11 |
|
12 | reply = buffer[0] << 8;
|
13 | reply |= buffer[1];
|
14 |
|
15 | return reply;
|
16 | }
|