W kodzie nie zmieniłem dużo, stwierdziłem, że chcę najpierw dojść do prawidłowego działania podstawy.
volatile uint8_t zPC[52] = {0}; // standardowe bajty przekazywane do kodu Arduino
volatile uint8_t doPC[20] = {0xEF, 0xEF, 0xEF, 0xEF, 0}; // standardowe bajty przyjmowane z kodu Arduino
void setup() {
pinMode(2, OUTPUT); //ustawienie pinu 2 jako wyjście cyfrowe
pinMode(3, OUTPUT); //ustawienie pinu 3 jako wyjście cyfrowe
pinMode(0, INPUT_PULLUP); //ust pinu 0 jako wejscie
digitalWrite(2, LOW); //ustawienie stanu niskiego na pinie 2
digitalWrite(3, LOW); //ustawienie stanu niskiego na pinie 3
Serial.begin(115200); //nawiązanie komunikacji z prędkością 115200b/s
Serial.setTimeout(10);
while(!Serial){}; //czekanie do nawiązania komunikacji z komputerem
}
void loop() {
digitalWrite(2, (bitRead(zPC[8], 6))); //czuwak
digitalWrite(3, (bitRead(zPC[8], 7))); //shp
bitWrite(doPC[4], 7, !digitalRead(0)); //syrena ton wysoki
while (!Serial.available()) {};
Serial.readBytes((char*)zPC, 52);
Serial.write((char*)doPC, 20);
}
Dodatkowo taki fragment dodałem do eu07.ini:
uart COM5 115200 0.01 0.1
uarttune 0 0 0 0 1 1023 0.7 1023 0.6 1023 1 255 4000 1023 800 1023 150 1023
uartfeature no no no no
uarttachoscale 1
uartdebug no