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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-02-28T18:37:11+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=17734&amp;mode</id>
<entry>
<author><name><![CDATA[M_S_Z]]></name></author>
<updated>2017-02-28T18:37:11+01:00</updated>
<published>2017-02-28T18:37:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17734&amp;p=183773#p183773</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17734&amp;p=183773#p183773"/>
<title type="html"><![CDATA[Re: Problem z TCNT1H]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17734&amp;p=183773#p183773"><![CDATA[
Dziękuję bardzo, już wiem, przeczytałem opis T/C1 i jeżeli ktoś ma taki sam problem, niech wie że kiedy odczytujemy wartość dolnej części TCNT1, jego górna część jest natychmiast przepisywana do bufora, aby uniknąć kolejnego cyklu zegara, a co za tym idzie zmiany wartości TCNT1 spowodowane pracą licznika. Aby poprawnie odczytać TCNT1H, musimy odczytać TCNT1L.<br /><br />Dziękuję za podpowiedzi, temat uznaję za zamknięty.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16148">M_S_Z</a> — 28 lut 2017, o 18:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mario17]]></name></author>
<updated>2017-02-26T15:54:30+01:00</updated>
<published>2017-02-26T15:54:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17734&amp;p=183584#p183584</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17734&amp;p=183584#p183584"/>
<title type="html"><![CDATA[Re: Problem z TCNT1H]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17734&amp;p=183584#p183584"><![CDATA[
PDF Atmega8, rozdział 16-bit Timer/Counter1, podrozdział Accessing 16-bit registers:<br /><a href="https://obrazkiforum.atnel.pl/3695/df260fb7a0dd1031c15c68c9e97db5a7.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/3695/df260fb7a0dd1031c15c68c9e97db5a7.png" alt="Obrazek" /></a><br /><br />Czyli odczytując TCNT1H najpierw musisz dokonać odczytu rejestru TCNT1L.<br /><br />[syntax=c]for(;;){<br />   uint8_t tmp = TCNT1L;  // zmienna tymczasowa do odczytania niższego rejestru<br />   PORTA = TCNT1H;<br />}[/syntax]<br /><br />Lub tak jak napisałeś wyżej, używając przesunięcia bitowego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3695">Mario17</a> — 26 lut 2017, o 15:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[M_S_Z]]></name></author>
<updated>2017-02-26T12:34:57+01:00</updated>
<published>2017-02-26T12:34:57+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17734&amp;p=183566#p183566</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17734&amp;p=183566#p183566"/>
<title type="html"><![CDATA[Problem z TCNT1H]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17734&amp;p=183566#p183566"><![CDATA[
Witam,<br /><br />Mam problem z timerem 1, aby lepiej zrozumieć, co się dzieje podłączyłem pod port A zestaw diod.<br />Do portu A stale przypisywana jest wartość rejestru TCNT1H, taktowanie procesora to 1MHz.<br /><br />Diody powinny niezbyt szybko zliczać w systemie binarnym, tymczasem nie świecą w ogóle...<br />Najciekawszy jest fakt, że po zamianie z TCNT1H na TCNT1L, wszystko działa (szybciej, ale to oczywiste),<br />jeżeli zamiast TCNT1H wpiszę (TCNT1&gt;&gt;8), działa tak, jak powinno.. powolne zliczanie w bin..<br />Sprawdzałem adres w bibliotece i wszystko w porządku z TCNT1H, 0x2D.. napisałem ten sam program w ASM i ciągle to samo..<br />Próbowałem na innym procesorze.. to samo.. Debugowanie? Również to samo.. symulator pokazuje dokładnie tak, jak jest.. <br />nie mam pojęcia, czemu to nie działa.. chyba czegoś jeszcze nie wiem o procesorach AVR...<br /><br />A góry dziękuję za wszelkie odpowiedzi, kod źródłowy w C zamieszczam poniżej.<br /><br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#include&lt;avr/io.h&gt;<br /><br />int main()<br />{<br />DDRA|=0xFF;        //Cały PORTA jest wyjściowy<br />//PORTA|=0x02;    //To nie istotne.. <br /><br />TCCR1B|=0x05;     //Timer 1 ustawiony na preskaler 1024<br /><br /><br />for(;;){<br />   PORTA=TCNT1H; //W nieskończonej pętli następuje przepisanie wartości TCNT1H do PORTA<br />}<br /><br />//PORTA&amp;=0xFD;    //Nie istotne..<br />return 0;}<br /></div><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16148">M_S_Z</a> — 26 lut 2017, o 12:34</p><hr />
]]></content>
</entry>
</feed>