V Setup mám skok do podprogramu void statup_text(), kterej zobrazí úvodní kecy:
Kód: Vybrat vše
void statup_text() { // úvodní výpis
display.setTextSize(1);
display.setCursor(4, 5);
// display.print("Si5351");
// display.setCursor(4, 20);
display.print("VFO / RF Gen");
// display.setCursor(4, 35);
// display.print("10kHz - 225MHz");
// display.setCursor(4, 50);
// display.print("V 14");
display.display();
delay(3000);
display.clearDisplay();
display.setCursor(4, 5); // výpis vstupů
display.print("Out:");
display.setCursor(4, 20);
display.print("CLK0-Adj");
display.setCursor(4, 35);
display.print("CLK1-10MHz");
display.setCursor(4, 50);
display.print("CLK2-100kHz");
display.display();
delay(3000);
display.clearDisplay();
}
Když zruším ve Void Setup() skok do Void Startup_text(), tak řízení generátoru za tímhle Startup_textem vše maká jak má.
Ovšem nyní začíná záhada. Pokud jsou odkomentované řádky viz výše, tak se to nekouše. Stačí ale abych jeden výpis přidal a už se to zase kouše. No a nejzajímavější je, že stačí do kódu nahoře přidat do textu pár znaků navíc a zase se to kouše.
Měl jsem podezření, jestli není chyba na nějaký adrese flešky v 328P ale jiná deska to dělá taky. Po kompilaci je ještě 6KB ve flešce volno a proměnný je ještě 1300 byte volno.
Zkusil jsem obsah Void Startup_text zkopírovat do Void Setup() aby se vyloučil problém se zásobníkem a vůbec žádna změna.
Netuším, v čem může být problém. Připadá mi, že pokud se má vypsat víc, než určitej počet znaků, tak se to hryže. Nějaká chyba v knihovně? Divný je, že grafickej test displeje s touhle knihovnou jede bez problémů mimo jiný plnej displej ASCII znaků.