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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-04-22T15:49:46+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=2923&amp;mode</id>
<entry>
<author><name><![CDATA[pepe]]></name></author>
<updated>2013-04-22T15:49:46+01:00</updated>
<published>2013-04-22T15:49:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2923&amp;p=34970#p34970</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2923&amp;p=34970#p34970"/>
<title type="html"><![CDATA[Re: Miernik częstotliwości - Atmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2923&amp;p=34970#p34970"><![CDATA[
Są w pętli bo musze je zatrzymać do czasu obsłużenia wyświetlacza. Obsłuże wyświetlacz to uruchomie timery<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 59 minutach ]</span></strong><br /><br />Wina karty dzwiękowej, ale dzięki za pomoc <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=715">pepe</a> — 22 kwi 2013, o 15:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Janadamis]]></name></author>
<updated>2013-04-22T15:44:44+01:00</updated>
<published>2013-04-22T15:44:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2923&amp;p=34968#p34968</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2923&amp;p=34968#p34968"/>
<title type="html"><![CDATA[Re: Miernik częstotliwości - Atmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2923&amp;p=34968#p34968"><![CDATA[
Po pierwsze wywal ustawienie timerów z pętli while. Po co za każdym razem ma się to od nowa ustawiać.<br />Program jak dla mnie to dziwny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=288">Janadamis</a> — 22 kwi 2013, o 15:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pepe]]></name></author>
<updated>2013-04-22T10:42:51+01:00</updated>
<published>2013-04-22T10:42:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=2923&amp;p=34929#p34929</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=2923&amp;p=34929#p34929"/>
<title type="html"><![CDATA[Miernik częstotliwości - Atmega8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=2923&amp;p=34929#p34929"><![CDATA[
Mój kłopot polega na tym: miernik poprawnie mierzy częstotliwość sinusoidy do 16 kHz a prostokąta do 60 Hz, a przecież powinno poprawnie mierzyć tylko prostokąt. Używam karty dźwiękowej jako generatora. Układ atmega8; kwarc wewnętrzny 8MHz, kwarc zegarkowy na XTAL1/2 + 2x 22pF. <br />Kod poniżej, ubogi w komentarz ale jest prosty.<br /><br />[syntax=c]volatile uint16_t i=0;<br />volatile uint16_t freq=0;<br />volatile uint8_t pr=0;<br />int main(void)<br />{<br />lcd_init();<br />        sei();// GLOBALNE PRZERWANIA<br />OCR2 = 32;// 1 sekunda<br />ASSR = (1&lt;&lt;AS2); // Timer2 w trybie asynchronicznym<br />while(1){<br />lcd_cls();<br />lcd_str(&quot;Start&quot;);// STRING NA WYSWIETLACZ<br />_delay_ms(1000);<br />TIMSK=(1&lt;&lt;OCIE2);//T2 JAKO DALAY_MS<br />TCCR1B = (1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20);// T1 RISING EDGE<br />TCCR2 = (1&lt;&lt;WGM21)|(1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20);// PRESKALER 1024<br />while (pr == 0);// wait for one second<br />TCCR1B=0x00;    //stop timer1<br />        TIMSK=0x00;     //disable interrupt<br />        TCCR2 = 0;<br />lcd_cls();// CZYŚĆ WYSWIETLACZ<br />lcd_str(&quot;f=&quot;);<br />freq = TCNT1 + i*65536; // calculate the frequency as <br />lcd_int(TCNT1);<br />_delay_ms(1000);<br />TCNT1 = 0;<br />pr = 0;<br />i = 0;<br />}<br />}<br />ISR( TIMER1_OVF_vect )<br />{<br />i++;<br />}<br />ISR( TIMER2_COMP_vect )<br />{// 32 768 Hz<br />pr = 1;<br />}[/syntax]<br /><br />Dla prostokąta powyżej 100 Hz, częstotliwość mierzona jest trzy krotnie zawyżona.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=715">pepe</a> — 22 kwi 2013, o 10:42</p><hr />
]]></content>
</entry>
</feed>