![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
A small piece of code to test and work with ImGui. See: https://github.com/riktw/Dear_ImGui_MBED
main.cpp
- Committer:
- riktw
- Date:
- 2016-04-27
- Revision:
- 0:72fa95b3ae70
File content as of revision 0:72fa95b3ae70:
#include "mbed.h" #include "MODSERIAL.h" #define MESSAGE_BUFFER_SIZE 32 MODSERIAL pc(USBTX, USBRX); // tx, rx DigitalOut led1(p22); DigitalOut led2(p23); DigitalOut led3(p24); DigitalOut led4(p25); DigitalOut led5(p26); DigitalOut led6(p27); DigitalOut led7(p28); DigitalOut led8(p29); DigitalIn dips1(p5); DigitalIn dips2(p6); DigitalIn dips3(p7); DigitalIn dips4(p8); DigitalIn dips5(p11); DigitalIn dips6(p12); DigitalIn dips7(p13); DigitalIn dips8(p14); AnalogOut aout(p18); AnalogIn ain1(p16); AnalogIn ain2(p17); Ticker adctimer; Ticker iotimer; volatile bool messageReceived = false; char messageBufferIncoming[MESSAGE_BUFFER_SIZE]; char messageBufferOutgoing[MESSAGE_BUFFER_SIZE]; void messageReceive(MODSERIAL_IRQ_INFO *q) { MODSERIAL *sys = q->serial; sys->move(messageBufferIncoming, MESSAGE_BUFFER_SIZE); messageReceived = true; } void adcread() { uint16_t adc1, adc2; adc1 = ain1.read_u16(); adc2 = ain2.read_u16(); sprintf(messageBufferOutgoing,"A%02u%02u\n",adc1/656,adc2/656); pc.puts(messageBufferOutgoing); } void ioread() { messageBufferOutgoing[0] = 'I'; messageBufferOutgoing[1] = dips1 + 48; messageBufferOutgoing[2] = dips2 + 48; messageBufferOutgoing[3] = dips3 + 48; messageBufferOutgoing[4] = dips4 + 48; messageBufferOutgoing[5] = dips5 + 48; messageBufferOutgoing[6] = dips6 + 48; messageBufferOutgoing[7] = dips7 + 48; messageBufferOutgoing[8] = dips8 + 48; messageBufferOutgoing[9] = '\n'; messageBufferOutgoing[10] = NULL; pc.puts(messageBufferOutgoing); } int main() { pc.baud(115200); pc.attach(&messageReceive, MODSERIAL::RxAutoDetect); pc.autoDetectChar('\n'); dips1.mode(PullUp); dips2.mode(PullUp); dips3.mode(PullUp); dips4.mode(PullUp); dips5.mode(PullUp); dips6.mode(PullUp); dips7.mode(PullUp); dips8.mode(PullUp); adctimer.attach(&adcread, 0.025); iotimer.attach(&ioread, 0.25); while(1) { while(messageReceived) { if(messageBufferIncoming[0] == 'L') { led1 = messageBufferIncoming[1] - 48; led2 = messageBufferIncoming[2] - 48; led3 = messageBufferIncoming[3] - 48; led4 = messageBufferIncoming[4] - 48; led5 = messageBufferIncoming[5] - 48; led6 = messageBufferIncoming[6] - 48; led7 = messageBufferIncoming[7] - 48; led8 = messageBufferIncoming[8] - 48; } else if(messageBufferIncoming[0] == 'D') { float dacval = (float)(messageBufferIncoming[3] - 48)/10.0; dacval += (float)(messageBufferIncoming[4] - 48)/100.0; aout = dacval; } messageReceived = false; } } }