Float na 8bit - minitest

Martin Záruba swz na volny.cz
Čtvrtek Duben 25 08:07:32 CEST 2024


Naprosto stejně jsem to kdysi udělal na AT89C4051. I ten reagoval 
zásluhou použití přerušení bez problému. Tam sice nejrychlejší přerušení 
bylo od průchodu sítě nulo, čili po 10mS, jenže v tom přerušení bylo 
potřeba

nahodit bit portu,

výsledek výoočtu PWM uložit do časovače a ten spustit a zjistit 
stisknuté tlačítko (procesor neměl hw pwm)

jakmile doběhl, vyvolal další přerušení, které ten bit shodilo (to už 
bylo snadné)

No a pak tam byla obsluha multiplexu displeje, byl třímístný a trošku 
blikal, protože přepínal po těch 10mS, tedy s frekvencí 33Hz.

Hlavní smyčka obsluhovala výpočty a zobrazení.

Největší obklička byla vejít se s daty do 256byte RAM

Martin Záruba

Dne 24.4.2024 v 20:50 Pavel Hudeček napsal(a):
> No to bylo vlastně podobné, jako dnes s těmi floaty:
> Tehdy byl v módě strach z použití přerušení:-)
>
> On tam měl dokonale optimalizovanou smyčku, která dělala všechno. 
> Jenže tenhle způsob je prostě hrozně omezující a asi měl smysl někdy 
> kdysi, kdy režije spojená s častým přerušením byla vysoká.
>
> Přitom byl stejná věková kategorie. Asi je to tak učili ve škole od 
> starého profesora. Mě naopak přišlo samozřejmý, že už dávno na ZX 
> Spectru, se Z80, instrukčním cyklem 3,5 MHz/12 a 50% halt na 
> zobrazování, se normálně používalo přerušení Vsync 50 Hz a nevypadalo, 
> že by vadilo mít řádově rychlejší.
>
> Tak mi tam skákaly 4 přerušení, 1 kHz na multiplex a čekání + dvě od 
> obou hran obou IRC signálů a myslím 8 Hz od RTC timeru. Hlavní smyčka 
> už jen čekala na stisk tlačítka a mezitím převáděla přerušením 
> spočítané pulzy na stupně, desetiny a setiny, nebo minuty. A když se 
> dlouho nic nedělo, začala zobrazovat kolik je hodin. Případně sleep, 
> když vypadne napájení ze zdroje. Nebo, když se někdy dočkala stisku 
> tlačítka, tak přepínání setiny/minuty, 12/24 hod, seřízení hodin, 
> kalibrace úhlů.
>
> Pak byla ještě ta vtipná věc, kdy jsem si řek, že malinkej krystal 
> 32,768 kHz je určitě horší než velkej 16 MHz a že teda v zaplým stavu 
> se bude čas přičítat v tom kHz přerušení ... nenastalo zlepšení, ale 
> zhoršení ... aha ono to neběží na krystal, ale na RC ... aha nastavení 
> timeru jsem pochopil správně a nesoulad vypočítané hodnoty s realitou 
> měl poněkud jinej původ:-)
>
> Nakonec se prý ještě někdo ptal, co že je tam teď za čidlo, když to 
> původní mělo 500 kroků na otáčku a on ze 4x větší kalibrační konstanty 
> vydedukoval, že teď je 2000 a jestli se to kvůli němu nezdraží:-)
>
> PH
>
> Dne 24.04.2024 v 16:20 Petr Labaj napsal(a):
>> Jen pro zajímavost: nepřišel jste pak na to, kde byla chyba v tom 
>> původním algoritmu?
>>
>> PL
>>
>> *****************
>>
>> Dne 24.4.2024 v 15:42 Pavel Hudeček napsal(a):
>>> Tohle mi vždycky připomene můj první komerční projekt v C:
>>> Předělat zlobící elektronický úhloměr. Deska plná součástek, v ní 
>>> MCU s programem v asm.
>>>
>>> Při pohledu do zdrojáků jasná kategorie "klobouk dolů". Všechno 
>>> dokonale optimalizované, líp to nejde. Byl tam nějakej dost 
>>> frajerskej zp;sob, jak zároveň měřit inkrementálními čidly i 
>>> zobrazovat na displeji s multiplexem. Jenže celkovej výsledek byl, 
>>> že při trochu rychlejším otáčení rukou poblikával displej, při 
>>> neopatrném cuknutí ztracené impulzy. V elektronice dokonale ošetřené 
>>> zákmity a další věci.
>>>
>>> Napsal jsem to v C, ve kterém jsem ještě moc neuměl. Ale protože 
>>> jsem vymyslel jak má správně fungovat celek, dopadlo to tak, že se v 
>>> baráku nenašla vrtačka, která by byla tak rychlá, aby zp;sobila 
>>> jakýkoli problém. Jsem si jist, že jsem za ktratší dobu dosáhnul 
>>> nesrovnatelně lepšího výsledku než předchůdce. A bylo to proto, že 
>>> jsem nevymýšlel kolo, šroubek, ... ale vymýšlel auto, ve kterém jsou 
>>> kola, šroubky, ...
>>>
>>> A z původní elektroniky zbyl ptrakticky jen procesor, protože můj 
>>> program není citlivej na zákmity a ještě přitom zastane funkci RTC. 
>>> Vlastně až v téhle fázi jsem zjistil, že můj program běží na 1 MHz a 
>>> připojený 16 MHz krystal nepoužívá.
>>>
>>> PH
>>>
>>> Dne 24.04.2024 v 13:46 Petr Labaj napsal(a):
>>>> Tak určitě je možné nemuset tolik přemýšlet a chytrý algoritmus 
>>>> nahradit hrubou silou.
>>>> Když se dívám na nějaký cizí projekt, tak si interně dělím autory 
>>>> do škatulek:
>>>>
>>>> - vidím optimalizovaný program, s nápaditými řešeními, které 
>>>> člověka jen tak na první dobrou nenapadnou
>>>>   Kategorie "klobouk dolů"
>>>>
>>>> - program s optimalizovanými algoritmy a datovými typy
>>>>   Kategorie "dobrý programátor"
>>>>
>>>> - program napsaný bez velkého rozmyslu, např. se zbytečným použitím 
>>>> float/double kde být nemusí, nepromyšlené algoritmy
>>>>   Kategorie "programátorský dělník, produkt moderního školství"
>>>>
>>>> - program, využívající na kdejakou blbost externí knihovny, nejlépe 
>>>> ještě nějaké obskurní a vyžadující kýbl závislostí
>>>>   Kategorie "..bil"
>>>>
>>>> Je to ale jen mé soukromé a subjektivní dělení, se kterým jistě 
>>>> nemusí spousta lidí souznít.
>>>> Asi je to tím, že jsem začínal na slabých strojích a mám rád 
>>>> rychlou odezvu techniky.
>>>>
>>>> PL
>>>>
>>>> ******************
>>>>
>>>> Dne 24.4.2024 v 7:57 Jaroslav Buchta napsal(a):
>>>>> Jo, taky mi prijdou obavy z float prehnane, ono to v principu tak 
>>>>> slozite neni, navic jsou jen bitove posuvy mantisy pred a po 
>>>>> operaci a nejaka logika se znamenkem a exponentem. Komfort prace s 
>>>>> cisly je pak o level jinde.
>>>>> A pokud uz je nutny double, tak narocnost zakladnich operaci bych 
>>>>> si tipnul roste spis linearne nez rychleji, cili na cca 
>>>>> dvojnasobek , jine to bude u funkci typu sin, cos, log... ale zase 
>>>>> asi jen vyssi pocet iteraci.
>>>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20240425/d6fbbf7d/attachment.htm>


Další informace o konferenci Hw-list