Hallo Zusammen,
vielen Dank für die vielen Antworten.
Hallo Rudolph,
Rudolph R. schrieb:
Ob Dein Programm davon wirklich betroffen ist kann ich natürlich nicht
sagen, kommt eben darauf, was es wirklich macht.
Es ist ein grösseres Hobbyprojekt, welches im Wesentlichen als eine multifunktionale über eine Fernbedienung gesteuerte Uhr bezeichnet werden kann. Zusätzliche Funktionen sind beispielsweise verschiedene Anzeigeoptionen (LCD groß/klein und/oder Zeitanzeige in Laufschrift auf einer LED-Matrix), Kalenderfunktionen mit Schaltuhr sowie das Starten von Melodien und Animationen.
Da mittlerweile eine größere Datenmenge (zurzeit 32kB) eine einem externen EEPROM steckt, ist weiterhin eine Datenübertragung über Bluetooth (HC05) mittels einer Visual-Studio-App integriert.
Alle Funktionen sind nicht blockierend, arbeiten also im Zyklus nur einen bestimmten Teil ab. Ausnahme sind Noten- und Pausenlänge der Melodiewiedergabe sowie die Datenübertragung.
Peripheriezugriffe beschränken sich im Normalbetrieb auf das Aktualisieren des LCD, der LED-Matrix, das Schalten von Ausgängen und das Faden von LED.
Die normalen Programmfunktionen sollten aus meiner Sicht mit voller Geschwindigkeit laufen.
Mittlerweile habe ich noch weitere Besonderheiten des Uno R4 gefunden:
- EEPROM-Emulation:
Auch hier habe ich festgestellt, dass es Abweichungen im Verhalten zwischen Uno R3 und R4 gibt: eine Schleife, welche einfach nur 600 Werte vom externen in das interne EEPROM kopiert, funktioniert im Uno R4 erst fehlerfrei, wenn nach einer bestimmten Anzahl von Schreibzugriffev auf das interne EEPROM eine Wartezeit eingebaut wird. Andernfalls wiederholt sich der Inhalt des internen EEPROMS ca. alle 255 Bytes.
12: analogWrite / digitalWrite:
Nach einem Analogwrite auf einem Ausgang verhält sich der Uno R4 anders als bei Uno R3 und Mega: nach einem Analogwrite muss die Datenrichtung
neu gesetzt werden, ansonsten funktioniert ein Digitalwrite nicht mehr.
Viele Grüße
Kai