<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=13849&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-01-07T15:21:54+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13849&amp;mode</id>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-01-07T15:21:54+01:00</updated>
<published>2016-01-07T15:21:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149886#p149886</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149886#p149886"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149886#p149886"><![CDATA[
Jeżeli oba układy będą miały wspólne masy oraz poziomy zasilania będą zgodne (oba 5V lub oba 3,3V) to możesz śmiało łączyć. Jak chcesz mieć bardziej zaawansowane połączenie, to możesz też pomyśleć o wysyłaniu danych między układami po RS232 / SPI / I2C (TWI) <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 7 sty 2016, o 15:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pawelszel1993]]></name></author>
<updated>2016-01-07T12:30:53+01:00</updated>
<published>2016-01-07T12:30:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149875#p149875</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149875#p149875"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149875#p149875"><![CDATA[
Już obsługuje licznik impulsów wszytko fajnie działa, mam na lcd to co chciałem i dziekuje za wszelekie podpowiedzi <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2 sty 2016<br /> *      Author: Paweł<br /> */<br />//czestotliwosc taktowania = 8mhz, preskaler = 256, OCCR1A= 3124 ATMEGA 8<br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define LED1_PIN (1&lt;&lt;PC5)<br />#define LED1_ON PORTC &amp;= ~LED1_PIN;<br />#define LED1_OFF PORTC |= LED1_PIN;<br /><br />#define LED2_PIN (1&lt;&lt;PC4)<br />#define LED2_ON PORTC &amp;= ~LED2_PIN;<br />#define LED2_OFF PORTC |= LED2_PIN;<br /><br />#define Key1 (1&lt;&lt;PC3)<br />#define Key2 (1&lt;&lt;PC2)<br /><br />#define zalacznik (1&lt;&lt;PC1)<br />#define stop_licznik (1&lt;&lt;PC0)<br /><br />volatile int start = 0;<br />volatile int licznik = 0;<br />volatile int zmienna_lcd = 0;<br />volatile long int n = 0;<br /><br /><br />volatile char dziesiatka = 0;<br />volatile int sekunda = 0;<br />volatile int zbocza = 0;<br />volatile int sekunda_diody = 0;<br /><br />int main(){<br /><br />        //DDRD  = 0xFF;<br />        //PORTD = 0xFF;<br />        lcd_init();<br />        //lcd_home();<br />        lcd_cls();<br /><br />            //DDRC  = 0xFF;  //KIERUNEK PINU PC5 WYJSCIOWY<br />        //PORTC = 0xFF; // WYLACZENIE DIODY LED<br /><br />        DDRC |= (1&lt;&lt;PC4)|(1&lt;&lt;PC5);<br />        PORTC |= (1&lt;&lt;PC4)|(1&lt;&lt;PC5);<br /><br />        PORTC |= Key1 | Key2 | zalacznik |stop_licznik;<br /><br />        TCCR1A = ((0&lt;&lt;WGM11) | (0&lt;&lt;WGM10));<br />        TCCR1B |= ((1&lt;&lt;ICES1) | (1&lt;&lt;WGM12) | (1&lt;&lt;CS10)); //USTAWIENIE TIMER1 NA CTC mode<br />        //TCCR1B |= (1&lt;&lt;ICES1); // WYBOR ZBOCZA WYFARZENIA - reakcja na zbocza narastające<br />        //TCCR1B |= (1&lt;&lt;WGM12); // TRYB CTC<br />        //TCCR1B |= (1&lt;&lt;CS12); // PRESKALER 256<br />        //OCR1A = 3124;<br />        OCR1A = 1000;<br />        TIMSK |= (1 &lt;&lt;OCIE1A); //odblokowanie przerwana ctc wygenerowanego przy zrownaniu sie licznika z rejestrem OCR1A<br /><br />        sei(); //odblokowanie globalne przerwań<br />/*<br />        lcd_init();<br />        lcd_home();<br />        lcd_cls();<br />        lcd_locate(0,0);<br />        lcd_str_P(PSTR(&quot;Licznik impulsOw&quot;)); /* wyświetl napis w zerowej linii LCD */<br /><br />        lcd_init();<br />                //lcd_home();<br />                lcd_cls();<br />                lcd_locate(1,2);<br />                lcd_str(&quot;LICZNIK&quot;);<br />while(1)<br />{<br /><br /><br /><br />       if(!(PINC &amp; Key1)){<br />           _delay_ms(20); // oczekiwanie na ustanie drgań styków<br />           if(!(PINC &amp; Key1)){<br />                   LED2_ON;<br /><br />                   licznik = 0;<br />               sekunda = 0;<br />                   start = 1;<br /><br />                   lcd_cls();<br />                   lcd_locate(1,5);<br />                                   lcd_str(&quot;USZANOWANKO&quot;);<br /><br />           }<br />       }<br /><br />       if(!(PINC &amp; Key2)){<br />                   _delay_ms(20); // oczekiwanie na ustanie drgań styków<br />                   if(!(PINC &amp; Key2)){<br />                           start=0;<br />                           LED2_OFF;<br />                          // n = sekunda;<br />                           lcd_cls();<br />                           lcd_locate(0,0);<br />                        lcd_int(n);<br />                        //lcd_cls();<br />                        //lcd_int( n );<br />                   }<br />              }<br />       /////////////////////////////////////OBCE SYGNALY///////////////////////////////////////////////////<br />       if(!(PINC &amp; zalacznik)){<br />                  _delay_ms(20); // oczekiwanie na ustanie drgań styków<br />                  if(!(PINC &amp; zalacznik)){<br />                          LED2_ON;<br /><br />                          licznik = 0;<br />                      sekunda = 0;<br />                          start = 1;<br /><br />                          lcd_cls();<br />                          lcd_locate(1,5);<br />                                          lcd_str(&quot;USZANOWANKO&quot;);<br /><br />                  }<br />              }<br /><br />              if(!(PINC &amp; stop_licznik)){<br />                          _delay_ms(20); // oczekiwanie na ustanie drgań styków<br />                          if(!(PINC &amp; stop_licznik)){<br />                                  start=0;<br />                                  LED2_OFF;<br />                                 // n = sekunda;<br />                                  lcd_cls();<br />                                  lcd_locate(0,0);<br />                               lcd_int(n);<br />                               //lcd_cls();<br />                               //lcd_int( n );<br />                          }<br />                     }<br />       //////////////////////////////////////////////////////////////////////////////////////////////////<br /><br />       if(sekunda_diody == 3){<br />           LED1_ON;<br />       }<br /><br />       if(sekunda_diody == 7){<br />           LED1_OFF;<br /><br />       }<br /><br /><br />}<br />}<br />//procedura obslugi przerwan<br />ISR(TIMER1_COMPA_vect)<br />{<br />        //////obliczanie czasu pomiedzy dwoma zboczami narastajacymi/////<br /><br /> if (start==1){<br />         ++licznik;<br />        if(licznik &gt;= 10)<br />        {<br />               licznik = 0;<br />                ++ sekunda;<br />                ++sekunda_diody;<br />                if (sekunda_diody &gt;= 7 ){<br />                sekunda_diody =0;<br /><br />                }<br />        }<br /> }<br /><br /> if (start==0){<br />          n=10*sekunda+licznik;<br /><br />  }<br /><br /><br /><br />}[/syntax] <br />Mam jeszcze jedno pytanie troche z innej beczki: wykorzystuje jedną atmege 16 do obsługiwania kodów z podczerwieni i sterowania silnikami DC - czyli zdalny tryb sterowania. Atmege 8 wykorzystuje jako licznik pomiedzy 2 zboczami narastającymi - jest to tryb półautomatyczny. Teraz chciał bym w bardzo prosty sposób z atmegi 8 dawać sygnały atmedze 16 jak maja pracować silniki DC i zastanawiałem się czy mogę w atmedze 16 ustawić 4 porty jako wejscia- podłączenie na stanu wysokiego, a na atmedze 8 4 piny jako wyjścia (coś jak sterowanie klawiszami)? Czy takie podłączenie 2 procesorów spowoduje uszkodzenie ich uszkodzenie?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9508">pawelszel1993</a> — 7 sty 2016, o 12:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-01-06T21:07:49+01:00</updated>
<published>2016-01-06T21:07:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149841#p149841</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149841#p149841"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149841#p149841"><![CDATA[
A co chcesz tym wyświetlić? n to jest liczba ...<br />[syntax=c]lcd_str(n);[/syntax]<br />Zwracaj uwagi na informacje podawana przy kompilacji - okno konsoli (Console) oraz na ikonki w kodzie.<br /><br />Jeżeli nie masz poprawnego wyświetlania, to znaczy, że masz coś nie tak w podłączeniu wyświetlacza. Na pewno piny są poprawnie podłączone zgodnie z zapisem w hd44780.h?<br /><br /><br />Przy okazji usuń zdublowane includy[syntax=c]#include&lt;avr/io.h&gt;<br />#include&lt;avr/io.h&gt;[/syntax]<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 6 sty 2016, o 21:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-01-06T08:32:40+01:00</updated>
<published>2016-01-06T08:32:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149768#p149768</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149768#p149768"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149768#p149768"><![CDATA[
Witam<br /><div class="quotetitle">pawelszel1993 napisał(a):</div><div class="quotecontent"><br />lcd nic nie wyswietla<br /></div><br />...nic jako nic ?<br />Nie masz błędów po kompilacji?<br />Może spróbuj dla testów zaraz po while(1){.. wpisać np.:<br />[syntax=c]lcd_locate(0,0);<br /> lcd_int(5);[/syntax]<br />Jak podpięty RW?<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 6 sty 2016, o 08:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pawelszel1993]]></name></author>
<updated>2016-01-06T00:28:33+01:00</updated>
<published>2016-01-06T00:28:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149766#p149766</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149766#p149766"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149766#p149766"><![CDATA[
Zostałem jeszcze przy tamedze 8, podpiąłem lcd i staram sie wyswietlic wartosc &quot;n&quot;, tylko coś mi kurcze nie wyswietla ani napisów ani wartości, sprawdziłem dokładnie lcd i ustawiłem kontrast.<br /><br />Podłaczenie LCD:<br />[syntax=c]//----------------------------------------------------------------------------------------<br />//<br />//Ustawienia sprzętowe połączeń sterownika z mikrokontrolerem<br />//<br />//----------------------------------------------------------------------------------------<br />// tu konfigurujemy port i piny do jakich podłączymy linie D7..D4 LCD<br />#define LCD_D7PORT  D<br />#define LCD_D7 3<br />#define LCD_D6PORT  D<br />#define LCD_D6 2<br />#define LCD_D5PORT  D<br />#define LCD_D5 1<br />#define LCD_D4PORT  D<br />#define LCD_D4 0<br /><br /><br />// tu definiujemy piny procesora do których podłączamy sygnały RS,RW, E<br />#define LCD_RSPORT D<br />#define LCD_RS 5<br /><br />#define LCD_RWPORT D<br />#define LCD_RW 6<br /><br />#define LCD_EPORT D<br />#define LCD_E 7<br />//------------------------------------------------  koniec ustawień sprzętowych ---------------[/syntax]<br /><br /><br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2 sty 2016<br /> *      Author: Paweł<br /> */<br />//czestotliwosc taktowania = 8mhz, preskaler = 256, OCCR1A= 3124 ATMEGA 8<br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;LCD/lcd44780.h&quot;<br /><br />#define LED1_PIN (1&lt;&lt;PC5)<br />#define LED1_ON PORTC &amp;= ~LED1_PIN;<br />#define LED1_OFF PORTC |= LED1_PIN;<br /><br />#define LED2_PIN (1&lt;&lt;PC4)<br />#define LED2_ON PORTC &amp;= ~LED2_PIN;<br />#define LED2_OFF PORTC |= LED2_PIN;<br /><br />#define Key1 (1&lt;&lt;PC3)<br />#define Key2 (1&lt;&lt;PC2)<br /><br />volatile int start = 0;<br />volatile int licznik = 0;<br />volatile int zmienna_lcd = 0;<br />volatile int n = 0;<br /><br /><br />volatile char dziesiatka = 0;<br />volatile int sekunda = 0;<br />volatile int zbocza = 0;<br /><br />int main(){<br /><br />//DDRD  = 0xFF;<br />//PORTD = 0xFF;<br />lcd_init();<br />//lcd_home();<br />lcd_cls();<br /><br />    //DDRC  = 0xFF;  //KIERUNEK PINU PC5 WYJSCIOWY<br />        //PORTC = 0xFF; // WYLACZENIE DIODY LED<br /><br />        DDRC |= (1&lt;&lt;PC4)|(1&lt;&lt;PC5);<br />        PORTC |= (1&lt;&lt;PC4)|(1&lt;&lt;PC5);<br /><br />        PORTC |= Key1 | Key2;<br /><br />        TCCR1A = ((0&lt;&lt;WGM11) | (0&lt;&lt;WGM10));<br />        TCCR1B |= ((1&lt;&lt;ICES1) | (1&lt;&lt;WGM12) | (1&lt;&lt;CS12)); //USTAWIENIE TIMER1 NA CTC mode<br />        //TCCR1B |= (1&lt;&lt;ICES1); // WYBOR ZBOCZA WYFARZENIA - reakcja na zbocza narastające<br />        //TCCR1B |= (1&lt;&lt;WGM12); // TRYB CTC<br />        //TCCR1B |= (1&lt;&lt;CS12); // PRESKALER 256<br />        OCR1A = 3124;<br />        TIMSK |= (1 &lt;&lt;OCIE1A); //odblokowanie przerwana ctc wygenerowanego przy zrownaniu sie licznika z rejestrem OCR1A<br /><br />        sei(); //odblokowanie globalne przerwań<br />/*<br />        lcd_init();<br />        lcd_home();<br />        lcd_cls();<br />        lcd_locate(0,0);<br />        lcd_str_P(PSTR(&quot;Licznik impulsOw&quot;)); /* wyświetl napis w zerowej linii LCD */<br /><br />        lcd_init();<br />        //lcd_home();<br />        lcd_cls();<br />        lcd_locate(1,5);<br />        lcd_str(&quot;FF&quot;);<br />while(1)<br />{<br /><br /><br /><br />       if(!(PINC &amp; Key1)){<br />       _delay_ms(20); // oczekiwanie na ustanie drgań styków<br />       if(!(PINC &amp; Key1)){<br />       LED2_ON;<br /><br />       licznik = 0;<br />               sekunda = 0;<br />       start = 1;<br />       }<br />       }<br /><br />       if(!(PINC &amp; Key2)){<br />              _delay_ms(20); // oczekiwanie na ustanie drgań styków<br />              if(!(PINC &amp; Key2)){<br />              start=0;<br />              LED2_OFF;<br />              n = sekunda;<br />              lcd_locate(0,0);<br />           lcd_str(n);<br />           //lcd_cls();<br />           //lcd_int( n );<br />              }<br />              }<br /><br />       if(sekunda == 3){<br />       LED1_ON;<br />       }<br /><br />       if(sekunda == 7){<br />       LED1_OFF;<br />       }<br /><br /><br />}<br />}<br />//procedura obslugi przerwan<br />ISR(TIMER1_COMPA_vect)<br />{<br />        //////obliczanie czasu pomiedzy dwoma zboczami narastajacymi/////<br /><br /> if (start){<br /> ++licznik;<br />if(licznik == 10)<br />{<br />licznik = 0;<br />++ sekunda;<br />}<br /> }<br /><br /><br /><br />}[/syntax]<br /><br />Licznik działa, diody się swieca zgodnie z założenie programu, tylko ten lcd nic nie wyswietla, moze ktoś dopatrzył się błędu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9508">pawelszel1993</a> — 6 sty 2016, o 00:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-01-05T17:17:52+01:00</updated>
<published>2016-01-05T17:17:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149728#p149728</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149728#p149728"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149728#p149728"><![CDATA[
Możesz konfigurować sobie fuse bity też bezpośrednio z Eclipse <a href="http://forum.atnel.pl/topic13557.html#p145354"  class="postlink">http://forum.atnel.pl/topic13557.html#p145354</a>. Wgrywanie ich jest w dostępne w Project -&gt; Properties i przy avrdude masz zakładkę fuses i tam możesz wybrać czy programujesz konkretną wartość, czy z formatki fuses.bits czy tam ręcznie zaznaczysz które mają być ustawione.<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 5 sty 2016, o 17:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[zoom]]></name></author>
<updated>2016-01-05T14:54:10+01:00</updated>
<published>2016-01-05T14:54:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149723#p149723</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149723#p149723"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149723#p149723"><![CDATA[
np. programem avr burn-o-mat<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=685">zoom</a> — 5 sty 2016, o 14:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pawelszel1993]]></name></author>
<updated>2016-01-05T13:51:24+01:00</updated>
<published>2016-01-05T13:51:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149717#p149717</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149717#p149717"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149717#p149717"><![CDATA[
A może mi ktoś podpowiedzieć co mogę zrobić żeby ustawiać czestotliwości taktowania na atmedze 32 która nie jest obsługiwana przez  mkAVR calculator? Ponieważ chiałem ten projekt przeniesć na wiekszy procek i trochę rozbudować.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9508">pawelszel1993</a> — 5 sty 2016, o 13:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-01-04T17:55:10+01:00</updated>
<published>2016-01-04T17:55:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149653#p149653</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149653#p149653"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149653#p149653"><![CDATA[
To to już chyba sam umiesz zrobić .... <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />[syntax=c]zmienna_dla_lcd = licznik; // ewentulanie sekunda, bo nie wiem która to dla ciebie czas[/syntax]<br />Oczywiście dajesz to w warunku drugiego klawisza i masz zapamiętany stan licznika. I tą zmienną wyświetlasz na lcd.<br /><br />Możesz też bazować na inteligentnym wyświetlaniu wartości ze zmiennej licznik / sekundy - wyświetlasz tylko gdy masz start = 0.<br /><br />-- <br />Pozdrawiam,<br />Robert<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />A możesz też zrobić inteligentny warunek (bazując tylko na zmienych start i licznik / sekunda) i wyświetlać informacje:<br />- ostatni odstęp między naciśniętymi klawiszami<br />- informację o tym że naciśnięto klawisz 1 i czas jaki do ej pory minął od tego zdarzenia<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 5 minutach ]</span></strong><br /><br />A jak chcesz się jeszcze pobawić, to możesz w prosty sposób wyświetlać minimalny oraz maksymalny czas odstępu (ze średnią wartości, jest już trochę większy problem)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 4 sty 2016, o 17:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pawelszel1993]]></name></author>
<updated>2016-01-04T16:14:03+01:00</updated>
<published>2016-01-04T16:14:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149645#p149645</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149645#p149645"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149645#p149645"><![CDATA[
Poprawiłem błędy i juz program działa [syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2 sty 2016<br /> *      Author: Paweł<br /> */<br />//czestotliwosc taktowania = 8mhz, preskaler = 256, OCCR1A= 3124 ATMEGA 8<br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define LED1_PIN (1&lt;&lt;PC5)<br />#define LED1_ON PORTC &amp;= ~LED1_PIN;<br />#define LED1_OFF PORTC |= LED1_PIN;<br /><br />#define LED2_PIN (1&lt;&lt;PC4)<br />#define LED2_ON PORTC &amp;= ~LED2_PIN;<br />#define LED2_OFF PORTC |= LED2_PIN;<br /><br />#define Key1 (1&lt;&lt;PD0)<br />#define Key2 (1&lt;&lt;PD1)<br /><br />volatile int start = 0;<br />volatile int licznik = 0;<br /><br />volatile char dziesiatka = 0;<br />volatile int sekunda = 0;<br />volatile int zbocza = 0;<br /><br />int main(){<br />        DDRC |= LED1_PIN|LED2_PIN;  //KIERUNEK PINU PC5 WYJSCIOWY<br />        PORTC |= LED1_PIN|LED2_PIN; // WYLACZENIE DIODY LED<br /><br />        PORTD |= Key1 | Key2;<br /><br />        TCCR1A = ((0&lt;&lt;WGM11) | (0&lt;&lt;WGM10));<br />        TCCR1B |= ((1&lt;&lt;ICES1) | (1&lt;&lt;WGM12) | (1&lt;&lt;CS12)); //USTAWIENIE TIMER1 NA CTC mode<br />        //TCCR1B |= (1&lt;&lt;ICES1); // WYBOR ZBOCZA WYFARZENIA - reakcja na zbocza narastające<br />        //TCCR1B |= (1&lt;&lt;WGM12); // TRYB CTC<br />        //TCCR1B |= (1&lt;&lt;CS12); // PRESKALER 256<br />        OCR1A = 3124;<br />        TIMSK |= (1 &lt;&lt;OCIE1A); //odblokowanie przerwana ctc wygenerowanego przy zrownaniu sie licznika z rejestrem OCR1A<br />        sei(); //odblokowanie globalne przerwań<br /><br />while(1)<br />{<br />       if(!(PIND &amp; Key1)){<br />       _delay_ms(20); // oczekiwanie na ustanie drgań styków<br />       if(!(PIND &amp; Key1)){<br />       LED2_ON;<br /><br />       licznik = 0;<br />               sekunda = 0;<br />       start = 1;<br />       }<br />       }<br /><br />       if(!(PIND &amp; Key2)){<br />              _delay_ms(20); // oczekiwanie na ustanie drgań styków<br />              if(!(PIND &amp; Key2)){<br />              start=0;<br />              LED2_OFF;<br />              }<br />              }<br /><br />       if(sekunda == 3){<br />       LED1_ON;<br />       }<br /><br />       if(sekunda == 7){<br />       LED1_OFF;<br />       }<br /><br />}<br />}<br />//procedura obslugi przerwan<br />ISR(TIMER1_COMPA_vect)<br />{<br />        //////obliczanie czasu pomiedzy dwoma zboczami narastajacymi/////<br /><br /> if (start){<br /> ++licznik;<br />if(licznik == 10)<br />{<br />licznik = 0;<br />++ sekunda;<br />}<br /> }<br /><br /><br /><br />}[/syntax] teraz dodam wyswietlanie wartosci na wyswietlaczy lcd. Moje pytanie to jak moge zrobić żeby przy wcisnieciu 2 klawisza zapisywać sobie obliczny czas timera1 w zmiennej którą wyswietle na wyśiwetlaczu lcd?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9508">pawelszel1993</a> — 4 sty 2016, o 16:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-01-04T15:23:33+01:00</updated>
<published>2016-01-04T15:23:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149641#p149641</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149641#p149641"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149641#p149641"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Niestety nie uzyskuje tutaj oczekiwanego efektu.<br /></div>A jaki efekt uzyskujesz?<br /><br />Tak na szybko, a przy okazji by było przejrzyściej, zmieniłbym obsługę przerwania na:<br />[syntax=c]ISR(TIMER1_COMPA_vect)<br />{<br />if (start)<br />{<br />         ++licznik;<br />         if (licznik == 10)<br /> {<br />licznik = 0;<br />++sekunda;<br />         }<br />}<br />}[/syntax]<br />a zerowanie licznika i sekund przeniósłbym do uruchamianiu startu:<br />[syntax=c]if(!(PIND &amp; Key1))<br />{<br />licznik = 0;<br />sekunda = 0;<br />start = 1;<br />}[/syntax]<br /><br />-- <br />Pozdrawiam,<br />Robert<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 4 sty 2016, o 15:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pawelszel1993]]></name></author>
<updated>2016-01-04T13:51:00+01:00</updated>
<published>2016-01-04T13:51:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149632#p149632</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149632#p149632"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149632#p149632"><![CDATA[
Próbowałem to zrobić przy pomocy 2 klawiszy, nie wiem czy o to Ci chodziło. Niestety nie uzyskuje tutaj oczekiwanego efektu.<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2 sty 2016<br /> *      Author: Paweł<br /> */<br />//czestotliwosc taktowania = 8mhz, preskaler = 256, OCCR1A= 3124 ATMEGA 8<br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define LED1_PIN (1&lt;&lt;PC5)<br />#define LED1_ON PORTC &amp;= ~LED1_PIN;<br />#define LED1_OFF PORTC |= LED1_PIN;<br /><br />#define LED2_PIN (1&lt;&lt;PC4)<br />#define LED2_ON PORTC &amp;= ~LED2_PIN;<br />#define LED2_OFF PORTC |= LED2_PIN;<br /><br />#define Key1 (1&lt;&lt;PD0)<br />#define Key2 (1&lt;&lt;PD1)<br /><br />volatile int start = 0;<br />volatile int licznik = 0;<br /><br />volatile char dziesiatka = 0;<br />volatile int sekunda = 0;<br />volatile int zbocza = 0;<br /><br />int main(){<br />        DDRD |= LED1_PIN;  //KIERUNEK PINU PC5 WYJSCIOWY<br />        PORTC |= LED1_PIN; // WYLACZENIE DIODY LED<br /><br />        PORTC |= Key1;<br /><br />        TCCR1A = ((0&lt;&lt;WGM11) | (0&lt;&lt;WGM10));<br />        TCCR1B |= ((1&lt;&lt;ICES1) | (1&lt;&lt;WGM12) | (1&lt;&lt;CS12)); //USTAWIENIE TIMER1 NA CTC mode<br />        //TCCR1B |= (1&lt;&lt;ICES1); // WYBOR ZBOCZA WYFARZENIA - reakcja na zbocza narastające<br />        //TCCR1B |= (1&lt;&lt;WGM12); // TRYB CTC<br />        //TCCR1B |= (1&lt;&lt;CS12); // PRESKALER 256<br />        OCR1A = 3124;<br />        TIMSK |= (1 &lt;&lt;OCIE1A); //odblokowanie przerwana ctc wygenerowanego przy zrownaniu sie licznika z rejestrem OCR1A<br />        sei(); //odblokowanie globalne przerwań<br /><br />while(1)<br />{<br />       if(!(PIND &amp; Key1)){<br />       _delay_ms(20); // oczekiwanie na ustanie drgań styków<br />       if(!(PIND &amp; Key1)){<br />    start=1;<br />       }<br />       }<br /><br />       if(!(PIND &amp; Key2)){<br />              _delay_ms(20); // oczekiwanie na ustanie drgań styków<br />              if(!(PIND &amp; Key2)){<br />              start=0;<br />              }<br />              }<br /><br />       if(sekunda == 5){<br />       LED1_ON;<br />       }<br /><br />       if(sekunda == 7){<br />       LED1_OFF;<br />       }<br /><br />}<br />}<br />//procedura obslugi przerwan<br />ISR(TIMER1_COMPA_vect)<br />{<br />        //////obliczanie czasu pomiedzy dwoma zboczami narastajacymi/////<br /><br /> if (start==1){<br /> ++licznik;<br /> } else{<br /> licznik=0;<br /> sekunda=0;<br /> }<br /> if( licznik ==10){<br /> ++sekunda;<br /> licznik=0;<br /> }<br /><br /><br /><br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9508">pawelszel1993</a> — 4 sty 2016, o 13:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2016-01-03T19:07:04+01:00</updated>
<published>2016-01-03T19:07:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149573#p149573</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149573#p149573"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149573#p149573"><![CDATA[
Ustawiasz zmienną start =0.<br />Gdy odbierzesz zdarzenia naciśnięcia przycisku i masz start = 0, to ustawiasz zmienną licznik = 0 i zmieniasz start na 1. A gdy po naciśnięciu przycisku masz start = 1, to zmieniasz go na 0 i robisz coś z uzyskaną daną czasu w zmiennej licznik.<br />W przerwaniu przepełnienia timera sprawdzasz czy masz start = 1 i jak tak to robisz licznik++.<br /><br />Możesz też robić ciągły pomiar bez używania zmiennej start. Każde naciśnięcie &quot;zapamiętuje&quot; aktualną wartość licznik a następnie ją zeruje. W timerze zawsze zwiększasz wartość licznik.<br /><br />-- <br />Pozdrawiam,<br />Robert<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 7 minutach ]</span></strong><br /><br />Przerwanie przepełnienia timera zlicza ci czas np. ilość milisekund.<br />Przerwanie INT reaguje na zmianę stanu na linii, czyli zdarzenie naciśnięcia.<br /><br />Będziesz jeszcze musiał uwzględnić problem &quot;drgania styków&quot;. Ale na ten temat masz artykuły Mirka:<br /><a href="http://mirekk36.blogspot.com/2012/10/drgania-stykow-to-bajki-wiec-jak-to.html"  class="postlink">http://mirekk36.blogspot.com/2012/10/drgania-stykow-to-bajki-wiec-jak-to.html</a><br /><a href="http://forum.atnel.pl/topic1633.html"  class="postlink">http://forum.atnel.pl/topic1633.html</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 3 sty 2016, o 19:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pawelszel1993]]></name></author>
<updated>2016-01-03T17:30:48+01:00</updated>
<published>2016-01-03T17:30:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149568#p149568</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149568#p149568"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=149568#p149568"><![CDATA[
Ponieważ jeszcze nie poradziłem sobie z tym problemem, chciał bym wrócić do tematu i prośić o naprowadzenie. Próbuje coś z tym zrobić i jestem obecnie takim etapie<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 2 sty 2016<br /> *      Author: Paweł<br /> */<br />//czestotliwosc taktowania = 8mhz, preskaler = 256, OCCR1A= 3124 ATMEGA 8<br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/io.h&gt;<br />#include&lt;avr/interrupt.h&gt;<br /><br />#define LED1_PIN (1&lt;&lt;PC5)<br />#define LED1_ON PORTC &amp;= ~LED1_PIN;<br />#define LED1_OFF PORTC |= LED1_PIN;<br /><br />#define LED2_PIN (1&lt;&lt;PC4)<br />#define LED2_ON PORTC &amp;= ~LED2_PIN;<br />#define LED2_OFF PORTC |= LED2_PIN;<br /><br />volatile char dziesiatka = 0;<br />volatile int sekunda = 0;<br />volatile int zbocza = 0;<br /><br />int main(){<br />DDRC |= LED1_PIN;  //KIERUNEK PINU PC5 WYJSCIOWY<br />PORTC |= LED1_PIN; // WYLACZENIE DIODY LED<br /><br />TCCR1A = ((0&lt;&lt;WGM11) | (0&lt;&lt;WGM10));<br />TCCR1B |= ((1&lt;&lt;ICES1) | (1&lt;&lt;WGM12) | (1&lt;&lt;CS12)); //USTAWIENIE TIMER1 NA CTC mode<br />//TCCR1B |= (1&lt;&lt;ICES1); // WYBOR ZBOCZA WYFARZENIA - reakcja na zbocza narastające<br />//TCCR1B |= (1&lt;&lt;WGM12); // TRYB CTC<br />//TCCR1B |= (1&lt;&lt;CS12); // PRESKALER 256<br />OCR1A = 3124; <br />TIMSK |= (1 &lt;&lt;OCIE1A); //odblokowanie przerwana ctc wygenerowanego przy zrownaniu sie licznika z rejestrem OCR1A<br />sei(); //odblokowanie globalne przerwań<br /><br />while(1)<br />{<br /><br /><br />}<br />}<br />//procedura obslugi przerwan<br />ISR(TIMER1_COMPA_vect)<br />{<br />//////obliczanie czasu pomiedzy dwoma zboczami narastajacymi/////<br /><br /><br /><br /><br /><br /><br />}[/syntax]<br />Nie do końca rozumiem procedurę obslugi przerwań, powinienem zliczać czas pomiedzy dwoma zboczami narastajacymi (czyli 1 a 2, 3 a 4, 5 a 6... ). Tak zaglądałem do noty katalogowej.<br />Prosze o pomoc w postaci naprowadzenia  <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> , nie w postaci gotowego kodu.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9508">pawelszel1993</a> — 3 sty 2016, o 17:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pawelszel1993]]></name></author>
<updated>2015-12-12T23:32:36+01:00</updated>
<published>2015-12-12T23:32:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147819#p147819</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147819#p147819"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147819#p147819"><![CDATA[
próbuje to zrozumieć na przykładzie podczerwieni <br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/sleep.h&gt;<br />#include &lt;inttypes.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define LED_PIN (1&lt;&lt;PC7);<br />#define LED_TOG PORTC ^= LED_PIN<br /><br />// KLAWISZ<br />//#define  KEY1_PIN (1&lt;&lt;PD7)<br />//#define  KEY2_PIN (1&lt;&lt;PD2)<br /><br /><br /><br />//#define KEY1_DOWN !(PIND &amp; KEY1_PIN)<br />//#define KEY2_DOWN !(PIND &amp; KEY2_PIN)<br /><br /><br /><br />//uint8_t klawisz1_wcisniety(void);  //deklaracja funkcja<br />//uint8_t klawisz2_wcisniety(void);  //deklaracja funkcja<br /><br /><br /><br />#define CZAS_IN (1&lt;&lt;PD6)<br /><br />volatile uint8_t flaga;<br />volatile uint8_t zbocza;<br /><br />void ir_init() {<br />DDRD &amp;= ~CZAS_IN;// pin jako wejście<br />PORTD |= CZAS_IN;// podciągnięcie pinu do VCC<br />#if TIMER1_PRESCALER == 1<br />TCCR1B |= (1&lt;&lt;CS10);         // Timer1 / 1<br />#endif<br />#if TIMER1_PRESCALER == 8<br />TCCR1B |= (1&lt;&lt;CS11);         // Timer1 / 8<br />#endif<br />#if TIMER1_PRESCALER == 64<br />  TCCR1B |= (1&lt;&lt;CS11)|(1&lt;&lt;CS10); // Timer1 / 64<br />#endif<br />#if TIMER1_PRESCALER == 256<br />TCCR1B |= (1&lt;&lt;CS12);         // Timer1 / 256<br />#endif<br /><br />TCCR1B &amp;= (1&lt;&lt;ICES1);      // Zbocze NARASTAJĄCE na ICP<br />zbocza ++;// zerowanie licznika występująych zboczy<br /><br />//TIMSK |= (1&lt;&lt;TICIE1);        // Przerwanie od ICP<br />//flaga = 0;// zerowanie flagi otrzymania kodu z pilota<br />}<br /><br />ISR(TIMER1_CAPT_vect){<br />if(zbocza = 1)<br />{<br />włącz timer<br />}<br /><br />if(zbocza = 2)<br />{<br />czas = TCCR1B;<br />wyłącz timer<br />if(zbocza = 2)<br />{<br />zbocza = 0<br />}<br />}[/syntax]<br /><br />czy mój tok myslenia jest dobry?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9508">pawelszel1993</a> — 12 gru 2015, o 23:32</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2015-12-12T22:40:56+01:00</updated>
<published>2015-12-12T22:40:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147816#p147816</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147816#p147816"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147816#p147816"><![CDATA[
Jak najbardziej, tym dość dokładnie można zmierzyć czas. Przykład - np. obsługa podczerwieni <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 12 gru 2015, o 22:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pawelszel1993]]></name></author>
<updated>2015-12-12T22:33:34+01:00</updated>
<published>2015-12-12T22:33:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147814#p147814</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147814#p147814"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147814#p147814"><![CDATA[
w sumie to zależy mi na jak dokładniejszym pomiarze rzędu 10us. Czy moge wykorzystac do tego port PD6 (ICP) na atmedze 32?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9508">pawelszel1993</a> — 12 gru 2015, o 22:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2015-12-12T21:10:27+01:00</updated>
<published>2015-12-12T21:10:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147801#p147801</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147801#p147801"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147801#p147801"><![CDATA[
...i wcale nie musisz do tego wykorzystywać INT, poza tym nie napisałeś jaki rząd dokładności cię interesuje - 1s, 100ms, 10ms, a może 10us...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 12 gru 2015, o 21:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[icer_cmg]]></name></author>
<updated>2015-12-12T18:27:44+01:00</updated>
<published>2015-12-12T18:27:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147782#p147782</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147782#p147782"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147782#p147782"><![CDATA[
A ja podpowiem Ci że gotowca - praktycznie z modyfikacją jednej linii znajdziesz w BB czyli niebieskim mirku. <br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >http://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><br /><br />A teraz mała wędka z mojej strony:<br />poczytaj o drganiach styków<br />po wykryciu wciśnięcia startujesz timer powiedzmy 100ms<br />w każdym cyknięciu sprawdzasz, czy klawisz znów wciśnięto. jeśli tak, to zwiększasz zmienną, jeśli nie wyłączasz timer i wartośc zmiennej określa ilość czasu pomiędzy wciśnięciami klawisza.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1636">icer_cmg</a> — 12 gru 2015, o 18:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rskup]]></name></author>
<updated>2015-12-12T17:49:50+01:00</updated>
<published>2015-12-12T17:49:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147781#p147781</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147781#p147781"/>
<title type="html"><![CDATA[Re: Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147781#p147781"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Witam chiałem prosić o program w którym obliczany był by czas pomiędzy przyciskaniem 2 przycisków.<br /></div><br />Listy do Świętego Mikołaja to chyba należy pisać nie w tym dziale.<br /><br />-- <br />Pozdrawiam,<br />Robert<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br />Osoby na forum mogą pomóc Ci zrozumieć, jak czegoś nie rozumiesz. Albo poprawić błędy jak coś nie działa poprawnie.<br />Ale nie licz, że ktoś będzie za Ciebie pisał program.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3427">rskup</a> — 12 gru 2015, o 17:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pawelszel1993]]></name></author>
<updated>2015-12-12T17:48:10+01:00</updated>
<published>2015-12-12T17:48:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147780#p147780</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147780#p147780"/>
<title type="html"><![CDATA[Obliczanie czasu pomiedzy wciskaniem przycisków]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13849&amp;p=147780#p147780"><![CDATA[
Witam chiałem prosić o program w którym obliczany był by czas pomiędzy przyciskaniem 2 przycisków. Domyślam się że trzeba to zrobić na przerwaniach INT, ale musze przyznac że, jestem noga z programowania i nie bardzo rozumiem tą procedurę. Z góry dziękuje za pomoc i wyrozumiałość.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9508">pawelszel1993</a> — 12 gru 2015, o 17:48</p><hr />
]]></content>
</entry>
</feed>