Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
12 years, 10 months ago.
error 158 serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
The program is hanging at the line that reads : serial.attach(&serial_interrupt(), Serial::RxIrq); :with an error 158 issued on the compile
I think the serial interrupt is not setting and needs to be a logic zero when there is no interrupt . Final code will be for UART pin 9&10 with baud 2400 I need the LEDs to light when function2 to 4 are activated, and turn off with function1
<<code>>#include "mbed.h"<</code>>
<<code>><</code>>
<<code>>DigitalOut led1(LED1);  //assign led function<</code>>
<<code>>DigitalOut led2(LED2);<</code>>
<<code>>DigitalOut led3(LED3);<</code>>
<<code>>DigitalOut led4(LED4);<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>char buffer[8];<</code>>
<<code>>char function1[] = {0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xC2, 0x00}; // Array for function<</code>>
<<code>>char function2[] = {0xF9, 0xFF, 0xBF, 0xFF, 0xFF, 0xA1, 0x42, 0x00};<</code>>
<<code>>char function3[] = {0xF9, 0xFF, 0x7F, 0xFF, 0xFF, 0xA1, 0xC2, 0x00};<</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>DigitalOut led1(LED1);  //assign led function<</code>>
<<code>>DigitalOut led2(LED2);<</code>>
<<code>>DigitalOut led3(LED3);<</code>>
<<code>>DigitalOut led4(LED4);<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>char buffer[8];<</code>>
<<code>>char function1[] = {0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xC2, 0x00}; // Array for function<</code>>
<<code>>char function2[] = {0xF9, 0xFF, 0xBF, 0xFF, 0xFF, 0xA1, 0x42, 0x00};<</code>>
<<code>>char function3[] = {0xF9, 0xFF, 0x7F, 0xFF, 0xFF, 0xA1, 0xC2, 0x00};<</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>DigitalOut led1(LED1);  //assign led function<</code>>
<<code>>DigitalOut led2(LED2);<</code>>
<<code>>DigitalOut led3(LED3);<</code>>
<<code>>DigitalOut led4(LED4);<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>char buffer[8];<</code>>
<<code>>char function1[] = {0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xC2, 0x00}; // Array for function<</code>>
<<code>>char function2[] = {0xF9, 0xFF, 0xBF, 0xFF, 0xFF, 0xA1, 0x42, 0x00};<</code>>
<<code>>char function3[] = {0xF9, 0xFF, 0x7F, 0xFF, 0xFF, 0xA1, 0xC2, 0x00};<</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>DigitalOut led2(LED2);<</code>>
<<code>>DigitalOut led3(LED3);<</code>>
<<code>>DigitalOut led4(LED4);<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>char buffer[8];<</code>>
<<code>>char function1[] = {0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xC2, 0x00}; // Array for function<</code>>
<<code>>char function2[] = {0xF9, 0xFF, 0xBF, 0xFF, 0xFF, 0xA1, 0x42, 0x00};<</code>>
<<code>>char function3[] = {0xF9, 0xFF, 0x7F, 0xFF, 0xFF, 0xA1, 0xC2, 0x00};<</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>DigitalOut led3(LED3);<</code>>
<<code>>DigitalOut led4(LED4);<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>char buffer[8];<</code>>
<<code>>char function1[] = {0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xC2, 0x00}; // Array for function<</code>>
<<code>>char function2[] = {0xF9, 0xFF, 0xBF, 0xFF, 0xFF, 0xA1, 0x42, 0x00};<</code>>
<<code>>char function3[] = {0xF9, 0xFF, 0x7F, 0xFF, 0xFF, 0xA1, 0xC2, 0x00};<</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>DigitalOut led4(LED4);<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>char buffer[8];<</code>>
<<code>>char function1[] = {0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xC2, 0x00}; // Array for function<</code>>
<<code>>char function2[] = {0xF9, 0xFF, 0xBF, 0xFF, 0xFF, 0xA1, 0x42, 0x00};<</code>>
<<code>>char function3[] = {0xF9, 0xFF, 0x7F, 0xFF, 0xFF, 0xA1, 0xC2, 0x00};<</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>char buffer[8];<</code>>
<<code>>char function1[] = {0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xC2, 0x00}; // Array for function<</code>>
<<code>>char function2[] = {0xF9, 0xFF, 0xBF, 0xFF, 0xFF, 0xA1, 0x42, 0x00};<</code>>
<<code>>char function3[] = {0xF9, 0xFF, 0x7F, 0xFF, 0xFF, 0xA1, 0xC2, 0x00};<</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>char buffer[8];<</code>>
<<code>>char function1[] = {0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xC2, 0x00}; // Array for function<</code>>
<<code>>char function2[] = {0xF9, 0xFF, 0xBF, 0xFF, 0xFF, 0xA1, 0x42, 0x00};<</code>>
<<code>>char function3[] = {0xF9, 0xFF, 0x7F, 0xFF, 0xFF, 0xA1, 0xC2, 0x00};<</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>char buffer[8];<</code>>
<<code>>char function1[] = {0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xC2, 0x00}; // Array for function<</code>>
<<code>>char function2[] = {0xF9, 0xFF, 0xBF, 0xFF, 0xFF, 0xA1, 0x42, 0x00};<</code>>
<<code>>char function3[] = {0xF9, 0xFF, 0x7F, 0xFF, 0xFF, 0xA1, 0xC2, 0x00};<</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>char function1[] = {0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0xC2, 0x00}; // Array for function<</code>>
<<code>>char function2[] = {0xF9, 0xFF, 0xBF, 0xFF, 0xFF, 0xA1, 0x42, 0x00};<</code>>
<<code>>char function3[] = {0xF9, 0xFF, 0x7F, 0xFF, 0xFF, 0xA1, 0xC2, 0x00};<</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>char function2[] = {0xF9, 0xFF, 0xBF, 0xFF, 0xFF, 0xA1, 0x42, 0x00};<</code>>
<<code>>char function3[] = {0xF9, 0xFF, 0x7F, 0xFF, 0xFF, 0xA1, 0xC2, 0x00};<</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>char function3[] = {0xF9, 0xFF, 0x7F, 0xFF, 0xFF, 0xA1, 0xC2, 0x00};<</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>char function4[] = {0xF9, 0xFF, 0xE8, 0x99, 0xDF, 0xA1, 0x66, 0x00};<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>Serial serial(p9, p10);<</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>Serial pc(USBTX, USBRX);<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>int i = 0;<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>void serial_interrupt()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>   unsigned char d;<</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>   if(serial.readable()) {         // check availability<</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>        d = serial.getc();<</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>       if (d == 0xf9) {<</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>           buffer[0] = d;<</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>           i = 1;<</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>           led1 = 1;<</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>       } else {<</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>           buffer[i] = d;   // copy the serial input to buffer<</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>            i++;              // increment buffer value<</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>       }<</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>}<</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>int main()<</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>{<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>   serial.attach(&serial_interrupt(), Serial::RxIrq);<</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>   while(true) {<</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>        if(!memcmp(buffer, function1, 8)) {<</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>           led4 = 1 ;<</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>            i = 0;                       // doing this prevents buffer overflow, i.e. you reset i, to point to buffer[0] again.<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>           if(buffer == function2);<</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>           led3 = 1;<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
 <<code>>       }                                    // And so on, you get the idea.<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>    }<</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>>}<</code>>
<<code>><</code>>
<<code>><</code>>
