Založen: Apr 02, 2011 Příspěvky: 17720 Bydliště: Nový Bydžov
Zaslal: ne duben 30 2023, 23:01 Předmět:
Every mám, tak zkusím. Možná že by stačilo i Teenssy 2.0, má 2560byte RAM. Mám ho nachystanej kvůli velkýmu počtu analogů do jednoho projektu.
Zkusil jsem vyházet všechny čtyřbyte globální proměnný a odkomentovat jejich použití v programu. Je z toho nefunkční troska ale stále se to kouše ve stejným místě. Volných je nyní 1580. Nějak nerozumím tomu, jak se ty proměnný obsazujou, proč se jich tolik uvolnilo když jsem zrušil pouze 6 čtyřbytovek.
Ale asi to bude správná cesta se zvětšováním RAM. Našel jsem na netu s tím mým 1,3"displejem displej přijímače na amatérský pásma, kde kromě kmitočtu jsou grafický čtvrtkruhový stupnice, jako to mívaly starý komunikační přijímače s analogovým laděním. Píše tam něco v tom smyslu, že to 328P nezvládá a proto používá ESP32. Proč ne Every nebo 2560 tam nepíše. Možná to nešlo ani s nima a je potřeba 32 bytů. _________________ Jirka
Založen: Apr 02, 2011 Příspěvky: 17720 Bydliště: Nový Bydžov
Zaslal: po květen 01 2023, 21:32 Předmět:
Hledal jsem na netu jiný ovládaní pro si5351
A ejhle našel jsem variantu pro 1,3" displej s řadičem SH1106.
No a v tom řádku kde se skáče na ty výpise ve kterých se mě to žvejká je:
kód:
statup_text(); //If you hang on startup, comment
Takže nejen problém u mě s původním displejem SSD1306 ale i u jiných s SH1106... _________________ Jirka
Proč mi nemůže všechno chodit hned ?!!
Naposledy upravil Celeron dne út květen 02 2023, 10:41, celkově upraveno 1 krát.
Asi je to chyba knihovny, a asi by to chtělo zkusit nulovat proměnné bufferu, jenže je to objektový a zatím jsem se tím moc daleko neprohrabal.
Problém může být i v alokaci místa pro proměnné, takovej "long long int" například může znamenat něco trochu jinýho na 32bit a něco jinýho na 8bit MCU a je to obecně známej problém (proto vznikly standardizovaný typy jako uint8_t a podobně, knihovna stdint), takže záleží i na kompilátoru jak se s tím popasuje (to by mělo být vidět v listingu překladu, pokud to nějakej generuje).
Viděl bych to tak, že jestli chceš mít málo starostí tak to hoď taky na to ESP a uvidíš, co to udělá…
Založen: Apr 02, 2011 Příspěvky: 17720 Bydliště: Nový Bydžov
Zaslal: út květen 02 2023, 10:45 Předmět:
To spíš oželím ten výpis počátečních keců. Dělám to pro sebe a tak snad vím, co to umí a co na kterej výstup leze.
Navíc to už mám nastrkaný do KP krabice a předělávat se mě držák na Pro Mini až tak moc nechce.
Díky za snahu pomoci. _________________ Jirka
Založen: Apr 02, 2011 Příspěvky: 17720 Bydliště: Nový Bydžov
Zaslal: út květen 02 2023, 16:05 Předmět:
Dnes jsem to začal strójit do škatule, takže rozebraný. Až poskládám do finálu, budu ještě laborovat. Dostal jsem tip na inicializaci na 128 x 32, odbýt počáteční výpisy v horních dvou řádkách a pak inicializovat na 128 x 64 na finální běh. Mělo by to alokovat menší RAMku, akorát si nejsem jistej, jestli ve spodní části displeje nebude při Clear rozsypanej čaj. Ale možná to stejně nepomůže, všechno směřuje spíš na chybu v knihovně. _________________ Jirka
Založen: Apr 02, 2011 Příspěvky: 17720 Bydliště: Nový Bydžov
Zaslal: ne květen 21 2023, 10:34 Předmět:
Tak jsem dotáhnul řízení generátoru do finální podoby. Bohužel, ten startovací výpis není možný vůbec použít, stále se to na něm kouše.
A taky jsem narazil na další záhadnou věc. Chtěl jsem posílat na sériovou linku po zapnutí a změně kmitočtu generátoru hodnotu kmitočtu pro kompenzaci kmitočtový charakteristiky externího atenuátoru. A zase jsem narazil, stačí dát do jakýhoholiv místa void Setup inicializaci sériový linky Serial.begin(9600); a do tý doby chodící řízení generátoru vůbec nenaběhne.
Když zkusím použít Software.serial, tak je to stejný.
Fleška obsazená 26140 byte, RAMka 719 byte. Asi je opravdu problém s tou "hromadou" a stackem.
Zkusím to přepsat na jinou knihovnu pro OLED SH110X. _________________ Jirka
Založen: Apr 02, 2011 Příspěvky: 17720 Bydliště: Nový Bydžov
Zaslal: ne květen 21 2023, 19:16 Předmět:
Na U8GLIB jsem se vykašlal, nenašel jsem od ní nějakej kvalitní popis příkazů.
Vzal jsem Arduino Every, zkontroloval kompatibilitu pinů a zkusil jsem FW přeložit do Every. Pinově to je hodně podobný ale kolem přerušení je všecko jinak. Už jsem to jednou zkoušel a nevím proč mi Every vůbec nešlo, ani blbej Blink.
Nastavení přerušení od pinů 2 a 3 od Pro Mini:
No a vlastní obsluha přerušení je docela monstrum, asi tak 10 x víc řádků než pro ProMini.
kód:
// přerušení od encodéru z knihovny Rotary.h
ISR(PORTA_PORT_vect) {
char result = r.process();
if (PA0_INTERRUPT)
PA0_CLEAR_INTERRUPT_FLAG;
if (result)
rotary_iresult = result;
if (result == DIR_CW) set_frequency(-1);
else if (result == DIR_CCW) set_frequency(1);
}
ISR(PORTF_PORT_vect) {
char result = r.process();
if (PF5_INTERRUPT)
PF5_CLEAR_INTERRUPT_FLAG;
if (result)
rotary_iresult = result;
if (result == DIR_CW) set_frequency(-1);
else if (result == DIR_CCW) set_frequency(1);
}
Teda přiznám, že kdybych nenašel inspiraci na netu, tak to určitě nedám.
Výsledek je, že chodí vše, co se na ProMini hryzalo včetně software.serial. Vnitřní Uart použít nemůžu, je připojenej natvrdo na USB převodník Onboard Atmel mEDBG programátoru.
Uff, to byla pěkně pro sraná půlka dnešního odpoledne.
edit: Kurňa, tak tudy cesta asi taky nevede. Ani HW ani SW sériová linka nechodí tak, jak by měly. Asi zase nějaký kolize v tom monstrózním přerušení. Asi to bude chtít nějakou jednodušší obsluhu n-codéru a začít třeba od výpisu výstupních stavů n-codéru na sériový monitor. _________________ Jirka
Proč mi nemůže všechno chodit hned ?!!
Naposledy upravil Celeron dne út květen 23 2023, 18:31, celkově upraveno 1 krát.
Načítání encodéru mi maká bez kiksů na obě strany, SI5351 generátor na to reaguje správně, vysílání hodnoty kmitočtu na Serial print jde taky.
Chtěl jsem tam dodělat ještě nějaký drobnosti ale narazil jsem na nečekanej problém. Pokud je dýlka programu ve flash větší než 59% 29389 byte, tak se program sice přeloží bez chyb ale Avrdude při nahrávání zahlásí chybu Fuse2 RC=-2 a nebo se rovnou vypíše " Ser_open Can´t set com state for "\\.\COM22" a zhroutí se zcela komunikace.
Pokud program zkrátím pod výše vypsanou hodnotu, tak se přeloží a nahraje dobře.
Na netu o té chybě není ani čárka.
Vůbec netuším, kde je problém. Napadá mě chyba ve flash paměti nebo něco v Arduino IDE pro Every. Takže problém s velikostí RAM u 328P vyřešen ale zase je něco kolem velikosti flash u 4809.
Nenapadá vás někoho, co s tím dělat?
Díky! _________________ Jirka
Proč mi nemůže všechno chodit hned ?!!
Naposledy upravil Celeron dne út květen 23 2023, 18:33, celkově upraveno 1 krát.
Založen: Apr 02, 2011 Příspěvky: 17720 Bydliště: Nový Bydžov
Zaslal: út květen 23 2023, 18:39 Předmět:
Mahoney napsal(a):
Ach tak… Promiň, nerad jsem se tě dotknul.
To nebylo na Tebe, ale na Custa. Mezi tím jsi stihnul odpovědět.
Už jsem Ti to převedl do Code. Ale ten problém je opravdu někde v IDE nebo chyba flešky nebo možná Fuse pro 4809 v AVRdude.
Usmolil jsem kopírováním jen samejma Serial printama program delší než těch cca 29600 byte a zase stejnej problém, jak je to delší, tak buď Fuse2 RC=-2 nebo se skácí COM22 při nahrávání. Jiný Every na identifikaci jestli není bouchlá flash nemám. A jestli jde nějak jinak dostat data do flash 4809 než přes USB štekr jsem zatím nikde nenašel. _________________ Jirka
Časy uváděny v GMT + 1 hodina Jdi na stránku Předchozí1, 2, 3Další
Strana 2 z 3
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.