Gast
#285247
Hallo zusammen, Ich habe folgendes (Compiler optimiert zuviel) Problem. Ich hab ein globales array deklariert: volatile uint32_t FREQUENCY[4]; Das fülle ich mit Daten (aus dem EEPROM). Alles so fein so weit, dann hab ich ein paar Funktionen, denen ich z.B. &FREQUENCY[3] übergebe und die dann sachen machen wie *freq = *freq + 10 ; Das Problem ist, dass der Wert im Array nicht sofort up-to-date ist, weil das alles in Registern stattfindet. In einer anderen Datei greife ich auf ein array-element zu (später), und merke, das ist veraltet. kann ich irgendwie den compiler zwingen, die werte auszulesen und zurückzuschreiben, also im Prinzip sowas wie: volatile uint32_t tmp = FREQUENCY_CHANNEL[channel]; FREQUENCY_CHANNEL[channel] = tmp; ich hätte also gerne ein array mit volatile elementen, wenn man das so sagen kann. Gibts eine Lösung für mein Problem? Gruss Jörg M.