RE: Obsluhavnějšího přerušení u PIC

Kručinský Ladislav ladislav.krucinsky na linde-mh.cz
Úterý Říjen 26 07:44:18 CEST 2010


Tak už jsem se v tom vybabral, chyba byla (kupodivu ;-) u mne. Neuvědomil jsem si že INTF se nahazuje i v případě že mám INTE=0 a když ho pak testuju tak mně to posílá jinam než chci.
Podobný problém je s T0IF - ten se taky pořád nahazuje, takže pokud bych ho chtěl použít musím si být vědom toho, že TMR0 v podstatě nejde zastavit jinak než že ho přepnu na pin GP2 ale tam mám to vnější přerušení - odskakující kontakt a ten mi taky může (částečně) zaplňovat čítač. A kruh se uzavřel.
Každopádně díky za diskuzi, ten princip vertikálních čítačů je nádherný, jenom na jedno tlačítko trochu naddimenzovaný.
 

L. Kručinský 

 

________________________________

From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On Behalf Of andrej jancura
Sent: Monday, October 25, 2010 5:45 PM
To: HW-news
Subject: Re: Obsluhavnějšího přerušení u PIC


On ten latch je na INTF flagu v INTCON. INTF sa vam nastavuje v zavislosti od pinu. Az pokial mate INTFIE sa generuje prerusenie. Skuste si napisat jednoduchy program na test toho INT pinu. Nastavte si prerusenie od INT hrany a v preruseni si urobte kratky impulz s bsf, nop, bcf na nejaky iny pin a pozrite si na osciloskope priebeh na vstupe INT a priebeh na tom pomocnom pine, ktory budete nastavovat v obsluhe prerusenia. Taky kratky test pre nazornost. Potom mozete pridavat nop-y alebo delay a pozorujte co sa deje.

A.


On Mon, 25 Oct 2010 17:22:12 +0200
Kručinský Ladislav wrote:
> To je zajímavé, tvrdíte že pin pro vnější přerušení (u PIC 16F629 je 
>to GP2) má na vstupu latch (to by vysvětlovalo to chování) ale ze 
>schématu v DS to nevyplývá - je tam pouze kombinační logika až po 
>sdružený signál /interrupt to CPU. I když je fakt, že někde ten 
>registr INTCON realizovaný být musí.
> Dneska večer budu ještě trochu hloubat. Děkuji všem za trpělivost.
> 
> 
> L. Kručinský 
> 
> 
> 
> ________________________________
> 
>From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] 
>On Behalf Of andrej jancura
> Sent: Monday, October 25, 2010 11:54 AM
> To: HW-news
> Subject: Re: Obsluhavnějšího přerušení u PIC
> 
> 
> Ten interrupt ma latch tiez, takze vy ho sice vynulujete, ale pocas 
>tych dvoch ms ho znova nastavia. Jedno z moznych rieseni, ktore sa 
>mne paci a aj mu rozumiem je od maximu, maju na to hotovy cip. 
>Funguje to tak, ze po stlaceni tlacitka sa spusti timer s dead time. 
>tento timer sa resetuje vzdy, ked pride kratky impulz a stale bezi 
>dead time. platnu hodnotu dostanete az po uplynuti dead time a po 
>poslednom prechode impulzu. Ten dead time si mozete kludne nastavit 
>na 1 00ms, nic tym nepokazite... Skratit sa da vzdy. Este jedna 
>poznamka, skuste zabudnut na INT pin s prerusenim a pouzite skor 
>prerusenie TMR0 a INTF bit na detekciu tych kratkych impulzov.
> 
> A.
> 
> 
> 
> 
> On Mon, 25 Oct 2010 11:28:10 +0200
> Kručinský Ladislav wrote:
>> Já to sice napsal už v tom prvním mejlu ale šlo mi skutečně o to 
>>ověřit si zda se chová mravně obsluha vnějšího přerušení. A jelikož 
>>se nechová mravně tak budu mus et dále experimentovat. Za to navedení 
>>na vertikální čítače děkuji ale tady (jedno tlačítko) by snad mohlo 
>>stačit obyčejné časování. A jelikož je to vstup pro přerušení 
>>(předpokládám tam latch někde na výstupu té kombinační logiky ENABLE 
>>& FLAG) tak jsem uvažoval takto:
>> první "chlup" od toho tlačítka se zapíše - spustí obsluhu přerušení, 
>>kde hned v první instrukci to přeruše ní zakážu, počkám 2 ms než 
>>vymažu flag a znovu povolím. A v rámci té obsluhy si změním stav LED 
>>na výstupu.
>> Ale nefunguje to tak.
>> 
>> L. Kručinský
>> 
>> -----Original Message-----
>>From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] 
>>On Behalf Of Jan Waclawek
>> Sent: Monday, October 25, 2010 11:09 AM
>> To: HW-news
>> Subject: Re: Obsluhavnějšího přerušení u PIC
>> 
>> No, 100ms to je uz riadne nah***o spinac, ale naozaj su aj take - 
>>pamatate s i tie hnusne tvrde klikacie spinace v PMD verzie 1? No tak 
>>tie su presne take nah***o.
>> 
>> Inak klasicka praca v tejto oblasti je od Jacka Ganssla:
>> http://www.ganssle.com/debouncing.htm
>> 
>> 
>> A velmi pekne riesenie pomocou uz spominanych vertikalnych 
>>pocitaciel, vratane repeatu, od perfekcionalistu Petra Danneggera:
>> http://www.mikrocontroller.net/attachment/24823/file.c
>> 
>> Na externe prerusenie sa sice da tlacitko zavesit, ale nie je to 
>>prilis vhodne riesenie, a odchlpenie sa aj tak robi typicky 
>>casovacom, takze to externe prerusenie je napokon dost zbytocne 
>>(ledazeby bolo vo funkcii zobudzania zaspateho jednocipu alebo tak 
>>nejak).
>> 
>> J.
>> 
>> _______________________________________________
>> 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/20101026/83a93d75/attachment.htm>


Další informace o konferenci Hw-list