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