Gast
#2122110
Hallo Freunde !
Ich möchte mich ein wenig mit drahtloser Datenübertragung beschäftigen,
und bin auf das
Funkmodul RFM12 gestossen.
Dabei habe ich auch den Beitrag und den Sourcecode von Benedikt K. aus
dem Forum und das
Datenblatt von Hope RF studiert.
Erstmal muß dem Benedikt K. meinen Respekt zollen - mit so einer
Datenblattqualität die Sache so
hinzukriegen ist schon nicht schlecht.
Trotzdem habe ich noch einige Verständnisprobleme:
1)
Die Anzahl der Statusbits laut Datenblatt ist 18 ?
Wie kriege 18 Bits mit der StandardSpi Funktion des Atmega. Der
Commandcode für
das Statuswort ist 0X0000 d.h. ich sende 2 Bytes und kriege 2 Bytes
aus der SPI Funktion
zurück. Wie komme ich zu den restlichen 2 Bits ?
2)
Für die Abfrage ob Daten im Buffer stehen (Polling) oder der
Sendebuffer bereit ist, wird einfach die
MISO Leitung abgefragt !
Warum ist sichergestellt, daß an der MISO Leitung immer RGIT oder FFIT
Bit ansteht ohne
das Statuskommando abzusetzen.
(Auszug aus Source von Benedikt K.)
void rf12_ready(void)
{
cbi(RF_PORT, CS);
cbi(RF_PORT, SDI);
asm("nop");
while (!(RF_PIN&(1<<SDO))); // wait until FIFO ready
}
unsigned rf12_data(void)
{
cbi(RF_PORT, CS);
cbi(RF_PORT, SDI);
asm("nop");
if(RF_PIN&(1<<SDO))
return 1;
else
return 0;
}
Vielleicht kann jemand meine Konfusion etwas begrenzen.
Vielen Dank Peter