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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2021-01-14T22:04:16+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=23537&amp;mode</id>
<entry>
<author><name><![CDATA[mario2015]]></name></author>
<updated>2021-01-14T22:04:16+01:00</updated>
<published>2021-01-14T22:04:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230594#p230594</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230594#p230594"/>
<title type="html"><![CDATA[Re: Jak mogę poprawnie wyświetlić część ułamkową temperatury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230594#p230594"><![CDATA[
Mirku, ty to jednak jesteś spokojny człowiek. Tu na forum krzyczą a Ty tylko ostrzegasz. Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8867">mario2015</a> — 14 sty 2021, o 22:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2021-01-14T12:44:27+01:00</updated>
<published>2021-01-14T12:44:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230587#p230587</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230587#p230587"/>
<title type="html"><![CDATA[Re: Jak mogę poprawnie wyświetlić część ułamkową temperatury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230587#p230587"><![CDATA[
<span style="color: #FF0000">Panowie jak jeszcze raz zobaczę na forum w kodach źródłowych to kocie<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />[color=#FF0000]<em>#define F_CPU .......</em></span><br /></div><br /><br />to normalnie będę usuwał posty ! bez ostrzeżenia .... ileż można tłumaczyć że tego się nie robi w kodzie. A na tym forum nie chcę powielania tego kociego błędu ok ?[/color]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 14 sty 2021, o 12:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2021-01-14T11:16:24+01:00</updated>
<published>2021-01-14T11:16:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230586#p230586</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230586#p230586"/>
<title type="html"><![CDATA[Re: Jak mogę poprawnie wyświetlić część ułamkową temperatury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230586#p230586"><![CDATA[
To np. tak spróbuj<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />    #include &lt;util/delay.h&gt;<br />     <br />    #include &quot;HD44780.h&quot;[/syntax]<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br /><span style="color: #FF0000"><em>#define F_CPU 1000000UL </em> .... TEGO NIGDY NIE ROBI SIĘ W KODZIE PROGRAMU ! - mirekk36</span><br /></div><br />[syntax=c]#define VREF_DIVIDED 25<br />     <br />    uint16_t adc_value;<br />    uint16_t voltage_value;<br />    int16_t cz_d, cz_u;<br />    int16_t temp;<br />    uint8_t subzero;<br />    char buffer1&#91;33&#93;;<br />    char buffer2&#91;33&#93;;<br />     <br />    void ADC_init(void);<br />     <br />    int main(void)<br />    {<br />            // LCD init<br />            LCD_Initalize();<br />           <br />            // ADC init<br />            ADC_init();<br />           <br />        while (1)<br />        {<br />                    ADCSRA |= (1 &lt;&lt; ADSC);<br />                    while(ADCSRA &amp; (1 &lt;&lt; ADSC));<br />                    adc_value = ADC;<br />                    voltage_value = adc_value * VREF_DIVIDED;<br />                    temp = voltage_value / 10 - 500;<br /><br />                    if(temp &lt; 0)<br />                    {<br />                        temp = temp * (int16_t)(-1);<br />                        subzero = 1; <br />                    }<br />                    else<br />                    {<br />                        subzero = 0;<br />                    }<br /><br />                    cz_d = temp/10;                <br />                    cz_u = temp - (cz_d * 10);  <br />            <br />                    itoa(cz_d, buffer1, 10);<br />                    itoa(cz_u, buffer2, 10);<br />                    LCD_Clear();<br />                    LCD_GoTo(2, 0);<br />                    LCD_WriteText(&quot;Temperatura:&quot;);<br />                    LCD_GoTo(6, 1);<br /><br />                    if(subzero)<br />                    {<br />                        LCD_WriteText(&quot;-&quot;);<br />                    }<br /><br />                    LCD_WriteText(buffer1);<br />                    LCD_WriteText(&quot;.&quot;);<br />                    LCD_WriteText(buffer2);<br />                    _delay_ms(200);<br />        }<br />    }<br />     <br />    void ADC_init(void)<br />    {<br />            DDRA &amp;= ~(1 &lt;&lt; PA5);<br />            ADMUX |= (1 &lt;&lt; REFS1) | (1 &lt;&lt; REFS0); // Vref = 2.56V<br />            ADMUX |= (1 &lt;&lt; MUX0) | (1 &lt;&lt; MUX2); // Pomiar na ADC5<br />            ADCSRA |= (1 &lt;&lt; ADEN) | (1 &lt;&lt; ADPS2) | (1 &lt;&lt; ADPS1); // Włączenie ADC i preskaler = 64<br />    }[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 14 sty 2021, o 11:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[antosV10]]></name></author>
<updated>2021-01-14T10:58:23+01:00</updated>
<published>2021-01-14T10:58:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230585#p230585</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230585#p230585"/>
<title type="html"><![CDATA[Re: Jak mogę poprawnie wyświetlić część ułamkową temperatury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230585#p230585"><![CDATA[
No więc dla, np. 21,5 wartość temperatury zmiennej temp to 215. Więc dla 0 powinno być 000.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21647">antosV10</a> — 14 sty 2021, o 10:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2021-01-14T09:42:35+01:00</updated>
<published>2021-01-14T09:42:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230584#p230584</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230584#p230584"/>
<title type="html"><![CDATA[Re: Jak mogę poprawnie wyświetlić część ułamkową temperatury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230584#p230584"><![CDATA[
<div class="quotetitle">antosV10 napisał(a):</div><div class="quotecontent"><br />To znaczy, mam to sprawdzić?<br /></div> Jak masz płytkę to sprawdź ale skoro napisałeś takie przeliczenia:<br />[syntax=c]temp = voltage_value / 10 - 500;[/syntax]<br />to chyba wiesz jakich wartości napięcia i temperatury się spodziewasz zgadza się? Więc jaka będzie wartość zmiennej temp dla 0 stopni i np. 1,5 stopnia?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 14 sty 2021, o 09:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[antosV10]]></name></author>
<updated>2021-01-14T09:05:03+01:00</updated>
<published>2021-01-14T09:05:03+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230583#p230583</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230583#p230583"/>
<title type="html"><![CDATA[Re: Jak mogę poprawnie wyświetlić część ułamkową temperatury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230583#p230583"><![CDATA[
To znaczy, mam to sprawdzić?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21647">antosV10</a> — 14 sty 2021, o 09:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Jarecki]]></name></author>
<updated>2021-01-14T08:18:55+01:00</updated>
<published>2021-01-14T08:18:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230582#p230582</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230582#p230582"/>
<title type="html"><![CDATA[Re: Jak mogę poprawnie wyświetlić część ułamkową temperatury]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230582#p230582"><![CDATA[
Jaka będzie wartość zmiennej temp po tym zabiegu dla temperatury:<br />a) -10 stopni<br />b) 0 stopni<br />c) 10 stopni<br />?<br /><br />[syntax=c]temp = voltage_value / 10 - 500;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2511">Jarecki</a> — 14 sty 2021, o 08:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[antosV10]]></name></author>
<updated>2021-01-13T23:46:05+01:00</updated>
<published>2021-01-13T23:46:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230579#p230579</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230579#p230579"/>
<title type="html"><![CDATA[Jak mogę poprawnie wyświetlić część ułamkową temperatury?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=23537&amp;p=230579#p230579"><![CDATA[
Witam, na kanał ADC5 podpięty mam czujnik temperatury TMP36. Na razie udało mi się odczytać wartość liczb całkowitych. Problem w tym ,że teraz muszę uzyskać wartość po przecinku i nie wiem jak zrobić to poprawnie. Próbowałem zmienną &quot;voltage_value&quot; dzielić przez 10 i odejmować, 500 ale to nic nie daje. Jak ma to wyglądać od strony kodu, żeby wyświetlić poprawną wartość temperatury po przecinku? Mikrokontroler, którego używam to Atmega32A-PU.<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;HD44780.h&quot;[/syntax]<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br /><span style="color: #FF0000"><em>#define F_CPU 1000000UL </em> .... TEGO NIGDY NIE ROBI SIĘ W KODZIE PROGRAMU ! - mirekk36</span><br /></div><br />[syntax=c]#define VREF_DIVIDED 25<br /><br />uint16_t adc_value;<br />uint16_t voltage_value;<br />int16_t cz_d, cz_u;<br />char buffer1&#91;33&#93;; <br />char buffer2&#91;33&#93;;<br /><br />void ADC_init(void);<br /><br />int main(void)<br />{<br />// LCD init<br />LCD_Initalize();<br /><br />// ADC init<br />ADC_init();<br /><br />    while (1) <br />    {<br />ADCSRA |= (1 &lt;&lt; ADSC);<br />while(ADCSRA &amp; (1 &lt;&lt; ADSC));<br />adc_value = ADC;<br />voltage_value = adc_value * VREF_DIVIDED;<br />cz_d = (voltage_value/10-500)/10;<br />cz_u = (voltage_value/100) % 100;<br />itoa(cz_d, buffer1, 10);<br />itoa(cz_u, buffer2, 10);<br />LCD_Clear();<br />LCD_GoTo(0, 1);<br />LCD_WriteText(buffer1);<br />LCD_WriteText(&quot;.&quot;);<br />LCD_WriteText(buffer2);<br />_delay_ms(200);<br />    }<br />}<br /><br />void ADC_init(void)<br />{<br />DDRA &amp;= ~(1 &lt;&lt; PA5);<br />ADMUX |= (1 &lt;&lt; REFS1) | (1 &lt;&lt; REFS0); // Vref = 2.56V<br />ADMUX |= (1 &lt;&lt; MUX0) | (1 &lt;&lt; MUX2); // Pomiar na ADC5<br />ADCSRA |= (1 &lt;&lt; ADEN) | (1 &lt;&lt; ADPS2) | (1 &lt;&lt; ADPS1); // Włączenie ADC i preskaler = 64<br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 38 minutach ]</span></strong><br /><br />Witam, wprowadziłem pewne zmiany w kodzie. Mam pytanie czy teraz będzie on poprawnie realizował swoje zadanie? Wydaje mi się, że dobrze to zrobiłem, ale nie jestem pewien dlatego pytam.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;HD44780.h&quot;[/syntax]<br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br /><span style="color: #FF0000"><em>#define F_CPU 1000000UL </em> .... TEGO NIGDY NIE ROBI SIĘ W KODZIE PROGRAMU ! - mirekk36</span><br /></div><br />[syntax=c]#define VREF_DIVIDED 25<br /><br />uint16_t adc_value;<br />uint16_t voltage_value;<br />int16_t cz_d, cz_u;<br />int16_t temp;<br />char buffer1&#91;33&#93;; <br />char buffer2&#91;33&#93;;<br /><br />void ADC_init(void);<br /><br />int main(void)<br />{<br />// LCD init<br />LCD_Initalize();<br /><br />// ADC init<br />ADC_init();<br /><br />    while (1) <br />    {<br />ADCSRA |= (1 &lt;&lt; ADSC);<br />while(ADCSRA &amp; (1 &lt;&lt; ADSC));<br />adc_value = ADC;<br />voltage_value = adc_value * VREF_DIVIDED;<br />temp = voltage_value / 10 - 500;<br />cz_d = temp/10;<br />cz_u = temp%100;               <br />itoa(cz_d, buffer1, 10);<br />itoa(cz_u, buffer2, 10);<br />LCD_Clear();<br />LCD_GoTo(2, 0);<br />LCD_WriteText(&quot;Temperatura:&quot;);<br />LCD_GoTo(6, 1);<br />LCD_WriteText(buffer1);<br />LCD_WriteText(&quot;.&quot;);<br />LCD_WriteText(buffer2);<br />_delay_ms(200);<br />    }<br />}<br /><br />void ADC_init(void)<br />{<br />DDRA &amp;= ~(1 &lt;&lt; PA5);<br />ADMUX |= (1 &lt;&lt; REFS1) | (1 &lt;&lt; REFS0); // Vref = 2.56V<br />ADMUX |= (1 &lt;&lt; MUX0) | (1 &lt;&lt; MUX2); // Pomiar na ADC5<br />ADCSRA |= (1 &lt;&lt; ADEN) | (1 &lt;&lt; ADPS2) | (1 &lt;&lt; ADPS1); // Włączenie ADC i preskaler = 64<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=21647">antosV10</a> — 13 sty 2021, o 23:46</p><hr />
]]></content>
</entry>
</feed>