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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-08-08T21:40:45+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=8069&amp;mode</id>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-08-08T21:40:45+01:00</updated>
<published>2014-08-08T21:40:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8069&amp;p=90782#p90782</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8069&amp;p=90782#p90782"/>
<title type="html"><![CDATA[Re: Atmega 32A timer1]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8069&amp;p=90782#p90782"><![CDATA[
8000000[Hz] / 1024 * 0.010[s] = 78.125<br />Wobec tego wartość rejestru OCR1A powinna wynieść 78.<br /><br />To 1024 albo 256 to tzw. preskaler czyli wstępny dzielnik częstotliwości i nijak się ma do wartości początkowej rejestrów OCRxy. Wzorcowy sygnał zegarowy (taktowanie procesora w Twoim przypadku 8MHz) jest dzielony przez ten właśnie dzielnik i takie &quot;wydłużone&quot; czasowo impulsy są podawane na układ liczący, który liczy do zadanej wartości OCRxy (lub innej - górne i dolne progi zależą od ustawień samego układu licznikowego).<br /><br />Zauważ w takim razie, że obliczona wartość 78 jest dodatkowym dzielnikiem dla układu liczącego, gdyż każdy impuls (wstępnie podzielony przez preskaler = 1024) zwiększa wartość licznika (rejestr TCNT0) i porównuje go z wartością 78. Wobec czego musi być aż 78 &quot;tyknięć&quot; zegara licznika, aby uzyskać zakładany czas (10ms).<br /><br />Jeżeli zastosujemy &quot;inżynierię odwrotną&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /> wtedy:<br />8000000[Hz] / 1024 / 78 = 100.16Hz, czyli w przybliżeniu 10ms.<br /><br />To przybliżenie wynika z faktu świadomego odrzucenia wartości ułamkowej początkowych obliczeń.<br />Jeżeli potrzebna jest dwukrotnie większa częstotliwość (dwa razy krótszy czas interwału) wtedy wystarczy tylko podzielić wartość 78 / 2 = 39. Uzyskamy wtedy 200Hz na które wskazuje moja poniższa uwaga.<br /><br /><br />Timer0 oraz Timer2 to liczniki 8-mio bitowe, a więc rejestr OCR2 jest również 8-mio bitowy. W takim razie <strong>OCR2 |= 410;</strong> powoduje zapisanie wartości 154 do OCR2 odrzucając najstarszy bit (pomijam ewentualną poprzednią wartość tego rejestru). W związku z tym tak naprawdę uzyskana częstotliwość to ok. 200Hz:<br /><br />8000000[Hz] / 256 / 154 = 202.92Hz =&gt; 5ms<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 8 sie 2014, o 21:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[-adam]]></name></author>
<updated>2014-08-08T20:47:20+01:00</updated>
<published>2014-08-08T20:47:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8069&amp;p=90763#p90763</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8069&amp;p=90763#p90763"/>
<title type="html"><![CDATA[Atmega 32A timer1]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8069&amp;p=90763#p90763"><![CDATA[
[syntax=c]TCCR1B |= (1&lt;&lt;WGM12);   <br />             TCCR1B |= (1&lt;&lt;CS12) | (1&lt;&lt;CS10);//1024<br />             OCR1A = ?;<br />            TIMSK = (1&lt;&lt;OCIE1A);[/syntax]<br /><br />Jaką wartość wpisać aby przy 8Mhz procesora czas do zerowania wynosił 10ms ,jak to liczyć tyle jest przykładów że już się w tym gubię. Jak to się ma do 1024 skoro liczy do podanej wartości ? <br />           Kiedyś działałem na drugim (liczy do 256) [syntax=c](1&lt;&lt;CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20)[/syntax] ale taki zapis jakoś działał [syntax=c]OCR2 |= 410;[/syntax] czy to dodawało do 256 i zerowało przy 410 ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4246">-adam</a> — 8 sie 2014, o 20:47</p><hr />
]]></content>
</entry>
</feed>