BaseMachine OscController Library

Committer:
ryood
Date:
Mon Feb 13 19:20:56 2017 +0000
Revision:
7:03f0c7e507ce
Parent:
6:edb527640651
Parent:
5:dda1279a1bf4
Test OK.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryood 0:d941144b13db 1 /*
ryood 0:d941144b13db 2 * BaseMachine SpiOscController
ryood 0:d941144b13db 3 *
ryood 1:d3217569b33e 4 * mbed Rev 135 / mbed-rtos Rev 123
ryood 0:d941144b13db 5 *
ryood 0:d941144b13db 6 * 2017.02.13
ryood 0:d941144b13db 7 *
ryood 0:d941144b13db 8 */
ryood 0:d941144b13db 9 #ifndef _SPI_OSC_CONTROLLER_H_
ryood 0:d941144b13db 10 #define _SPI_OSC_CONTROLLER_H_
ryood 0:d941144b13db 11
ryood 0:d941144b13db 12 #include "mbed.h"
ryood 0:d941144b13db 13 #include "OscController.h"
ryood 0:d941144b13db 14
ryood 0:d941144b13db 15 #define DCO_PACKET_HEADER (0x55)
ryood 0:d941144b13db 16 #define SPI_WAIT (wait_us(1))
ryood 0:d941144b13db 17
ryood 0:d941144b13db 18 class SpiOscController : public OscController {
ryood 0:d941144b13db 19 public:
ryood 0:d941144b13db 20 SpiOscController(SPI* _pSpim, PinName _DcoCS, uint8_t _waveShape=WAVESHAPE_SQUARE, uint8_t _pulseWidth=127) :
ryood 0:d941144b13db 21 OscController(_waveShape, _pulseWidth),
ryood 0:d941144b13db 22 pSpiM(_pSpim),
ryood 0:d941144b13db 23 DcoCS(_DcoCS, 1) {}
ryood 0:d941144b13db 24
ryood 2:40a153ffb0c0 25 virtual void outDco()
ryood 0:d941144b13db 26 {
ryood 3:31a6b490986f 27 #if(UART_TRACE)
ryood 5:dda1279a1bf4 28 OscController::outDco();
ryood 0:d941144b13db 29 printf("%d\t", DCO_PACKET_HEADER);
ryood 0:d941144b13db 30 printf("%d\t", waveShape);
ryood 0:d941144b13db 31 printf("%d\t", pulseWidth);
ryood 3:31a6b490986f 32 printf("%d\t", frequency10 >> 8);
ryood 3:31a6b490986f 33 printf("%d\t", frequency10 & 0xff);
ryood 0:d941144b13db 34 printf("\r\n");
ryood 0:d941144b13db 35 #endif
ryood 0:d941144b13db 36
ryood 0:d941144b13db 37 DcoCS = 0;
ryood 0:d941144b13db 38 pSpiM->write(DCO_PACKET_HEADER);
ryood 0:d941144b13db 39 pSpiM->write(waveShape);
ryood 0:d941144b13db 40 pSpiM->write(pulseWidth);
ryood 2:40a153ffb0c0 41 pSpiM->write(frequency10 >> 8);
ryood 2:40a153ffb0c0 42 pSpiM->write(frequency10 & 0xff);
ryood 5:dda1279a1bf4 43 //SPI_WAIT;
ryood 0:d941144b13db 44 DcoCS = 1;
ryood 0:d941144b13db 45 }
ryood 0:d941144b13db 46
ryood 0:d941144b13db 47 private:
ryood 0:d941144b13db 48 SPI* pSpiM;
ryood 0:d941144b13db 49 DigitalOut DcoCS;
ryood 0:d941144b13db 50 };
ryood 0:d941144b13db 51
ryood 0:d941144b13db 52 #endif //_SPI_OSC_CONTROLLER_H_