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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-04-18T21:55:19+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=6814&amp;mode</id>
<entry>
<author><name><![CDATA[elektrobo]]></name></author>
<updated>2014-04-18T21:55:19+01:00</updated>
<published>2014-04-18T21:55:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6814&amp;p=78573#p78573</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6814&amp;p=78573#p78573"/>
<title type="html"><![CDATA[Re: Timer 16 biotwy, wyświetlanie jego wartości na LCD.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6814&amp;p=78573#p78573"><![CDATA[
Specyfikator %d jaki użyłeś w parametrze funkcji sprintf informuje ją, że ma traktować (i sformatować) wartość TCNT1 jako liczbę dziesiętną ze znakiem (signed decimal integer). Wówczas w 16-bitach nie zmieścisz zakresu 0-65535. Gdy najstarszy bit ma wartość &quot;1&quot; całość jest traktowana jako liczba ujemna. Zamiast tego użyj &quot;%u&quot; (unsigned int).<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4029">elektrobo</a> — 18 kwi 2014, o 21:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pavel0910]]></name></author>
<updated>2014-04-18T21:35:55+01:00</updated>
<published>2014-04-18T21:35:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6814&amp;p=78571#p78571</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6814&amp;p=78571#p78571"/>
<title type="html"><![CDATA[Timer 16 biotwy, wyświetlanie jego wartości na LCD.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6814&amp;p=78571#p78571"><![CDATA[
Witam.<br />Napisałem sobie taki programik i nie do końca działa tak jak chciałem.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;hd44780.c&gt;<br /><br />int main(void)<br />{<br />char test&#91;&#93;=&quot;     &quot;;<br />DDRB = 0xFF;<br /><br />    TCCR1B |= (1 &lt;&lt; CS10); // Ustawienie timera<br /><br />    lcd_init();     // inicjalizacja LCD<br />    TCNT1=0;<br /><br />    while(1)<br />{<br />    //itoa(TCNT1,test,10);<br />    sprintf(test,&quot;%d&quot;,TCNT1);<br />    write_text(test);<br />_delay_ms(400);<br />write_command(0x01);  //czyszczenie lcd<br />}<br />}[/syntax]<br /><br />Zmienna TCNT1 jest 16 bitowa, czyli powinna mieć wartośc 0-65535. Tak? A u mnie na lcd pojawiają się jakieś dziwne liczby, nawet ujemne. Ile czasu zajmuje przepełnienie licznika?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=883">pavel0910</a> — 18 kwi 2014, o 21:35</p><hr />
]]></content>
</entry>
</feed>