Werte auslesen und in Winkel umrechnen

Dependencies:   mbed

Committer:
Heidl
Date:
Wed Sep 30 16:08:36 2015 +0000
Revision:
0:d1960beb98fe
Werte von Beschleunigungssensor auslesen

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Heidl 0:d1960beb98fe 1
Heidl 0:d1960beb98fe 2 #ifndef Serial_HL_h
Heidl 0:d1960beb98fe 3 #define Serial_HL_h
Heidl 0:d1960beb98fe 4
Heidl 0:d1960beb98fe 5 #include "platform.h"
Heidl 0:d1960beb98fe 6 // #include "Stream.h"
Heidl 0:d1960beb98fe 7 #include "FunctionPointer.h"
Heidl 0:d1960beb98fe 8 #include "serial_api.h"
Heidl 0:d1960beb98fe 9 #include "SvProtocol.h"
Heidl 0:d1960beb98fe 10
Heidl 0:d1960beb98fe 11 namespace mbed {
Heidl 0:d1960beb98fe 12
Heidl 0:d1960beb98fe 13 class SerialBLK : public IStreamHL {
Heidl 0:d1960beb98fe 14 public:
Heidl 0:d1960beb98fe 15 SerialBLK(PinName tx, PinName rx);
Heidl 0:d1960beb98fe 16 void baud(int baudrate);
Heidl 0:d1960beb98fe 17
Heidl 0:d1960beb98fe 18 virtual void PutChar(int aCh);
Heidl 0:d1960beb98fe 19 virtual int GetChar();
Heidl 0:d1960beb98fe 20 virtual void Write(void* aData, uint32_t aLenBytes);
Heidl 0:d1960beb98fe 21 virtual void Read(void* aData, uint32_t aLenBytes);
Heidl 0:d1960beb98fe 22
Heidl 0:d1960beb98fe 23 enum Parity {
Heidl 0:d1960beb98fe 24 None = 0,
Heidl 0:d1960beb98fe 25 Odd,
Heidl 0:d1960beb98fe 26 Even,
Heidl 0:d1960beb98fe 27 Forced1,
Heidl 0:d1960beb98fe 28 Forced0
Heidl 0:d1960beb98fe 29 };
Heidl 0:d1960beb98fe 30 enum IrqType {
Heidl 0:d1960beb98fe 31 RxIrq = 0,
Heidl 0:d1960beb98fe 32 TxIrq
Heidl 0:d1960beb98fe 33 };
Heidl 0:d1960beb98fe 34
Heidl 0:d1960beb98fe 35 void format(int bits=8, Parity parity=SerialBLK::None, int stop_bits=1);
Heidl 0:d1960beb98fe 36
Heidl 0:d1960beb98fe 37 int readable();
Heidl 0:d1960beb98fe 38 int writeable();
Heidl 0:d1960beb98fe 39 int IsDataAvail()
Heidl 0:d1960beb98fe 40 { return readable(); }
Heidl 0:d1960beb98fe 41
Heidl 0:d1960beb98fe 42 // fptr A pointer to a void function, or 0 to set as none
Heidl 0:d1960beb98fe 43 // type Which serial interrupt to attach the member function to (Seriall::RxIrq for receive, TxIrq for transmit buffer empty)
Heidl 0:d1960beb98fe 44 void attach(void (*fptr)(void), IrqType type=RxIrq);
Heidl 0:d1960beb98fe 45
Heidl 0:d1960beb98fe 46 // tptr pointer to the object to call the member function on
Heidl 0:d1960beb98fe 47 // mptr pointer to the member function to be called
Heidl 0:d1960beb98fe 48 // type Which serial interrupt to attach the member function to (Seriall::RxIrq for receive, TxIrq for transmit buffer empty)
Heidl 0:d1960beb98fe 49 template<typename T>
Heidl 0:d1960beb98fe 50 void attach(T* tptr, void (T::*mptr)(void), IrqType type=RxIrq) {
Heidl 0:d1960beb98fe 51 if((mptr != NULL) && (tptr != NULL)) {
Heidl 0:d1960beb98fe 52 _irq[type].attach(tptr, mptr);
Heidl 0:d1960beb98fe 53 serial_irq_set(&_serial, (SerialIrq)type, 1);
Heidl 0:d1960beb98fe 54 }
Heidl 0:d1960beb98fe 55 }
Heidl 0:d1960beb98fe 56
Heidl 0:d1960beb98fe 57 static void _irq_handler(uint32_t id, SerialIrq irq_type);
Heidl 0:d1960beb98fe 58 protected:
Heidl 0:d1960beb98fe 59 serial_t _serial;
Heidl 0:d1960beb98fe 60 FunctionPointer _irq[2];
Heidl 0:d1960beb98fe 61 int _baud;
Heidl 0:d1960beb98fe 62 };
Heidl 0:d1960beb98fe 63
Heidl 0:d1960beb98fe 64 } // namespace mbed
Heidl 0:d1960beb98fe 65
Heidl 0:d1960beb98fe 66 #endif