<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-2">
<META content="MSHTML 6.00.2900.6036" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Ja bych vůbec nedával tlacitko na vstup preruseni. 
Kontakt si dela co chce.</FONT></DIV>
<DIV><FONT face=Arial size=2>Mam to takto:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>// Tlačítko<BR>#define K_TLACITKO_CASOVANI_10MS 
10<BR>static volatile n_u01 Tlacitko_Vysledek;<BR>static volatile n_u08 
Tlacitko_Casovani_10mS = K_TLACITKO_CASOVANI_10MS;<BR>static volatile Boolean 
Tlacitko_Je_Aktivace = FALSE;<BR></FONT></DIV>
<DIV><FONT face=Arial size=2>// Spustit co 10mS</FONT></DIV>
<DIV><FONT face=Arial size=2>static void Vyhodnot_Tlacitko_10ms(void) 
{</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;if ( Tlacitko_Vysledek == Tlacitko_Vstup ) 
{<BR>&nbsp;&nbsp;&nbsp; Tlacitko_Casovani_10ms = 
K_TLACITKO_CASOVANI_10MS;<BR>&nbsp;}<BR>&nbsp;else 
{<BR>&nbsp;&nbsp;--Tlacitko_Casovani_10ms;<BR>&nbsp;&nbsp;&nbsp;&nbsp; if ( 0 == 
Tlacitko_Casovani_10ms ) {</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
Tlacitko_Casovani_10ms = 
K_VS_CASOVANI_10MS;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
Tlacitko_Vysledek = Tlacitko_Vysledek bitxor 1;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 
Změna stavu<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Je to nový 
stisk?<BR>&nbsp;&nbsp;&nbsp;if ( G_K_PRT_TLACITKO_STISKNUTO == Tlacitko_Vysledek 
) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
Tlacitko_Je_Aktivace = TRUE;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
}<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>}<BR></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Michal Gregor</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=ladislav.krucinsky@linde-mh.cz 
  href="mailto:ladislav.krucinsky@linde-mh.cz">Kručinský Ladislav</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=hw-list@list.hw.cz 
  href="mailto:hw-list@list.hw.cz">HW-news</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Monday, October 25, 2010 9:48 
  AM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> RE: Obsluha vnějšího přerušení u 
  PIC</DIV>
  <DIV><BR></DIV>Díky za RE, už jsem se rozloučil s tím, že se někdo ozve (asi 
  to není dostatečně off topic ;-).<BR>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. <BR>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.<BR><BR><BR>L. 
  Kručinský<BR><BR>-----Original Message-----<BR>From: <A 
  href="mailto:hw-list-bounces@list.hw.cz">hw-list-bounces@list.hw.cz</A> 
  [mailto:hw-list-bounces@list.hw.cz] On Behalf Of Tomáš Hamouz<BR>Sent: Monday, 
  October 25, 2010 8:58 AM<BR>To: HW-news<BR>Subject: Re: Obsluha vnějšího 
  přerušení u PIC<BR><BR>Myslím že jste si odpověděl sám.<BR>Zákmity trvají 
  řádově jednotky až desítky milisekund a s tím je nutno v programu 
  počítat.<BR><BR>Ošetření tlačítek, psané přímo pro PIC:<BR><A 
  href="http://www.dattalo.com/technical/software/pic/debounce.html">http://www.dattalo.com/technical/software/pic/debounce.html</A><BR>K 
  ošetření 8 tlačítek stačí 12 instrukcí a 2 pracovní 
  registry.<BR><BR>Tomáš<BR><BR><BR><BR>KL&gt; Dobrého večera přeji.<BR>KL&gt; 
  Při pátku bych poprosil nějakého rutinéra aby mi zkusil naznačit co dělám 
  blbě.<BR>KL&gt; 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á.<BR>KL&gt; HW: <BR>KL&gt; do GPIO2 jsem 
  zapojil mirkospínač k 0V a nakonfiguroval pullup.<BR>KL&gt; na GPIO0 je výstup 
  pro LED přes odpor k +5.<BR>KL&gt; Ostatní vstupy nehrají roli.<BR>KL&gt; 
  SW:<BR>KL&gt; Abych si (vyloženě z cvičných důvodů) ověřil že podprogram ISR 
  <BR>KL&gt; funguje dobře, tak v obsluze invertuju registr temp1(ř.65) a tím 
  pak <BR>KL&gt; přepisuju porty GPIO(ř.46) - LEDka by měla na každé kliknutí 
  změnit stav.<BR>KL&gt; Na vstupu GPIO2 jsou od mikrospínače odskoky v délce 
  asi 400 us.<BR>KL&gt; Tak jsem si řekl, dobrá - při prvním sepnutí se zakáže 
  přerušení a <BR>KL&gt; povolí se až po zpoždění 2 ms. Jenže to nefunguje - na 
  mikrospínač <BR>KL&gt; klofu jak zběsilý a občas to přepne.<BR>KL&gt; Když 
  zpoždění zvýším na 200 ms (ř.68 - movlw 0) tak to vcelku pravidelně přepne po 
  dvojkliku.<BR>KL&gt; Ale pokud ošetřím vstup kondenzátorem (odskoky podle 
  osciloskopu<BR>KL&gt; zmizí) funguje to tak jak chci (na každé kliknutí se 
  překlopí) i bez zpoždění.<BR>KL&gt; No jo, jenže já chci ty odskoky ošetřit 
  programem a ne kondenzátorem. <BR>KL&gt; Mohl byste někdo, pro koho je tohle 
  denní rutina říct, kde dělám <BR>KL&gt; chybu ? Případně se podělit o obsluhu 
  přerušení od odskakujícího spínače po vašem ?<BR>KL&gt; Jelikož se 
  programováním bavím občas po večerech a za týden vše <BR>KL&gt; zapomenu, je 
  ten program až infantilně komentovaný - ale já to tak potřebuju...<BR>KL&gt; 
  Díky za trpělivost...<BR><BR>KL&gt;&nbsp; 
  &lt;&lt;int.asm&gt;&gt;<BR><BR>KL&gt;&nbsp; 
  Kručinský<BR><BR><BR><BR>_______________________________________________<BR>HW-list 
  mailing list&nbsp; -&nbsp; sponsored by <A 
  href="http://www.HW.cz">www.HW.cz</A> <A 
  href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</A> <A 
  href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</A><BR>_______________________________________________<BR>HW-list 
  mailing list&nbsp; -&nbsp; sponsored by <A 
  href="http://www.HW.cz">www.HW.cz</A><BR><A 
  href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</A><BR><A 
  href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</A></BLOCKQUOTE></BODY></HTML>