08-11-2016, 21:40
Dziękuję 'namok' za naprowadzenie...
Dla potomnych przedstawiam krótki kod w którym chyba wszystko jest już jasne.
Dzięki niemu zrozumiałem jak zrobić aby STRINGI nie zajmowały już pamięci SRAM,
a zostały zapisane w pamięci FLASH.
Pozdr.
Dla potomnych przedstawiam krótki kod w którym chyba wszystko jest już jasne.
Dzięki niemu zrozumiałem jak zrobić aby STRINGI nie zajmowały już pamięci SRAM,
a zostały zapisane w pamięci FLASH.
Pozdr.
Kod:
// ------------------------
// Zdefiniowanie biblioteki
// ------------------------
#include <avr/pgmspace.h>
// -------------------------------------
// Zdefiniowanie tekstów w pamięci FLASH
// -------------------------------------
const char tekst_0 [] PROGMEM = "Tekst 0";
const char tekst_1 [] PROGMEM = "Tekst 1";
const char* const tablica [] PROGMEM = {
tekst_0, tekst_1};
// -----------------------
// Zdefiniowanie zmiennych
// -----------------------
char bufor [30];
byte poz;
// -------------------
// Ustawienia programu
// -------------------
void setup ()
{
Serial.begin (9600);
while (!Serial);
}
// ---------------------
// Pętla główna programu
// ---------------------
void loop ()
{
poz = 0;
STRING ();
delay (1000);
poz = 1;
STRING ();
delay (1000);
}
// ----------------------------------------------
// Funkcja wyświetlająca STRING'a z pamięci FLASH
// ----------------------------------------------
void STRING ()
{
strcpy_P (bufor, (char*) pgm_read_word (& (tablica [poz])));
Serial.println (bufor);
}
Jeżeli pomogłem, to poproszę o punkt reputacji