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

Kručinský Ladislav ladislav.krucinsky na linde-mh.cz
Pondělí Říjen 25 09:48:31 CEST 2010


Díky za RE, už jsem se rozloučil s tím, že se někdo ozve (asi to není dostatečně off topic ;-).
Ty zákmity (podle osciloskopu) trvají 400 mikrosekund, takže jsem 2 milisekundy pokládal za dostačující čas pro jejich překlenutí. Ale asi tam mám něco blbě, budu ještě chvilku hloubat. 
Ale jak už jsem uvedl, šlo mi o to naučit se obsloužit přerušení zvenku od mechanického kontaktu aniž bych ho musel hardwarově ošetřovat.


L. Kručinský

-----Original Message-----
From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Tomáš Hamouz
Sent: Monday, October 25, 2010 8:58 AM
To: HW-news
Subject: Re: Obsluha vnějšího přerušení u PIC

Myslím že jste si odpověděl sám.
Zákmity trvají řádově jednotky až desítky milisekund a s tím je nutno v programu počítat.

Ošetření tlačítek, psané přímo pro PIC:
http://www.dattalo.com/technical/software/pic/debounce.html
K ošetření 8 tlačítek stačí 12 instrukcí a 2 pracovní registry.

Tomáš



KL> Dobrého večera přeji.
KL> Při pátku bych poprosil nějakého rutinéra aby mi zkusil naznačit co dělám blbě.
KL> Chci si ověřit, že program pro obsluhu vnějšího přerušení dělá to co chci já a zatím to nedopadá.
KL> HW: 
KL> do GPIO2 jsem zapojil mirkospínač k 0V a nakonfiguroval pullup.
KL> na GPIO0 je výstup pro LED přes odpor k +5.
KL> Ostatní vstupy nehrají roli.
KL> SW:
KL> Abych si (vyloženě z cvičných důvodů) ověřil že podprogram ISR 
KL> funguje dobře, tak v obsluze invertuju registr temp1(ř.65) a tím pak 
KL> přepisuju porty GPIO(ř.46) - LEDka by měla na každé kliknutí změnit stav.
KL> Na vstupu GPIO2 jsou od mikrospínače odskoky v délce asi 400 us.
KL> Tak jsem si řekl, dobrá - při prvním sepnutí se zakáže přerušení a 
KL> povolí se až po zpoždění 2 ms. Jenže to nefunguje - na mikrospínač 
KL> klofu jak zběsilý a občas to přepne.
KL> Když zpoždění zvýším na 200 ms (ř.68 - movlw 0) tak to vcelku pravidelně přepne po dvojkliku.
KL> Ale pokud ošetřím vstup kondenzátorem (odskoky podle osciloskopu
KL> zmizí) funguje to tak jak chci (na každé kliknutí se překlopí) i bez zpoždění.
KL> No jo, jenže já chci ty odskoky ošetřit programem a ne kondenzátorem. 
KL> Mohl byste někdo, pro koho je tohle denní rutina říct, kde dělám 
KL> chybu ? Případně se podělit o obsluhu přerušení od odskakujícího spínače po vašem ?
KL> Jelikož se programováním bavím občas po večerech a za týden vše 
KL> zapomenu, je ten program až infantilně komentovaný - ale já to tak potřebuju...
KL> Díky za trpělivost...

KL>  <<int.asm>>

KL>  Kručinský



_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list