Arduino: Programování Attiny85
Arduino: Odpojení při nahrávání programu
Při experimentování s Arduinem jsem narazil na podivný problém. Po několika malých úpravách kódu mi editor při nahrávání programu hlásil
Error opening serial port '/dev/ttyACM1'
To vše doplněné dlouhým výpisem kde se chyba vyskytla.
Jako by to nestačilo, Arduino se poté odpojí. Pro připojení bylo nutné vytáhnout a opět zastrčit napájecí USB kabel. Tím se bohužel problém s odpojováním nevyřešil. Obšírným nahlédnutím do složky /dev jsem zjistil, že soubor ttyACM1 existuje. Příkaz lsusb Arduino našel. Problém tedy musel být někde jinde.
Problém přetrvával i po změně zdrojového kódu či načtení některého z příkladů. Nezbylo mi tak, než použít Google. Dle všeho šlo o přepsání hodnoty:
Serial.begin(9600);
na
Serial.begin(14400);
Nová hodnota se uloží do uživatelského nastavení. Z nějakého mě neznámého důvodu zůstane tato hodnota v nastavení “zadrblá” i po opětovné úpravě zdrojáků. Je tedy nutné smazat soubor s nastavením (u mě ~/arduino/preferences.txt a restartovat editor.
SDL2: Snímek obrazovky
SDL s sebou ve druhé verzi přinesl i změnu vykreslování na obrazovku. Místo v RAM uložených SDL_Surface je v SDL2 použita SDL_Texture uložená na video RAM, kde je plně v jurisdikci GPU. Krom citelných změn na rychlost vykreslování se také změnil způsob, jakým lze zachytit snímek obrazovky.
Při použití textur se SDL_Surface okna neaktualizuje, pokud bychom použili dřívější způsob, dostali bychom prázdný snímek. Bohužel standardní funkce SDL_SaveBMP (ani její nedokumentovaná obdoba v rozšíření SDL_image - IMG_SavePNG) nepodporuje uložení SDL_Texture. Je proto nejprve nutná konverze z SDL_Texture na SDL_Surface. Teprve pak je možné snímek obrazovky uložit.