Jarda Pajskr / freemaster_lib

Dependents:   FreeMASTER_HelloWorld FreeMASTER_HelloWorld2 FreeMASTER_HelloWorld3

Fork of freemaster_lib by Jarda Pajskr

Committer:
JardaPajskr
Date:
Mon May 05 20:13:09 2014 +0000
Revision:
0:fb135bf60f82
Child:
8:17470feaa6be
defined FMSTR class

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JardaPajskr 0:fb135bf60f82 1 #include "mbed.h"
JardaPajskr 0:fb135bf60f82 2
JardaPajskr 0:fb135bf60f82 3 #include "freemaster_class.h"
JardaPajskr 0:fb135bf60f82 4
JardaPajskr 0:fb135bf60f82 5 #if DEVICE_SERIAL
JardaPajskr 0:fb135bf60f82 6 #define FMSTR_USE_TSA_DYNAMIC 1
JardaPajskr 0:fb135bf60f82 7 #define FMSTR_REC_OWNBUFF 1
JardaPajskr 0:fb135bf60f82 8 namespace mbed {
JardaPajskr 0:fb135bf60f82 9 Freemaster::Freemaster(PinName tx, PinName rx, uint32_t tsaMembers, uint32_t recBufferSize, uint32_t flags) {
JardaPajskr 0:fb135bf60f82 10 serial_init(&_serial, tx, rx);
JardaPajskr 0:fb135bf60f82 11 _baud = 9600;
JardaPajskr 0:fb135bf60f82 12 serial_irq_handler(&_serial, Freemaster::_irq_handler, (uint32_t)this);
JardaPajskr 0:fb135bf60f82 13 FMSTR_InitSerialBase((FMSTR_BPTR)&_serial.uart->BDH);
JardaPajskr 0:fb135bf60f82 14 FMSTR_Init();
JardaPajskr 0:fb135bf60f82 15 #if !(FMSTR_POLL_DRIVEN)
JardaPajskr 0:fb135bf60f82 16 serial_irq_set(&_serial, RxIrq, 1);
JardaPajskr 0:fb135bf60f82 17 serial_irq_set(&_serial, TxIrq, 1);
JardaPajskr 0:fb135bf60f82 18 #endif
JardaPajskr 0:fb135bf60f82 19 #if (FMSTR_USE_TSA_DYNAMIC)
JardaPajskr 0:fb135bf60f82 20 tsaTable=malloc(tsaMembers*sizeof(FMSTR_TSA_ENTRY));
JardaPajskr 0:fb135bf60f82 21 FMSTR_SetUpTsaBuff((FMSTR_ADDR)tsaTable, (tsaMembers)*sizeof(FMSTR_TSA_ENTRY));
JardaPajskr 0:fb135bf60f82 22 #endif
JardaPajskr 0:fb135bf60f82 23
JardaPajskr 0:fb135bf60f82 24 #if (FMSTR_REC_OWNBUFF)
JardaPajskr 0:fb135bf60f82 25 recBuf=malloc(recBufferSize);
JardaPajskr 0:fb135bf60f82 26 FMSTR_SetUpRecBuff((FMSTR_ADDR)recBuf, recBufferSize);
JardaPajskr 0:fb135bf60f82 27 #endif
JardaPajskr 0:fb135bf60f82 28 }
JardaPajskr 0:fb135bf60f82 29
JardaPajskr 0:fb135bf60f82 30 FMSTR_BOOL Freemaster::TsaAddVar(FMSTR_TSATBL_STRPTR name, FMSTR_TSATBL_STRPTR type, FMSTR_TSATBL_VOIDPTR addr, FMSTR_TSATBL_VOIDPTR info) {
JardaPajskr 0:fb135bf60f82 31 #if FMSTR_USE_TSA_DYNAMIC
JardaPajskr 0:fb135bf60f82 32 return FMSTR_TsaAddVar(name, type, addr, info);
JardaPajskr 0:fb135bf60f82 33 #else
JardaPajskr 0:fb135bf60f82 34 return FMSTR_FALSE;
JardaPajskr 0:fb135bf60f82 35 #endif
JardaPajskr 0:fb135bf60f82 36 }
JardaPajskr 0:fb135bf60f82 37
JardaPajskr 0:fb135bf60f82 38 void Freemaster::baud(int baudrate) {
JardaPajskr 0:fb135bf60f82 39 serial_baud(&_serial, baudrate);
JardaPajskr 0:fb135bf60f82 40 _baud = baudrate;
JardaPajskr 0:fb135bf60f82 41 }
JardaPajskr 0:fb135bf60f82 42
JardaPajskr 0:fb135bf60f82 43 void Freemaster::Recorder() {
JardaPajskr 0:fb135bf60f82 44 FMSTR_Recorder();
JardaPajskr 0:fb135bf60f82 45 }
JardaPajskr 0:fb135bf60f82 46
JardaPajskr 0:fb135bf60f82 47 void Freemaster::Poll() {
JardaPajskr 0:fb135bf60f82 48 FMSTR_Poll();
JardaPajskr 0:fb135bf60f82 49 }
JardaPajskr 0:fb135bf60f82 50
JardaPajskr 0:fb135bf60f82 51 void Freemaster::_irq_handler(uint32_t id, SerialIrq irq_type) {
JardaPajskr 0:fb135bf60f82 52 FMSTR_Isr();
JardaPajskr 0:fb135bf60f82 53 }
JardaPajskr 0:fb135bf60f82 54
JardaPajskr 0:fb135bf60f82 55 } // namespace mbed
JardaPajskr 0:fb135bf60f82 56
JardaPajskr 0:fb135bf60f82 57 #endif