xrocusOS_ADXL355 version
Dependencies: mbed SDFileSystem
main.cpp
- Committer:
- Inscape_ao
- Date:
- 2019-05-18
- Revision:
- 10:db2be22bc2f9
- Parent:
- 9:c81d0df866f5
- Child:
- 12:a45a9c65dc03
File content as of revision 10:db2be22bc2f9:
/** --- Includes --- */ #include "mbed.h" #include "SDFileSystem.h" #include "TimeManager.h" #include "UartReceiver.h" #include "CommandParser.h" #include "SDDataStore.h" #include "global.h" #include "string.h" #include "DeviceRepeater.h" #include "DummyDevice.h" /** --- Global Variables --- */ Serial pc(SERIAL_TX, SERIAL_RX); DigitalOut myled(LED1); static SPI myspi(SPI_MOSI, SPI_MISO, SPI_SCK); /* D13, D12, D11 */ static DigitalOut mycs(SPI_CS); /* D10 */ static DigitalIn int1(D7); /* D7/D6 */ static DigitalIn int2(D5); /* D5/D4 */ #define SPI_RD (1) #define SPI_WR (0) #define SPI_EMPTY_SEND (0x00) static void test() { #if 0 int devSpiId; int devid_ad; int devid_mst; int devid_part; int devid_rev; pc.printf("#debug start\n"); /** Init SPI for ADXL372 * CPHA = CPOL = 0, 1MHz(max.10MHz)) * CS = inactive */ myspi.format(8,0); myspi.frequency(1000000); mycs = 1; pc.printf("#init spi\n"); /* Get DeviceID from SPI */ mycs = 0; pc.printf("#spi CS=ACT\n"); myspi.write(0x00 << 1 | SPI_RD); pc.printf("#spi REG Write\n"); devid_ad = myspi.write(SPI_EMPTY_SEND); pc.printf("#spi REG Read\n"); mycs = 1; pc.printf("#spi CS=DAC\n"); mycs = 0; myspi.write(0x01 << 1 | SPI_RD); devid_mst = myspi.write(SPI_EMPTY_SEND); mycs = 1; mycs = 0; myspi.write(0x02 << 1 | SPI_RD); devid_part = myspi.write(SPI_EMPTY_SEND); mycs = 1; mycs = 0; myspi.write(0x03 << 1 | SPI_RD); devid_rev = myspi.write(SPI_EMPTY_SEND); mycs = 1; devSpiId = (devid_ad << 0) | (devid_mst << 8) | (devid_part << 16) | (devid_rev << 24); pc.printf("#fini spi=0x%x\n", devSpiId); #endif } /** --- main --- */ int main() { int deviceId = 0; /** UART Initalizer */ /* setup UART 115200, 8bit, Parity=None, stopbit:1bit */ /* https://os.mbed.com/users/okini3939/notebook/Serial_jp/ */ pc.baud(115200); pc.format(8, Serial::None, 1); test(); /* new timer manager */ pTM = new TimeManager(); /* Generate SDDataStore */ pSds = new SDDataStore(pTM); /* Receive Buffer Control */ pUR = new UartReceiver(&pc); /* create Device */ pDevRept = new DeviceRepeater(deviceId, &DummyDev); /* Generate Command parser as DeviceID = 0, ParsingRule = rules */ pCP = new CommandParser(pUR, deviceId, rules, getNumOfRules); pCP->run(); pc.printf(":%d ACK 0004 0000\n", deviceId); while(1) { test(); wait(5); } }