[elektro] PIC 16 bit megszakítás
elight at gmail.hu
elight at gmail.hu
Fri Oct 31 11:32:25 CET 2014
Szia,
egy szabad , (vagy ideiglenesen szabaddá tett)
portláb és egy oszcilloszkóp , vagy még jobb ,
egy analizátor lehet a barátod a kinyomozásban.
Legalább is igy szoktuk..
A debugok az INT nyomozásnál kevésbé hatékonyak..
A gyanus ágak elején , végén beteszel egy - két , három .. etc ..
egymásutáni gyors pulzust.. azután lehet tudi, melyikben
hol mennyit tartózodik és kiszáll vagy nem ..
Ha esetleg több szabad bited van , az meg már egyenesen dölux..
A másik a chip doksijának olvasgatása az érintett
( vagy nem érintett : ) részeken.
Mer a PIC nél már volt olyanom is hogy
a 178 oldalon volt még egy bit aminek egyébként
látszólag semmi köze de mégis bejátszik..
Üdv István
2014-10-31 11:19 keltezéssel, Zoltán Balla írta:
> Sziasztok!
>
> Adott egy 16 bites DsPIC környezet. Van egy megszakítás, a soros port
> adására, mely szerint ha kiürült a FIFO, megszakítást generál. Ekkor a
> kiszolgáló rutin inkrementál egy tömböt cimző index változót, ha az
> kisebb, mint a max érték, és újabb byte-ot helyez a FIFO-ba. A flag
> törlése a megszakításkezelő elején történik.
> A tünet a következő: minden tömb(adat) küldése inicializálásakor az
> index nem incrementálódik, az az ugyanazt az indexű byte-ot küldi el
> mindig konzekvensen.
> Elemezve az egyetlen értelmes feltételezés az volt, hogy mivel a rutin
> elején van törölve a flag, így a megszakítási feltétel újra fennáll, és
> azonnal belép újból a kiszolgáló rutinba. Így még az index
> inkrementálása előtt mégegyszer bekerül a FIFO-ba ugyanaz a címzett
> byte. Az utána következő adatok már jól mennek, végig.
> A kérdésem az, létezik az, hogy beléphet ugyanabba a megszakításkezelőbe
> úgy, hogy még az előző nem lett kiszolgálva ? Emlékeim szerint, mintha
> hardveres tiltás kéne, hogy legyen addig, amíg ki nem lép a megszakítási
> rutinból... Vagy ez csak a 8 biteseknél volt így ?
>
> Zoli
>
> -----------------------------------------
> elektro[-flame|-etc]
>
More information about the Elektro
mailing list