not finished RFM12 Libary

Committer:
dominik
Date:
Fri Feb 18 20:07:12 2011 +0000
Revision:
0:a634c7e3ea44
not finished

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dominik 0:a634c7e3ea44 1 #ifndef MBED_RFM12_C_H
dominik 0:a634c7e3ea44 2 #define MBED_RFM12_C_H
dominik 0:a634c7e3ea44 3
dominik 0:a634c7e3ea44 4 #include "string"
dominik 0:a634c7e3ea44 5 #include "lib_crc.h"
dominik 0:a634c7e3ea44 6 #include "mbed.h"
dominik 0:a634c7e3ea44 7
dominik 0:a634c7e3ea44 8 #define ADDR 0x00
dominik 0:a634c7e3ea44 9
dominik 0:a634c7e3ea44 10 //Defines der Statusregister und Interruptflags
dominik 0:a634c7e3ea44 11 #define RF_STATUS_RGITFFIT (1<<15)
dominik 0:a634c7e3ea44 12 #define RF_STATUS_POR (1<<14)
dominik 0:a634c7e3ea44 13 #define RF_STATUS_RGURFFOV (1<<13)
dominik 0:a634c7e3ea44 14 #define RF_STATUS_WKUP (1<<12)
dominik 0:a634c7e3ea44 15 #define RF_STATUS_EXT (1<<11)
dominik 0:a634c7e3ea44 16 #define RF_STATUS_LBD (1<<10)
dominik 0:a634c7e3ea44 17
dominik 0:a634c7e3ea44 18 enum status_t
dominik 0:a634c7e3ea44 19 {
dominik 0:a634c7e3ea44 20 RX,
dominik 0:a634c7e3ea44 21 TX,
dominik 0:a634c7e3ea44 22 LISTEN
dominik 0:a634c7e3ea44 23 };
dominik 0:a634c7e3ea44 24
dominik 0:a634c7e3ea44 25 typedef union
dominik 0:a634c7e3ea44 26 {
dominik 0:a634c7e3ea44 27 struct
dominik 0:a634c7e3ea44 28 {
dominik 0:a634c7e3ea44 29 uint8_t HI;
dominik 0:a634c7e3ea44 30 uint8_t LO;
dominik 0:a634c7e3ea44 31 }Byte;
dominik 0:a634c7e3ea44 32 struct
dominik 0:a634c7e3ea44 33 {
dominik 0:a634c7e3ea44 34 uint16_t Port : 6;
dominik 0:a634c7e3ea44 35 uint16_t DestType : 2;
dominik 0:a634c7e3ea44 36 uint16_t Addresse : 8;
dominik 0:a634c7e3ea44 37 }Bit;
dominik 0:a634c7e3ea44 38 }header;
dominik 0:a634c7e3ea44 39
dominik 0:a634c7e3ea44 40 class RFM12
dominik 0:a634c7e3ea44 41 {
dominik 0:a634c7e3ea44 42 public:
dominik 0:a634c7e3ea44 43 RFM12(PinName irq, PinName sel, PinName sdi, PinName sdo, PinName sck);
dominik 0:a634c7e3ea44 44 int RF_L4_Senden(char *buff, header h, char length);
dominik 0:a634c7e3ea44 45
dominik 0:a634c7e3ea44 46 private:
dominik 0:a634c7e3ea44 47 //Ports
dominik 0:a634c7e3ea44 48 InterruptIn _irq;
dominik 0:a634c7e3ea44 49 DigitalOut _sel;
dominik 0:a634c7e3ea44 50 DigitalOut _sdi;
dominik 0:a634c7e3ea44 51 DigitalIn _sdo;
dominik 0:a634c7e3ea44 52 DigitalOut _sck;
dominik 0:a634c7e3ea44 53
dominik 0:a634c7e3ea44 54 //Status des PHY Layers
dominik 0:a634c7e3ea44 55 status_t status;
dominik 0:a634c7e3ea44 56
dominik 0:a634c7e3ea44 57 //SendBuffer
dominik 0:a634c7e3ea44 58 char *sbuffer;
dominik 0:a634c7e3ea44 59 int sbufferlength;
dominik 0:a634c7e3ea44 60 int sbufferi;
dominik 0:a634c7e3ea44 61 //ReceiveBuffer
dominik 0:a634c7e3ea44 62 char *rbuffer;
dominik 0:a634c7e3ea44 63 int rbufferlength;
dominik 0:a634c7e3ea44 64 int rbufferi;
dominik 0:a634c7e3ea44 65
dominik 0:a634c7e3ea44 66 char *sbufferl3;
dominik 0:a634c7e3ea44 67 char *rbufferl3;
dominik 0:a634c7e3ea44 68
dominik 0:a634c7e3ea44 69 char *sbufferl4;
dominik 0:a634c7e3ea44 70 char *rbufferl4;
dominik 0:a634c7e3ea44 71
dominik 0:a634c7e3ea44 72 short RF_PHY_Write(short b);
dominik 0:a634c7e3ea44 73 void RF_PHY_Send(char b);
dominik 0:a634c7e3ea44 74 char RF_PHY_Receive();
dominik 0:a634c7e3ea44 75
dominik 0:a634c7e3ea44 76 void RF_PHY_Interrupt();
dominik 0:a634c7e3ea44 77
dominik 0:a634c7e3ea44 78 int RF_PHY_Senden(char *buff, int length);
dominik 0:a634c7e3ea44 79 int RF_PHY_Senden(string str);
dominik 0:a634c7e3ea44 80
dominik 0:a634c7e3ea44 81 int RF_L3_Senden(char *buff, char length);
dominik 0:a634c7e3ea44 82 int RF_L3_Empfangen(char *buff, char length);
dominik 0:a634c7e3ea44 83
dominik 0:a634c7e3ea44 84 int RF_L4_Empfangen(char *buff, char length);
dominik 0:a634c7e3ea44 85
dominik 0:a634c7e3ea44 86 int RF_P1_Empfangen(char *buff, char length);
dominik 0:a634c7e3ea44 87
dominik 0:a634c7e3ea44 88 short crcadd(short crc, char b);
dominik 0:a634c7e3ea44 89
dominik 0:a634c7e3ea44 90 char Hammi_EncodeHI(char b);
dominik 0:a634c7e3ea44 91 char Hammi_EncodeLO(char b);
dominik 0:a634c7e3ea44 92
dominik 0:a634c7e3ea44 93 char Hammi_DecodeHILO(char hi, char lo);
dominik 0:a634c7e3ea44 94 };
dominik 0:a634c7e3ea44 95
dominik 0:a634c7e3ea44 96 #endif