Založen: Apr 02, 2011 Příspěvky: 19737 Bydliště: Nový Bydžov
Zaslal: st červenec 23 2025, 19:41 Předmět:
Nejspíš jsi zapomněl, že sprintf () , tak jak jsi to napsal nepočítá s nulami vlevo, takže třeba číslo 42 zobrazí jen dvě číslice na desítkách a jednotkách a zbytek na displeji ve vyšších řádech zůstane nezměněný z předchozího čísla. O pomalosti a zabrání mnohem větší paměti se u tyhle jednoduchosti bavit nemá cenu ale u složitějších projektů se s tím může narazit. _________________ Jirka
Založen: Jan 01, 2023 Příspěvky: 2620 Bydliště: Česká Lípa
Zaslal: čt červenec 24 2025, 14:49 Předmět:
Máte tam chybu tzv. "přetečení bafru" jako vyšitou.
// Tady máte definovaný bafr jen pro 8 bajtů, platné indexy bafru jsou od 0 do 7.
char dekadicky[8];
// Tady do něj zapisujete 9 bajtů, protože sprintf automaticky za 8 znaků čísla
// doplňuje devátý bajt což je zakončení řetězce (bajt s hodnotou 0) a ten bajt s hodnotou 0
// se zapisuje za konec bafru. Záleží na tom co bude ležet v paměti za koncem bafru.
// V závislosti na tom co tam bude se to nemusí projevit a nebo to může hrábnout
// do zásobníku a způsobit paseku v nepředvídatelném chování programu třeba na jiném místě.
sprintf(dekadicky,"%08d",value);
// Cifry posíláte po znacích tj. mělo by to být bez zakončení.
// Takže namísto i<=8 by mělo být i<8, protože 8 znaků
// je v bafru na indexech od 0 do 7.
for (char i=0; i<=8; i++) sendToMAX7219(i, dekadicky[i] - '0');
Hodně tady mudrujte, tazatel chtěl upravit původní program aby jen dělil osmi.
Samo že se to dá napsat elegantněji, jeden kotouček 8 výřezů, dva fototrandy.
To načítání pulzů mám v počítadle odzkoušený s magnetickým n-codérem 100 pulzů na otáčku. U magneťáku se nemusí vůbec řešit zákmity co mají fototranzistory.
U tohodle je jen 8 zářezů co generují kvadraturní signál (A, B, 90° fázový posun). Rozklad registru counter na řády jsem nikdy nezkoušel ale našel jsem to na netu. Zapojení stejný jako původní. Bez záruky, nemám moc času se v tom rejpat. Asi by bylo lepší přepojit to na využití přerušení a došlechtit tam ochranu proti zákmitům.
Založen: Apr 02, 2011 Příspěvky: 19737 Bydliště: Nový Bydžov
Zaslal: ne červenec 27 2025, 16:59 Předmět:
Samec, Roman se nezmínil, jestli použil ten svůj prvotní FW, co napodobuje mechanický počítadlo a co jsem mu k tomu připsal předděličku osmi a nebo jestli ten zgruntu nově napsaný FW, co jsem mu poslal, kde je jen jeden počítací registr a je tam použit ten delay 5.
Kolik asi tak zvládne obsluha navíječky s ručním vedením drátu tedy bez šnekovýho vedení a reverzací na konci cívky? Odhaduju že tak maximálně 100-120 RPM. Zanalyzuj si časy trvání loop a zjistíš, že s těma osmi výřezy by počítadlo zvládlo 10 - 12 x tolik. _________________ Jirka
Časy uváděny v GMT + 1 hodina Jdi na stránku Předchozí1, 2
Strana 2 z 2
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.