Arduino IDE 1.5.7 – jak używać Flash

Na początku lipca pojawiło się nowe Arduino IDE oznaczone numerem 1.5.7. Poprawiono w nim dużo błędów. Z praktycznych rzeczy, teraz masz możliwość używania znaków ’.’ i ’-’ w nazwach szkiców.

Pod maską zaktualizowano kompilator AVR-GCC do najnowszej stabilnej wersji 4.8.1. Dzięki czemu do pisania bibliotek można używać języka C++11.
Zaktualizowano też Avrdude do wersji 6.0. Jest to narzędzie do wysyłania programów do płytek Arduino i programowania kontrolerów AVR.

Twórcy IDE dodali też AVR-LIBC 1.8. Aktualizacja tego elementu wymaga najwięcej poprawek w naszych bibliotekach i programach. W nowej jego wersji zmieniono sposób używania pamięci Flash do przechowywania stałych danych programu.

Jeśli używasz tylko F() do przechowywania napisów w pamięci Flash np.:

Serial.println(F(“Ala ma kota”));

To nie masz się czego obawiać. Będzie to działało jak dawniej.

Więcej kłopotu masz, jeśli używałeś bardziej zaawansowanych technik jak:

prog_uchar tablica[] PROGMEM = {1, 2, 3, 4, 5, 6, 7};

Fragment tworzy tablicę typu unsigned char tylko do odczytu w pamięci Flash pod nazwą “tablica”.

W nowym IDE ten fragment wywoła błąd o treści:

“sketch_jul23a.ino:1:1: error: ‘prog_uchar’ does not name a type”

“błąd: ‘prog_uchar’ nie jest nazwą typu”

Lub w wielu przypadkach taki błąd:

“sketch_jul23a.ino:1:16: error: variable ‘tablica’ must be const in order to be put into read-only section by means of ’__attribute__((progmem))’”

“błąd: zmienna ‘tablica’ musi być stałą typu ‘const’ by mogla być w sekcji tylko do odczytu oznaczonej przez ’__attribute__((progmem))’”.

Wtedy ten kawałek kodu musisz zamienić na:

const byte tablica[] PROGMEM = {1, 2, 3, 4, 5, 6, 7};

Zamiast “byte” możesz wybrać inny typ, pasujący dla zmiennej.

Zatem jeśli zauważysz taki błąd w swoich programach, albo bibliotekach, których używasz, teraz możesz go łatwo poprawić.

Dopatrzyłem się też pewnej usterki w Arduino IDE pod Windows. Gdy klikasz w menu “Narzędzia”, menu wyświetla się z pewnym opóźnieniem. Nic nie szkodzi jeśli masz nowoczesne Arduino. Gorzej jeśli posiadasz model Duemilanove z układem USB typu FTDI. Wtedy menu może się pojawić nawet po kilkunastu sekundach.Twórcy Arduino IDE zrobili wykrywanie Arduino po kliknięciu w menu “Narzędzia” i kiepsko to napisali ;-). Jeśli też masz takiego laga, to się nie martw. Program się nie zawiesił.

sprae

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.