Ako zdebugovat interupt v C ?

Pavel Hudeček edizon na seznam.cz
Pátek Září 8 16:23:11 CEST 2023


Těmhle věcem je dobré se vyhnout, protože se v nich pak člověk zbytečně 
ztrácí.
Takže
- Když jsou prohozené jen dráty na portu segmentů, udělat si pole 
"obrázků" znaků už s prohozenými dráty (to bylo třeba v mojí ukázce).
- Když jsou prohozené dráty od společných elektrod, udělat si pole na 
konverzi těch drátů
- Když už je to rozhozené po víc portech, udělat si na to funkce. 
Samozřejmě zvlášť na segmenty a zvlášť na společné konce. A hlavně ať 
nemají žádné sideefekty:-)

Pak je obsah přerušení přehledný, ať je to udělané jakkoli a dá se 
snadno najít kde je chyba. Možná to sežere o pár ns víc, ale to bych 
neřešil:-)

Popisovaná chyba je trochu podobná té, kdy prosvítají předchozí 
zobrazované znaky do následujících. Ta vzniká, když není zaručeno, že 
změny v rámci multiplexu probíhají jen za tmy. Tzn. např. vypnout 
společnou elektrodu, aby byla tma, přepínat segnemty, zapnout společnou 
od dalšího místa.

PH

Dne 08.09.2023 v 15:14 Jan Waclawek napsal(a):
> [preposielam]
>
>
> Ahoj,
>
> pouzivaju sa dva buffre MUX_RawData a RawData. Raw_Data sluzi na nastavenie
> bitovych masiek cislic a znakov. MUX-RawData je samotny buffer, z ktoreho
> bezi multiplexovanie dat na porty, kopiruju sa jednotlive bity.
> Umyselne pisem porty, lebo ovladanie anod a zobrazenie znakov a cislic nie
> je konzistentne na piny portov, ale su rozhadzane, tak aby bol pekny
> plosny spoj. Chyba sa prejavi tak, ze na prazdnej segmentovke, na ktorej ma
> svietit "DP" svieti "Seg_A".  Akoby sa vykonala rotacia z 8 bitu do 1 bitu.
> Neprejavuje sa to vzdy, ale z casu na cas sa to objavi a rusi to esteticky
> dojem. Este ma napadlo, ci to nie je typicka chyba read-modify-write
> bitovych instrukcii PIC16, ktorymi ten displej ovladam. Chybu sa mi
> podarilo nasimulovat, ale pokazde pri inom zobrazovanom 3-cifernom cisle.
> Chyba nie je staticka ale dynamicka. Ten kod, co som sem dal, funguje na
> 99,9%, takze to nie je tak, ze to nefunguje vobec. Jedina tazkost pri
> ozivovani bola synchronizacia pri kopirovani RawData do MUX_RawData. A
> mozno je to aj tym 20 rocnym mcu, ktory uz pomaly dosluhuje. Ale prist na
> to, co tomu je, ma dost motivuje, ale zial matam v tme.
>
> A.
>
> Skus prosim este popisat, co presne chces zobrazovat (t.j aky je obsah
>
> jednotlivych relevantnych premennych), a co tam vidis zobrazene (t.j. ze
> ako sa chyba prejavuje).
>
> wek


Další informace o konferenci Hw-list