A small piece of code to test and work with ImGui. See: https://github.com/riktw/Dear_ImGui_MBED

Dependencies:   MODSERIAL mbed

Committer:
riktw
Date:
Wed Apr 27 14:48:08 2016 +0000
Revision:
0:72fa95b3ae70
First commit of the ImGui test code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
riktw 0:72fa95b3ae70 1 #include "mbed.h"
riktw 0:72fa95b3ae70 2 #include "MODSERIAL.h"
riktw 0:72fa95b3ae70 3 #define MESSAGE_BUFFER_SIZE 32
riktw 0:72fa95b3ae70 4 MODSERIAL pc(USBTX, USBRX); // tx, rx
riktw 0:72fa95b3ae70 5 DigitalOut led1(p22);
riktw 0:72fa95b3ae70 6 DigitalOut led2(p23);
riktw 0:72fa95b3ae70 7 DigitalOut led3(p24);
riktw 0:72fa95b3ae70 8 DigitalOut led4(p25);
riktw 0:72fa95b3ae70 9 DigitalOut led5(p26);
riktw 0:72fa95b3ae70 10 DigitalOut led6(p27);
riktw 0:72fa95b3ae70 11 DigitalOut led7(p28);
riktw 0:72fa95b3ae70 12 DigitalOut led8(p29);
riktw 0:72fa95b3ae70 13 DigitalIn dips1(p5);
riktw 0:72fa95b3ae70 14 DigitalIn dips2(p6);
riktw 0:72fa95b3ae70 15 DigitalIn dips3(p7);
riktw 0:72fa95b3ae70 16 DigitalIn dips4(p8);
riktw 0:72fa95b3ae70 17 DigitalIn dips5(p11);
riktw 0:72fa95b3ae70 18 DigitalIn dips6(p12);
riktw 0:72fa95b3ae70 19 DigitalIn dips7(p13);
riktw 0:72fa95b3ae70 20 DigitalIn dips8(p14);
riktw 0:72fa95b3ae70 21 AnalogOut aout(p18);
riktw 0:72fa95b3ae70 22 AnalogIn ain1(p16);
riktw 0:72fa95b3ae70 23 AnalogIn ain2(p17);
riktw 0:72fa95b3ae70 24 Ticker adctimer;
riktw 0:72fa95b3ae70 25 Ticker iotimer;
riktw 0:72fa95b3ae70 26
riktw 0:72fa95b3ae70 27 volatile bool messageReceived = false;
riktw 0:72fa95b3ae70 28 char messageBufferIncoming[MESSAGE_BUFFER_SIZE];
riktw 0:72fa95b3ae70 29 char messageBufferOutgoing[MESSAGE_BUFFER_SIZE];
riktw 0:72fa95b3ae70 30
riktw 0:72fa95b3ae70 31 void messageReceive(MODSERIAL_IRQ_INFO *q)
riktw 0:72fa95b3ae70 32 {
riktw 0:72fa95b3ae70 33 MODSERIAL *sys = q->serial;
riktw 0:72fa95b3ae70 34 sys->move(messageBufferIncoming, MESSAGE_BUFFER_SIZE);
riktw 0:72fa95b3ae70 35 messageReceived = true;
riktw 0:72fa95b3ae70 36 }
riktw 0:72fa95b3ae70 37
riktw 0:72fa95b3ae70 38 void adcread()
riktw 0:72fa95b3ae70 39 {
riktw 0:72fa95b3ae70 40 uint16_t adc1, adc2;
riktw 0:72fa95b3ae70 41 adc1 = ain1.read_u16();
riktw 0:72fa95b3ae70 42 adc2 = ain2.read_u16();
riktw 0:72fa95b3ae70 43 sprintf(messageBufferOutgoing,"A%02u%02u\n",adc1/656,adc2/656);
riktw 0:72fa95b3ae70 44 pc.puts(messageBufferOutgoing);
riktw 0:72fa95b3ae70 45 }
riktw 0:72fa95b3ae70 46
riktw 0:72fa95b3ae70 47 void ioread()
riktw 0:72fa95b3ae70 48 {
riktw 0:72fa95b3ae70 49 messageBufferOutgoing[0] = 'I';
riktw 0:72fa95b3ae70 50 messageBufferOutgoing[1] = dips1 + 48;
riktw 0:72fa95b3ae70 51 messageBufferOutgoing[2] = dips2 + 48;
riktw 0:72fa95b3ae70 52 messageBufferOutgoing[3] = dips3 + 48;
riktw 0:72fa95b3ae70 53 messageBufferOutgoing[4] = dips4 + 48;
riktw 0:72fa95b3ae70 54 messageBufferOutgoing[5] = dips5 + 48;
riktw 0:72fa95b3ae70 55 messageBufferOutgoing[6] = dips6 + 48;
riktw 0:72fa95b3ae70 56 messageBufferOutgoing[7] = dips7 + 48;
riktw 0:72fa95b3ae70 57 messageBufferOutgoing[8] = dips8 + 48;
riktw 0:72fa95b3ae70 58 messageBufferOutgoing[9] = '\n';
riktw 0:72fa95b3ae70 59 messageBufferOutgoing[10] = NULL;
riktw 0:72fa95b3ae70 60 pc.puts(messageBufferOutgoing);
riktw 0:72fa95b3ae70 61
riktw 0:72fa95b3ae70 62 }
riktw 0:72fa95b3ae70 63
riktw 0:72fa95b3ae70 64 int main()
riktw 0:72fa95b3ae70 65 {
riktw 0:72fa95b3ae70 66 pc.baud(115200);
riktw 0:72fa95b3ae70 67 pc.attach(&messageReceive, MODSERIAL::RxAutoDetect);
riktw 0:72fa95b3ae70 68 pc.autoDetectChar('\n');
riktw 0:72fa95b3ae70 69
riktw 0:72fa95b3ae70 70 dips1.mode(PullUp);
riktw 0:72fa95b3ae70 71 dips2.mode(PullUp);
riktw 0:72fa95b3ae70 72 dips3.mode(PullUp);
riktw 0:72fa95b3ae70 73 dips4.mode(PullUp);
riktw 0:72fa95b3ae70 74 dips5.mode(PullUp);
riktw 0:72fa95b3ae70 75 dips6.mode(PullUp);
riktw 0:72fa95b3ae70 76 dips7.mode(PullUp);
riktw 0:72fa95b3ae70 77 dips8.mode(PullUp);
riktw 0:72fa95b3ae70 78
riktw 0:72fa95b3ae70 79 adctimer.attach(&adcread, 0.025);
riktw 0:72fa95b3ae70 80 iotimer.attach(&ioread, 0.25);
riktw 0:72fa95b3ae70 81
riktw 0:72fa95b3ae70 82 while(1)
riktw 0:72fa95b3ae70 83 {
riktw 0:72fa95b3ae70 84 while(messageReceived)
riktw 0:72fa95b3ae70 85 {
riktw 0:72fa95b3ae70 86 if(messageBufferIncoming[0] == 'L')
riktw 0:72fa95b3ae70 87 {
riktw 0:72fa95b3ae70 88 led1 = messageBufferIncoming[1] - 48;
riktw 0:72fa95b3ae70 89 led2 = messageBufferIncoming[2] - 48;
riktw 0:72fa95b3ae70 90 led3 = messageBufferIncoming[3] - 48;
riktw 0:72fa95b3ae70 91 led4 = messageBufferIncoming[4] - 48;
riktw 0:72fa95b3ae70 92 led5 = messageBufferIncoming[5] - 48;
riktw 0:72fa95b3ae70 93 led6 = messageBufferIncoming[6] - 48;
riktw 0:72fa95b3ae70 94 led7 = messageBufferIncoming[7] - 48;
riktw 0:72fa95b3ae70 95 led8 = messageBufferIncoming[8] - 48;
riktw 0:72fa95b3ae70 96 }
riktw 0:72fa95b3ae70 97 else if(messageBufferIncoming[0] == 'D')
riktw 0:72fa95b3ae70 98 {
riktw 0:72fa95b3ae70 99 float dacval = (float)(messageBufferIncoming[3] - 48)/10.0;
riktw 0:72fa95b3ae70 100 dacval += (float)(messageBufferIncoming[4] - 48)/100.0;
riktw 0:72fa95b3ae70 101 aout = dacval;
riktw 0:72fa95b3ae70 102 }
riktw 0:72fa95b3ae70 103 messageReceived = false;
riktw 0:72fa95b3ae70 104 }
riktw 0:72fa95b3ae70 105 }
riktw 0:72fa95b3ae70 106 }