Ako zdebugovat interupt v C ?

Pavel Hudeček edizon na seznam.cz
Pátek Září 8 00:07:08 CEST 2023


Jak debugovat interupt závisí na okolnostech.
Ale myslím si, že popis těch okolností je podstatně delší, než prostě 
zkopírování těch dejme tomu 3-10 řádků kódu na obsluhu multiplexované 
sedmisegmentovky a pár sovisejících deklarací.

Nebo, jestli je to tajné, tak ten kousek smazat, chvíli dělat něco úplně 
jiného a pak to napsat znova:-)

PH

Dne 07.09.2023 v 20:57 Jan Waclawek napsal(a):
> [preposielam]
>
> Ahojte,
>
> mam posledne dni taky trochu zapleklity problem s interuptom v C. Pri
> zobrazeni na multiplexovanom displaji mi namiesto desatinnej bodky
> zobrazuje segment_A. Teda z casu na cas sa zmrsi zobrazenie na displaji.
> Zaujimave na tom je to, ze pri dalsom prechode zobrazovacou rutinou sa ten
> zmrseny displaj zase opravi...
>
> V programe sa pouziva interupt od timera 250us. Kazdy 4 interupt sa vykona
> obsluha multiplexu 7segmentoveho displeja. V RAM su dva bitove buffre na
> zobrazovanie na displaji. Jeden sa pouziva na pripavu dat na zobrazenie,
> druhy potom na live zobrazenie v interupte. Synchronizacia prebehne v
> interupte, ked sa prvy buffer skopiruje do druheho, ked sa nastavi
> synchronizacny flag.
>
> Cely kod je napisany v xc8 v2.43, a bezi na 16f874 z cvicnych dovodov. Kod
> obsluhy displeja je preportovany z displeja s MM5450. Nejaka bota v tom
> porte displeja je, ale netusim aka a kde. A chcel by som sa spytat vazeneho
> koloqia na nejake tipy na to ako oddebugovat rutinu interruptu v C resp.
> kde by mohla byt zakopana logicka bota v obsluhe displeja.
>
> Kod do konfery posielat nebudem, pretoze to je jeden dlhy file, v ktorom je
> vsetko. Bola to rychlovka a chcel som co najskor testovat a vyuzit teple
> letne dni. S GitHub-om moc pracovat neviem, ale mohla by to byt cesta na
> zdielanie kodu.


Další informace o konferenci Hw-list