<?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=17102&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-12-19T19:20:48+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=17102&amp;mode</id>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-12-19T19:20:48+01:00</updated>
<published>2016-12-19T19:20:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177908#p177908</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177908#p177908"/>
<title type="html"><![CDATA[Re: Prosty metronom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177908#p177908"><![CDATA[
Witam<br /> <div class="quotetitle">SylwekK - elektroda napisał(a):</div><div class="quotecontent"><br />...wyjście słuchawkowe. Myślałem zamiast tego o opcji „kopania prądem” i być może kiedyś to zmodyfikuję<br /></div><br />O matko jakie ja miałem szczęście - mój nauczyciel rytm poloneza tylko wystukiwał mi palcem po głowie  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 19 gru 2016, o 19:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SylwekK]]></name></author>
<updated>2016-12-19T19:07:28+01:00</updated>
<published>2016-12-19T19:07:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177905#p177905</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177905#p177905"/>
<title type="html"><![CDATA[Re: Prosty metronom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177905#p177905"><![CDATA[
Pewnie chodzi o coś podobnego tylko z wyświetlaczem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><br /><!-- m --><a class="postlink" href="http://www.elektroda.pl/rtvforum/topic1921709.html" >http://www.elektroda.pl/rtvforum/topic1921709.html</a><!-- m --><br />Ja to zrobiłem na zwykłym liczniku programowym w przerwaniu. Znając tykanie przetrwania bez problemu wyliczysz ilość uderzeń na minutę. Moment startu i stopu liczenia rozpoznasz toglując jakiegoś bit'a w zmiennej przy każdym wciśnięciu guzika (z uwzględnieniem drgania stylów oczywiście). Dalej już powinno być łatwo <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1922">SylwekK</a> — 19 gru 2016, o 19:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-12-19T17:50:59+01:00</updated>
<published>2016-12-19T17:50:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177899#p177899</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177899#p177899"/>
<title type="html"><![CDATA[Re: Prosty metronom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177899#p177899"><![CDATA[
Witam<br />Nie pomogę z kodem, ponieważ na razie mam dla Ciebie propozycję co do idei metronomu.<br />Pierwsza rzecz która nie bardzo mi pasuje w Twoim pomyśle to sposób wyłapania tempa - w.g mnie kod powinien wyglądać tak: <br />-naciskasz przycisk REC i trzymając go, drugim przyciskiem &quot;nadajesz tempo&quot; np.: 1-2-3-4 lub 1-2-3<br />Liczysz jednostki zegarowe - zaczynasz liczyć po pierwszym naciśnięciu &quot;taktomierza&quot;, pomiędzy poszcz. taktami.<br />Znając interesujący Cie zakres tempa, jeśli np. po &quot;3&quot; czas oczekiwania na &quot;4&quot; jest zbyt długi znaczy to że taktowanie skończyło się na trójce.<br />Puszczasz REC i to co wstukałeś można odtworzyć.<br />Od strony muzycznej łatwiej jest &quot;nabić rytm&quot; stukając kilkakrotnie a od strony programowej szybciej to ogarniesz.<br />W Twoim kodzie naciśniesz przycisk i co?<br />I jeszcze jedno - ten guziczek od tempa nie może być typu microswitch - &quot;ciamka&quot; przy wciskaniu i przy puszczaniu a to może zmylić muzyka  <img src="https://forum.atnel.pl/images/smilies/icon_e_confused.gif" alt=":?" title="Boi się" /> <br />Wiem że nie ułatwiłem, ale ja tak widzę metronom z programowym ustawieniem tempa.<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 19 gru 2016, o 17:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sparrow-hawk]]></name></author>
<updated>2016-12-19T12:40:02+01:00</updated>
<published>2016-12-19T12:40:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177880#p177880</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177880#p177880"/>
<title type="html"><![CDATA[Re: Prosty metronom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177880#p177880"><![CDATA[
Proponuję zajrzeć jednak do noty. Co do twojego algorytmu, to skąd założenie, że f jest w [Hz]? Po drugie, to Timer0 w Atmega328P jest 8 bitowy, więc taki zapis: OCR0A |= 2000; jest błędny. Po trzecie, żeby to w ogóle miało jakikolwiek sens, to po obliczeniu zmiennej BPM lub f, powinieneś wyzerować zmienną czas. Po za tym nie wiem, czy zdajesz sobie sprawę, że twój algorytm obecnie ma roździelczość równą 60 uderzeń na minutę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10614">Sparrow-hawk</a> — 19 gru 2016, o 12:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[vitt]]></name></author>
<updated>2016-12-19T12:10:02+01:00</updated>
<published>2016-12-19T12:10:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177873#p177873</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177873#p177873"/>
<title type="html"><![CDATA[Re: Prosty metronom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177873#p177873"><![CDATA[
Nie rozumiem jak ma mi to pomóc skoro pod INT też będzie działać.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13803">vitt</a> — 19 gru 2016, o 12:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sparrow-hawk]]></name></author>
<updated>2016-12-19T12:01:27+01:00</updated>
<published>2016-12-19T12:01:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177872#p177872</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177872#p177872"/>
<title type="html"><![CDATA[Re: Prosty metronom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177872#p177872"><![CDATA[
W takim razie możesz spróbować z trybem pracy: Input Capture Unit, o ile możesz podłączyć przycisk pod któryś z pinów ICP.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10614">Sparrow-hawk</a> — 19 gru 2016, o 12:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[vitt]]></name></author>
<updated>2016-12-19T11:11:47+01:00</updated>
<published>2016-12-19T11:11:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177869#p177869</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177869#p177869"/>
<title type="html"><![CDATA[Re: Prosty metronom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177869#p177869"><![CDATA[
Drgania styków eliminuje sprzętowo. Chciałbym aby to działało z dokładnością od 40 uderzeń na minute do 200.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13803">vitt</a> — 19 gru 2016, o 11:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Sparrow-hawk]]></name></author>
<updated>2016-12-19T08:38:22+01:00</updated>
<published>2016-12-19T08:38:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177860#p177860</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177860#p177860"/>
<title type="html"><![CDATA[Re: Prosty metronom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177860#p177860"><![CDATA[
Przycisk na INT nie przejdzie, ze względu na drgania styków. Nie tędy droga. Nie potrzebujesz też zatrzymywać timera. Po za tym, nie zatrzymujesz go, tylko wyłączasz możliwość zgłaszania przerwań. Zmienne f i czas nie muszą być volatile. Zmienna f w ogóle jest mało potrzebna, a na pewno nie musi być zmienną globalną. Z jaką dokładnością chcesz mierzyć tę częstotliwość?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10614">Sparrow-hawk</a> — 19 gru 2016, o 08:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[vitt]]></name></author>
<updated>2016-12-18T23:48:09+01:00</updated>
<published>2016-12-18T23:48:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177846#p177846</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177846#p177846"/>
<title type="html"><![CDATA[Prosty metronom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17102&amp;p=177846#p177846"><![CDATA[
Witam!<br /><br />Konstruuje metronom na ATmega328p, który będzie pokazywał uderzenia na minutę po klikaniu przyciskiem w rytm muzyki. <br />Chce aby działał na zasadzie przerwania od INT1.<br />Wymysliłem to w ten sposób że w przerwaniu będę zatrzymywał timer by pozyskać wartość odmierzonego czasu w przerwaniu od TIMER0_COMPA oraz przeliczał na uderzenia na minutę a pozniej uruchamial by odmierzal czas pomiędzy impulsami. Jednak nie mam pojęcia co jest nie tak. Po naciśnięciu przycisku pokazuje mi się wartość 196 i przy kolejnym naciskaniu nic sie nie dzieje. Ponadto gdy chcę odczytać wartość czasu na lcd widnieje 0. Czy ktoś mógłby pobieżnie rzucić okiem na kod co w nim jest nie tak?<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;stdlib.h&gt;<br />#include &lt;stdio.h&gt;<br /><br />#include &quot;LCD.h&quot;<br /><br /><br />// zmienne globalne<br />volatile uint16_t czas = 0;<br />volatile uint8_t f = 0;<br />volatile uint8_t BPM = 0;<br /><br />char bufor&#91;3&#93;;<br /><br />int main(void){<br /><br />TCNT0 = 0;// wartosc poczatkowa timera<br />TCCR0A |= (1&lt;&lt;CS01)|(1&lt;&lt;WGM01);// preskaler 8 i CTC<br />OCR0A |= 2000;// ustawia 1000 Hz dla preskalera /8<br /><br />EICRA |= (1&lt;&lt;ISC11);// zbocze opadajace generuje przerwanie<br />EIMSK |= (1&lt;&lt;INT1);// ustawienie przerwania na pinie INT1<br /><br />LCD_Initalize();<br /><br />DDRD &amp;= ~(1&lt;&lt;PD3);// ustawienie PD3(INT1) jako wejscia<br />PORTD |= (1&lt;&lt;PD3);// pull-up<br /><br />sei();<br /><br />while(1){<br />LCD_GoTo(0,0);<br />sprintf(bufor,&quot;BPM = %u&quot;,BPM);<br />LCD_WriteText(bufor);<br /><br />}<br />}<br /><br />ISR(INT1_vect){<br />TIMSK0 &amp;= ~(1&lt;&lt;OCIE0A);// zatrzymanie timera<br />f=1/czas;// przeliczenie na czestotliwosc<br />BPM=f*60;// przeliczenie na uderzenia na minute<br />TIMSK0 |= (1&lt;&lt;OCIE0A);// uruchomienie timera<br />}<br /><br />ISR(TIMER0_COMPA_vect){<br />czas++;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13803">vitt</a> — 18 gru 2016, o 23:48</p><hr />
]]></content>
</entry>
</feed>