The code of the KKrfm70.cpp. It's only an excerpt, because I only have 9500 characters.
#include "KKrfm70.h" //Offensichtlich, oder?
//---------------------Standard Werte Register Bank 0----------------------------
PROGMEM prog_uchar Reg_Bank0[19][2] = //PROGMEM = Programm speicher nutzen, prog_uchar (unsigned char), siehe pgmspace.h
{
{0x00,0x0F}, //RX_DR/TX_DS/MAX_RT Interrupt an, CRC an (2byte), Power up, PRX
{0x01,0x3F}, //Auto Acknowledgement für Datenleitungen 0,1,2,3,4 und 5
{0x02,0x3F}, //Standard alle Datenleitungen an
{0x03,0x03}, //Addresse ist 5 bytes lang
{0x04,0xFF}, //Auto Retransmission delay (4000 us), Re-Transmit eingeschalten mit 15
{0x05,0x00}, //Kanal 0 als Standard
{0x06,0x3F}, //2 Mbps, 5 dBm, LNA: High gain
{0x07,0x70}, //Clear RX_DR,TX_DS,MAX_RT
{0x08,0x00},
{0x09,0x00},
{0x11,0x20}, //32 byte in RX Datenleitung 0
{0x12,0x20}, //32 byte in RX Datenleitung 1
{0x13,0x20}, //32 byte in RX Datenleitung 2
{0x14,0x20}, //32 byte in RX Datenleitung 3
{0x15,0x20}, //32 byte in RX Datenleitung 4
{0x16,0x20}, //32 byte in RX Datenleitung 5
{0x17,0x11}, //FIFO Status - manche müsse10001n 0 bekommen
{0x1C,0x3F}, //dynamische Packetlänge für Datenleitungen 0,1,2,3,4 und 5 einschalten
{0x1D,0x07}, //DPL an, Ladung mit Bestätigung an, schaltet WX_TX_PAYLIAD_NOACK Kommando an
};
//------------------------Standard Adressen Datenleitung 0-5------------------------
prog_uchar RX0_Adresse[] PROGMEM ={0xFF,0x43,0x17,0x10,0xAC};//Receive address data pipe 0
prog_uchar RX1_Adresse[] PROGMEM ={0x39,0x38,0x22,0xE4,0xD2};//Receive address data pipe 1
prog_uchar RX2_5_Adresse[] PROGMEM = { 0xB2, 0x2A, 0xAF, 0x6D };//Receive address data pipe 2,3,4,5 (Nur LSB byte Rest gleich wie bei RX1_Adresse)
//--------------------------Standard Werte Register Bank 1---------------------------
/*Adresse 0-8 MSB byte to LSB byte, MSB in jedem byte */
PROGMEM prog_uchar Reg_Bank1 [] [4] =
{
{0x40, 0x4B, 0x01, 0xE2},// must write 0x404B01E2
{0xC0, 0x4B, 0x00, 0x00},// must write 0xC04B0000
{0xD0, 0xFC, 0x8C, 0x02},// must write 0xD0FC8C02
{0x99, 0x00, 0x39, 0x41},// must write 0x99003941
{0xD9, 0x9E, 0x86, 0x0B},// must write 0xD99E860B (High Power) oder 0xD99E8624 (Single carrier mode)
{0x24, 0x06, 0x7F, 0xA6},// must write 0x24067FA6
{0x00, 0x00, 0x00, 0x00},// reserved
{0x00, 0x00, 0x00, 0x00},// reserved
{0x00, 0x00, 0x00, 0x00},// reserved
{0x00, 0x00, 0x00, 0x00},// reserved
{0x00, 0x00, 0x00, 0x00},// reserved
{0x00, 0x00, 0x00, 0x00},// reserved
{0x00, 0x12, 0x73, 0x00},// must write 0x00731200
{0x36, 0xB4, 0x80, 0x00},// must write 0x0080B436
};
PROGMEM prog_uchar Reg_Bank1_14 [] = //Must write 0xFFFFFEF7CF208104082041
{
0x41,0x20,0x08,0x04,0x81,0x20,0xCF,0xF7,0xFE,0xFF,0xFF
};
PROGMEM prog_uchar config_Sender [] = {0x0E}; //RX_DR/TX_DS/MAX_RT Interrupt an, CRC an (2byte), Power up, PTX
//----------------------------------Kanalwahl--------------------------------------
uint8_t KKrfm70Class::Kanalwahl(uint8_t kanal)
{
if (kanal >= 0 && kanal <= 83)
{
SPI_Schreibe_Reg(W_REGISTER | RF_CH,kanal);
if (SPI_Lese_Reg(R_REGISTER | RF_CH) == kanal)
{
return 1;
}
}
return 0;
}