Hallo. Ich bin Physiker und habe sehr wenig Erfahrung mit MCs. für Kommutierung eines BLDC-Motors möchte ich auf MC-Speicher eine sinus-Tabelle speichern. Wenn ich die Tabelle als global definiere, dann habe ich auf mein DRAM kein Platz mehr. lokale Definition der Tabelle hilft auch nicht weiter. wie kann ich meine Sinus-Tabelle auf FLASH speichern, dass der DRAM-Speicher leer bleibt. !!?? Danke beim Hochladen bekomme diese Information: Der Sketch verwendet 16.452 Bytes (6%) des Programmspeicherplatzes. Das Maximum sind 253.952 Bytes. Globale Variablen verwenden 7.667 Bytes (93%) des dynamischen Speichers, 525 Bytes für lokale Variablen verbleiben. Das Maximum sind 8.192 Bytes. Wenig Arbeitsspeicher verfügbar, es können Stabilitätsprobleme auftreten.
Hobbyflieger schrieb: > der DRAM-Speicher Du meinst vermutlich ein normales SRAM wie es in jedem µC im kB Bereich verbaut ist. Das ist dann das, was du "dynamischen Speicher" nennst. > möchte ich auf MC-Speicher eine sinus-Tabelle speichern. Dir ist klar, dass ein Viertelsinus auch reicht? Und dass der nicht auf 1/1000° genau abgelegt werden muss, sondern das man da (für die Anwendung ausreichend) ganz problemlos interpolieren kann? > wie kann ich meine Sinus-Tabelle auf FLASH speichern, dass der > DRAM-Speicher leer bleibt. !!?? Die einfachsten Frage zum Schluss: Welche Toolchain? (Ich könnte das zwar raten, aber du könntest es auch sagen..) Sieh dir bis dahin mal das da an: https://www.arduino.cc/en/tutorial/memory
:
Bearbeitet durch Moderator
Vielen Dank. ich benutze die Arduino-umgebung für Hochladen. Ich benutze keine vordefinierte Funktionen von Arduino-Bib, sondern alles in C und mit den Registernamen. kann man Daten auf FLASH speichern, wenn ja, wie soll ich die Variablen definieren. Danke
Hobbyflieger schrieb: > Ich benutze keine vordefinierte Funktionen von Arduino-Bib, sondern > alles in C und mit den Registernamen. Und welche Toolchain benutzt du dafür? Atmelstudio? GCC? Version?
@Hobbyflieger (Gast) >Vielen Dank. ich benutze die Arduino-umgebung für Hochladen. Ich benutze >keine vordefinierte Funktionen von Arduino-Bib, sondern alles in C und >mit den Registernamen. kann man Daten auf FLASH speichern, wenn ja, wie >soll ich die Variablen definieren. https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Flash_mit_flash_und_Embedded-C
Versuch mal deine Tabelle mit dem C Schlüsselwort const zu deklarieren. Eventuell lässt dann der Compiler die Daten im Flash liegen. Architekturbeding kann es aber auch sein, dass das nichts nützt.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.