DCS bios question
I have a working master caution led from the library example but as soon as I insert my own code to write to osram displays it stops working. I dont even make any calls to my own functions and it still doesnt work but if I go back to the dcs bios library mcled example it works again. How can it not wortk if I dont even make any calls to any functions except the mcled?
p.s. pin 42 is the led on my custom board.
#define DCSBIOS_IRQ_SERIAL
#include "DcsBios.h"
#include <SPI.h>
/* Declare a Master Caution Reset button on pin 10 */
DcsBios::Switch2Pos masterCautionBtn("UFC_MASTER_CAUTION", 10);
/* Make the LED connected to pin 13 into a Master Caution Light */
DcsBios::LED mcLed(0x1012, 0x0800, 42);
void setup() {
DcsBios::setup();
}
void loop() {
DcsBios::loop();
}
//write character to osram serial display
void dcsBios_tste_write_char(char myValue[],int load_value,char* mycompValue){
for(int i=0; i<8;i++){
digitalWrite(load_value, HIGH);
digitalWrite(load_value, LOW);
SPI.transfer(myValue[i]);
digitalWrite(load_value, HIGH);
my_comparator_func(mycompValue++);
// write_master_array(_L);
delayMicroseconds(1);}
}
//write to jammer osram display
void dcsBios_tste_write_slave_char(char myValue[],int load_value,char* mycompValue){
for(int i=0; i<8;i++){
digitalWrite(load_value, HIGH);
digitalWrite(load_value, LOW);
SPI.transfer(myValue[i]);
digitalWrite(load_value, HIGH);
my_comparator_slave_func(mycompValue++);
// write_master_array(_L);
delayMicroseconds(1);}
}
const int RESET = 44;
const int master_LOAD = 46;
const int slave_LOAD = 28;
char *myPtr;
//character ascii library
char _num[10]= {0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,};
char load_digit[8] = {0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7};
char _excl[7] = {0x04,0x04,0x04,0x04,0x04,0x00,0x04};
char _quote [7] = {0x0A,0x0A,0x00,0x00,0x00,0x00,0x00};
char _pound [7] = {0x0A,0x0A,0x1F,0x0A,0x0F,0x0A,0x0A};
char _dollar[7] = {0x04,0x0F,0x14,0x0E,0x05,0x1E,0x04};
char _percent[7]= {0x18,0x19,0x02,0x04,0x08,0x13,0x03};
char _ampersand[7]= {0x18,0x19,0x02,0x04,0x08,0x13,0x03};
char _singlequote[7]={0x0C,0x0C,0x08,0x04,0x00,0x00,0x00};
char l_brack[7] = {0x02,0x04,0x04,0x04,0x04,0x04,0x02};
char r_brack[7] = {0x08,0x04,0x04,0x04,0x04,0x04,0x08};
char asterick[7] = {0x00,0x0A,0x04,0x1F,0x04,0x0A,0x00};
char _plus[7] = {0x00,0x04,0x04,0x1F,0x04,0x04,0x00};
char _comma[7] = {0x00,0x00,0x00,0x18,0x18,0x08,0x10};
char _minus[7] = {0x00,0x00,0x00,0x1F,0x00,0x00,0x00};
char _period[7] = {0x00,0x00,0x00,0x00,0x00,0x0C,0x0C};
char _fwdslsh[7] = {0x00,0x01,0x02,0x04,0x08,0x10,0x00};
char _0[7] = {0x0E,0x11,0x13,0x15,0x19,0x11,0x0E};
char _1[7] = {0x04,0x0C,0x04,0x04,0x04,0x04,0x0E};
char _2[7] = {0x0E,0x11,0x01,0x06,0x08,0x10,0x1F};
char _3[7] = {0x0E,0x11,0x01,0x0E,0x01,0x11,0x0E};
char _4[7] = {0x02,0x06,0x0A,0x12,0x1F,0x02,0x02};
char _5[7] = {0x1F,0x10,0x1E,0x01,0x01,0x01,0x1E};
char _6[7] = {0x06,0x08,0x10,0x1E,0x11,0x11,0x0E};
char _7[7] = {0x1F,0x01,0x02,0x04,0x08,0x08,0x08};
char _8[7] = {0x0E,0x11,0x11,0x0E,0x11,0x11,0x0E};
char _9[7] = {0x0E,0x11,0x11,0x0F,0x01,0x02,0x0C};
char _colon[7] = {0x00,0x0C,0x0C,0x00,0x0C,0x0C,0x00};
char _semi [7] = {0x0C,0x0C,0x00,0x0C,0x0C,0x04,0x08};
char _less[7] = {0x01,0x02,0x04,0x08,0x04,0x02,0x01};
char _equal[7] = {0x00,0x00,0x1F,0x00,0x1F,0x00,0x00};
char _greater[7]= {0x10,0x08,0x04,0x02,0x04,0x08,0x10};
char _question [7] = {0x0E,0x11,0x01,0x02,0x04,0x00,0x04};
char _at [7] = {0x0A,0x00,0x0E,0x12,0x12,0x12,0x0D};
char _A[7] = {0x0E,0x11,0x11,0x1F,0x11,0x11,0x11};
char _B[7] = {0x1E,0x11,0x11,0x1E,0x11,0x11,0x1E};
char _C[7] = {0x0E,0x11,0x10,0x10,0x10,0x11,0x0E};
char _D[7] = {0x1E,0x11,0x11,0x11,0x11,0x11,0x1E};
char _E[7] = {0x1F,0x10,0x10,0x1E,0x10,0x10,0x1F};
char _F[7] = {0x1F,0x10,0x10,0x1E,0x10,0x10,0x10};
char _G[7] = {0x0E,0x11,0x10,0x10,0x13,0x11,0x0E};
char _H[7] = {0x11,0x11,0x11,0x1F,0x11,0x11,0x11};
char _I[7] = {0x07,0x04,0x04,0x04,0x04,0x04,0x07};
char _J[7] = {0x01,0x01,0x01,0x01,0x01,0x11,0x0E};
char _K[7] = {0x11,0x12,0x14,0x18,0x14,0x12,0x11};
char _L[7] = {0x10,0x10,0x10,0x10,0x10,0x10,0x1F};
char _M[7] = {0x11,0x1B,0x15,0x15,0x11,0x11,0x11};
char _N[7] = {0x11,0x11,0x19,0x15,0x13,0x11,0x11};
char _O[7] = {0x0E,0x11,0x11,0x11,0x11,0x11,0x0E};
char _P[7] = {0x1E,0x11,0x11,0x1E,0x10,0x10,0x10};
char _Q [7] = {0x0E,0x11,0x11,0x11,0x15,0x12,0x0D};
char _R[7] = {0x1E,0x11,0x11,0x1E,0x14,0x12,0x11};
char _S[7] = {0x0E,0x11,0x10,0x0E,0x01,0x11,0x0E};
char _T[7] = {0x0F,0x04,0x04,0x04,0x04,0x04,0x04};
char _U[7] = {0x11,0x11,0x11,0x11,0x11,0x11,0x0E};
char _V[7] = {0x11,0x11,0x11,0x0A,0x0A,0x04,0x04};
char _W[7] = {0x11,0x11,0x11,0x15,0x15,0x1B,0x11};
char _X[7] = {0x11,0x11,0x0A,0x04,0x0A,0x11,0x11};
char _Y[7] = {0x11,0x11,0x11,0x0A,0x0A,0x04,0x04};
char _Z[7] = {0x1F,0x01,0x02,0x04,0x08,0x10,0x1F};
char _lbrack[7] = {0x07,0x04,0x04,0x04,0x04,0x04,0x07};
char _bkslsh[7] = {0x00,0x10,0x08,0x04,0x02,0x01,0x00};
char _rbrack[7] = {0x1C,0x04,0x04,0x04,0x04,0x04,0x1C};
char _pyramid[7]= {0x04,0x0A,0x11,0x00,0x00,0x00,0x00};
char _underln[7]= {0x00,0x00,0x00,0x00,0x00,0x00,0x1F};
char _l_apos [7]= {0x0C,0x0C,0x04,0x08,0x00,0x00,0x00};
char _a[7] = {0x00,0x00,0x0E,0x12,0x12,0x12,0x0D};
char _b[7] = {0x10,0x10,0x10,0x16,0x19,0x11,0x1E};
char _c[7] = {0x00,0x00,0x0E,0x10,0x10,0x11,0x0E};
char _d[7] = {0x01,0x01,0x01,0x0D,0x13,0x11,0x0F};
char _e[7] = {0x00,0x00,0x0E,0x11,0x0E,0x10,0x0E};
char _f[7] = {0x04,0x0A,0x08,0x1C,0x08,0x08,0x08};
char _g[7] = {0x00,0x00,0x0F,0x11,0x0F,0x01,0x06};
char _h[7] = {0x10,0x10,0x16,0x19,0x11,0x11,0x11};
char _i[7] = {0x00,0x04,0x00,0x0C,0x04,0x04,0x0E};
char _j[7] = {0x02,0x00,0x06,0x02,0x02,0x12,0x0C};
char _k[7] = {0x10,0x01,0x12,0x14,0x18,0x14,0x12};
char _l[7] = {0x0C,0x04,0x04,0x04,0x04,0x04,0x0E};
char _m[7] = {0x00,0x00,0x0A,0x15,0x11,0x11,0x11};
char _n[7] = {0x00,0x00,0x16,0x19,0x11,0x11,0x11};
char _o[7] = {0x00,0x00,0x0E,0x11,0x11,0x11,0x0E};
char _p[7] = {0x00,0x00,0x1E,0x11,0x19,0x16,0x10};
char _q[7] = {0x00,0x00,0x0F,0x11,0x13,0x0D,0x01};
char _r[7] = {0x00,0x00,0x0B,0x0C,0x08,0x08,0x08};
char _s[7] = {0x00,0x00,0x0E,0x10,0x0E,0x01,0x1E};
char _t[7] = {0x08,0x08,0x1C,0x08,0x08,0x0A,0x04};
char _u[7] = {0x00,0x00,0x11,0x11,0x11,0x13,0x0D};
char _v[7] = {0x00,0x00,0x11,0x11,0x11,0x0A,0x04};
char _w[7] = {0x00,0x00,0x11,0x11,0x15,0x15,0x0A};
char _x[7] = {0x00,0x00,0x11,0x0A,0x04,0x0A,0x11};
char _y[7] = {0x00,0x00,0x11,0x0A,0x04,0x04,0x08};
char _z[7] = {0x00,0x00,0x1F,0x02,0x04,0x08,0x1F};
char _l_brace[7]= {0x02,0x04,0x04,0x08,0x04,0x04,0x02};
char _bar [7] = {0x04,0x04,0x04,0x00,0x04,0x04,0x04};
char _r_brace[7] = {0x08,0x04,0x04,0x02,0x04,0x04,0x08};
char _tilde[7] = {0x00,0x00,0x08,0x05,0x02,0x00,0x00};
char _fill [7] = {0x0A, 0x15,0x0A,0x15,0x0A,0x15,0x0A};
char _arrow[7] = {0x04,0x0E,0x15,0x04,0x04,0x04,0x04};
char _blank[7] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00};
void write_char(char myValue,char load_value){
digitalWrite(load_value, HIGH);
digitalWrite(load_value, LOW);
SPI.transfer(myValue);
digitalWrite(load_value, HIGH);
delayMicroseconds(1);
}
void write_master_array(char myArray[]){
// SPI.begin();
myPtr = myArray;
for(int x = 0;x<7;x++){
write_char(*myPtr++,master_LOAD);
}
// SPI.end();
}
void write_slave_array(char myArray[]){
// SPI.begin();
myPtr = myArray;
for(int x = 0;x<7;x++){
write_char(*myPtr++,slave_LOAD);
}
// SPI.end();
}
//compare ascii number to library
void my_comparator_func(char* myValue){
switch (*myValue) {
case 0x21:
write_master_array(_excl);
break;
case 0x22:
write_master_array(_quote);
break;
case 0x23:
write_master_array(_pound);
break;
case 0x24:
write_master_array(_dollar);
break;
case 0x25:
write_master_array(_percent);
break;
case 0x26:
write_master_array(_ampersand);
break;
case 0x27:
write_master_array(_0);
break;
case 0x28:
write_master_array(l_brack);
break;
case 0x29:
write_master_array(r_brack);
break;
case 0x2A:
write_master_array(asterick);
break;
case 0x2B:
write_master_array(_plus);
break;
case 0x2C:
write_master_array(_l_apos);
break;
case 0x2D:
write_master_array(_minus);
break;
case 0x2E:
write_master_array(_period);
break;
case 0x2F:
write_master_array(_fwdslsh);
break;
case 0x30:
write_master_array(_0);
break;
case 0x31:
write_master_array(_1);
break;
case 0x32:
write_master_array(_2);
break;
case 0x33:
write_master_array(_3);
break;
case 0x34:
write_master_array(_4);
break;
case 0x35:
write_master_array(_5);
break;
case 0x36:
write_master_array(_6);
break;
case 0x37:
write_master_array(_7);
break;
case 0x38:
write_master_array(_8);
break;
case 0x39:
write_master_array(_9);
break;
case 0x3A:
write_master_array(_colon);
break;
case 0x3B:
write_master_array(_semi);
break;
case 0x3C:
write_master_array(_less);
break;
case 0x3D:
write_master_array(_equal);
break;
case 0x3E:
write_master_array(_greater);
break;
case 0x3F:
write_master_array(_question);
break;
case 0x40:
write_master_array(_at);
break;
case 0x41:
write_master_array(_A);
break;
case 0x42:
write_master_array(_B);
break;
case 0x43:
write_master_array(_C);
break;
case 0x44:
write_master_array(_D);
break;
case 0x45:
write_master_array(_E);
break;
case 0x46:
write_master_array(_F);
break;
case 0x47:
write_master_array(_G);
break;
case 0x48:
write_master_array(_H);
break;
case 0x49:
write_master_array(_I);
break;
case 0x4A:
write_master_array(_J);
break;
case 0x4B:
write_master_array(_K);
break;
case 0x4C:
write_master_array(_L);
break;
case 0x4D:
write_master_array(_M);
break;
case 0x4E:
write_master_array(_N);
break;
case 0x4F:
write_master_array(_O);
break;
case 0x50:
write_master_array(_P);
break;
case 0x51:
write_master_array(_Q);
break;
case 0x52:
write_master_array(_R);
break;
case 0x53:
write_master_array(_S);
break;
case 0x54:
write_master_array(_T);
break;
case 0x55:
write_master_array(_U);
break;
case 0x56:
write_master_array(_V);
break;
case 0x57:
write_master_array(_W);
break;
case 0x58:
write_master_array(_X);
break;
case 0x59:
write_master_array(_Y);
break;
case 0x5A:
write_master_array(_Z);
break;
case 0x5B:
write_master_array(l_brack);
break;
case 0x5C:
write_master_array(_bkslsh);
break;
case 0x5D:
write_master_array(r_brack);
break;
case 0x5E:
write_master_array(_pyramid);
break;
case 0x5F:
write_master_array(_underln);
break;
case 0x60:
write_master_array(_l_apos);
break;
case 0x61:
write_master_array(_a);
break;
case 0x62:
write_master_array(_b);
break;
case 0x63:
write_master_array(_c);
break;
case 0x64:
write_master_array(_d);
break;
case 0x65:
write_master_array(_e);
break;
case 0x66:
write_master_array(_f);
break;
case 0x67:
write_master_array(_g);
break;
case 0x68:
write_master_array(_h);
break;
case 0x69:
write_master_array(_i);
break;
case 0x6A:
write_master_array(_j);
break;
case 0x6B:
write_master_array(_k);
break;
case 0x6C:
write_master_array(_l);
break;
case 0x6D:
write_master_array(_m);
break;
case 0x6E:
write_master_array(_n);
break;
case 0x6F:
write_master_array(_o);
break;
case 0x70:
write_master_array(_p);
break;
case 0x71:
write_master_array(_q);
break;
case 0x72:
write_master_array(_r);
break;
case 0x73:
write_master_array(_s);
break;
case 0x74:
write_master_array(_t);
break;
case 0x75:
write_master_array(_u);
break;
case 0x76:
write_master_array(_v);
break;
case 0x77:
write_master_array(_w);
break;
case 0x78:
write_master_array(_x);
break;
case 0x79:
write_master_array(_y);
break;
case 0x7A:
write_master_array(_z);
break;
case 0x7B:
write_master_array(_l_brace);
break;
case 0x7C:
write_master_array(_bar);
break;
case 0x7D:
write_master_array(_r_brace);
break;
case 0x7E:
write_master_array(_tilde);
break;
case 0x7F:
write_master_array(_arrow);
break;
default:
write_master_array(_blank);
break;
}
}
void dcsBios_load_digit(char load_digit,char* myValue){
digitalWrite(master_LOAD, HIGH);
digitalWrite(master_LOAD, LOW);
SPI.transfer(load_digit);
digitalWrite(master_LOAD, HIGH);
delayMicroseconds(1);
my_comparator_func(*myValue);
load_digit++;
}
void my_comparator_slave_func(char* myValue){
switch (*myValue) {
case 0x21:
write_slave_array(_excl);
break;
case 0x22:
write_slave_array(_quote);
break;
case 0x23:
write_slave_array(_pound);
break;
case 0x24:
write_slave_array(_dollar);
break;
case 0x25:
write_master_array(_percent);
break;
case 0x26:
write_master_array(_ampersand);
break;
case 0x27:
write_master_array(_0);
break;
case 0x28:
write_master_array(l_brack);
break;
case 0x29:
write_master_array(r_brack);
break;
case 0x2A:
write_master_array(asterick);
break;
case 0x2B:
write_master_array(_plus);
break;
case 0x2C:
write_master_array(_l_apos);
break;
case 0x2D:
write_master_array(_minus);
break;
case 0x2E:
write_master_array(_period);
break;
case 0x2F:
write_master_array(_fwdslsh);
break;
case 0x30:
write_slave_array(_0);
break;
case 0x31:
write_slave_array(_1);
break;
case 0x32:
write_slave_array(_2);
break;
case 0x33:
write_slave_array(_3);
break;
case 0x34:
write_slave_array(_4);
break;
case 0x35:
write_slave_array(_5);
break;
case 0x36:
write_slave_array(_6);
break;
case 0x37:
write_slave_array(_7);
break;
case 0x38:
write_slave_array(_8);
break;
case 0x39:
write_slave_array(_9);
break;
case 0x3A:
write_master_array(_colon);
break;
case 0x3B:
write_master_array(_semi);
break;
case 0x3C:
write_master_array(_less);
break;
case 0x3D:
write_master_array(_equal);
break;
case 0x3E:
write_master_array(_greater);
break;
case 0x3F:
write_master_array(_question);
break;
case 0x40:
write_master_array(_at);
break;
case 0x41:
write_slave_array(_A);
break;
case 0x42:
write_slave_array(_B);
break;
case 0x43:
write_slave_array(_C);
break;
case 0x44:
write_slave_array(_D);
break;
case 0x45:
write_slave_array(_E);
break;
case 0x46:
write_slave_array(_F);
break;
case 0x47:
write_slave_array(_G);
break;
case 0x48:
write_slave_array(_H);
break;
case 0x49:
write_slave_array(_I);
break;
case 0x4A:
write_slave_array(_J);
break;
case 0x4B:
write_slave_array(_K);
break;
case 0x4C:
write_slave_array(_L);
break;
case 0x4D:
write_slave_array(_M);
break;
case 0x4E:
write_slave_array(_N);
break;
case 0x4F:
write_slave_array(_O);
break;
case 0x50:
write_slave_array(_P);
break;
case 0x51:
write_slave_array(_Q);
break;
case 0x52:
write_slave_array(_R);
break;
case 0x53:
write_slave_array(_S);
break;
case 0x54:
write_slave_array(_T);
break;
case 0x55:
write_slave_array(_U);
break;
case 0x56:
write_slave_array(_V);
break;
case 0x57:
write_slave_array(_W);
break;
case 0x58:
write_slave_array(_X);
break;
case 0x59:
write_slave_array(_Y);
break;
case 0x5A:
write_slave_array(_Z);
break;
case 0x5B:
write_slave_array(l_brack);
break;
case 0x5C:
write_slave_array(_bkslsh);
break;
case 0x5D:
write_slave_array(r_brack);
break;
case 0x5E:
write_slave_array(_pyramid);
break;
case 0x5F:
write_slave_array(_underln);
break;
case 0x60:
write_slave_array(_l_apos);
break;
case 0x61:
write_slave_array(_a);
break;
case 0x62:
write_slave_array(_b);
break;
case 0x63:
write_slave_array(_c);
break;
case 0x64:
write_slave_array(_d);
break;
case 0x65:
write_slave_array(_e);
break;
case 0x66:
write_slave_array(_f);
break;
case 0x67:
write_slave_array(_g);
break;
case 0x68:
write_slave_array(_h);
break;
case 0x69:
write_slave_array(_i);
break;
case 0x6A:
write_slave_array(_j);
break;
case 0x6B:
write_slave_array(_k);
break;
case 0x6C:
write_slave_array(_l);
break;
case 0x6D:
write_slave_array(_m);
break;
case 0x6E:
write_slave_array(_n);
break;
case 0x6F:
write_slave_array(_o);
break;
case 0x70:
write_slave_array(_p);
break;
case 0x71:
write_slave_array(_q);
break;
case 0x72:
write_slave_array(_r);
break;
case 0x73:
write_slave_array(_s);
break;
case 0x74:
write_slave_array(_t);
break;
case 0x75:
write_slave_array(_u);
break;
case 0x76:
write_slave_array(_v);
break;
case 0x77:
write_slave_array(_w);
break;
case 0x78:
write_slave_array(_x);
break;
case 0x79:
write_slave_array(_y);
break;
case 0x7A:
write_slave_array(_z);
break;
case 0x7B:
write_slave_array(_l_brace);
break;
case 0x7C:
write_slave_array(_bar);
break;
case 0x7D:
write_slave_array(_r_brace);
break;
case 0x7E:
write_slave_array(_tilde);
break;
case 0x7F:
write_slave_array(_arrow);
break;
default:
write_slave_array(_blank);
break;
}
}