not finished RFM12 Libary
rfm12.h@0:a634c7e3ea44, 2011-02-18 (annotated)
- Committer:
- dominik
- Date:
- Fri Feb 18 20:07:12 2011 +0000
- Revision:
- 0:a634c7e3ea44
not finished
Who changed what in which revision?
User | Revision | Line number | New 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 |