Hallo Gemeinde
kurz zur erklärung des ganzen.
Ich habe einen VW T5 in dem ein zusätzlicher CAN-Bus läuft der ein paar verschiedene (eigene) Steuereinheiten verbindet(alles Arduino-Controller).
ein Arduino Mega ist ausgestattet mit einem 2,8" TouchDisplay. Über eben Jenes Display kann man durch 6 "Hauptmenüs" steuern. per Touch sind in diesen Menüs unterschiedliche Sachen zu steuern. das funktioniert auch ganz gut, bis auf das laden der einzelnen Icons. das dauert recht lang und man kann diesem 120x120Pixel großen Icons zugucken wie sie von oben nach unten abgearbeitet werden. aber prinzipiel stört mich das nicht sonderlich.
jetzt zum eigentlichen Problem. die meiste Zeit über versendet dieser Controller nur kurze Status-Bytes über den Bus, der dann auf einem anderen Controller Relaise schließt/öffnet und noch ein bisschen mehr.
Jetzt möchte ich aber von diesem zweiten Controller zwei Spannungswerte in jeweils 2 Byte zurück an die Displayeinheit schicken.
Allerdings hängt sich dabei der Controller auf, weil er beim Icons/Bilder laden vom Interrupt des Can-Busses unterbrochen wird. (das Laden der bilder dauert für 120x120Pixel gut eine ganze Sekunde).
erst nach den Bild-Lade-Prozess den Can-Bus abzufragen würde bedeuten das vermutlich daten verloren gehen. Weniger wild bei spannungswerten, aber bei Status-bytes wäre das doof.
wie könnte ich den Code so grundsätzlich verbessern um keine Konflikte diesbezüglich zu bekommen. hat jemand eine Idee ?
Meine C-Fähigkeiten beschränken sich auf Learning-by-doing und "das brauch ich gerad also versuch ich es zu verstehen". zusätzlich versuch cih mir momentan auch noch Basiswissen anzueignen.
beste Grüße