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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-12-11T15:17:46+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=13822&amp;mode</id>
<entry>
<author><name><![CDATA[eMCe2]]></name></author>
<updated>2015-12-11T15:17:46+01:00</updated>
<published>2015-12-11T15:17:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147671#p147671</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147671#p147671"/>
<title type="html"><![CDATA[Re: licznik impulsów zadanych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147671#p147671"><![CDATA[
To volatile to nic nie da bo przecież to nie jest obsługiwane w przerwaniu... mnie tylko dziwi czemu te warunki sprawdzające wartość n są w obsłudze przycisku? zamknij tego pierwszego if'a za n++.<br />I przed lcd_int(n); daj może jeszcze lcd_cls(); Bo teraz to twój wyświetlacz chyba się szybko zawala znakami....<br /><br />Czyli widziałbym to tak:<br />[syntax=c]język c<br />/*<br /> * main.c<br /> *<br /> *  Created on: 9 gru 2015<br /> *      Author: Paweł<br /> */<br />#include&lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /> <br />#include &quot;lcd44780.h&quot;<br /> <br /> <br />#define LED_PIN (1&lt;&lt;PD5)<br />#define LED_ON PORTD &amp;= ~LED_PIN<br />#define LED_OFF PORTD |= LED_PIN<br />#define LED_TOG PORTD ^= LED_PIN<br /> <br />int n=0;<br /> <br />int main(void) {<br /> <br />        DDRD  = 0xFF; //tu cały port D ustawiasz jako wyjścia a klawisz też masz na PD2???<br />         PORTD = 0xFF;<br />         lcd_init();<br />         lcd_home();<br />         lcd_cls();<br />        while(1){<br /> <br /> <br />                 if (!(PIND &amp; (1&lt;&lt;PD2))) {<br />                        _delay_ms(80);<br /> <br />                        while (!(PIND &amp; (1&lt;&lt;PD2))) {}<br /> <br />                    _delay_ms(80);<br /> <br />                        n++;<br />}<br /> <br />                        if(n == 6){<br />                                LED_ON;<br />                        }<br />                        else {<br />                                LED_OFF;<br />                        }<br />                        if( n &gt; 8){<br />                                n=0;<br />                        }<br />                 lcd_cls();<br />                 lcd_int( n );<br /> <br /> <br />              }//zamkniecie while()<br />                 }//zamkniecie main()[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1363">eMCe2</a> — 11 gru 2015, o 15:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Bartek123]]></name></author>
<updated>2015-12-10T02:58:27+01:00</updated>
<published>2015-12-10T02:58:27+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147548#p147548</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147548#p147548"/>
<title type="html"><![CDATA[Re: licznik impulsów zadanych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147548#p147548"><![CDATA[
A spróbuj może wywoływać funkcję lcdint w ifie który sprawdza czy klawisz został wciśnięty, a nie w pętli głównej. Bo skoro funkcja lcd_int() jest wywoływana w pętli while to spowalnia program. Wydaje mi się, że na wyświetlaczu są same 0 dobrze mówię? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10617">Bartek123</a> — 10 gru 2015, o 02:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pawelszel1993]]></name></author>
<updated>2015-12-10T02:33:58+01:00</updated>
<published>2015-12-10T02:33:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147547#p147547</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147547#p147547"/>
<title type="html"><![CDATA[Re: licznik impulsów zadanych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147547#p147547"><![CDATA[
poprawiłem, ale wartosc n dalej nie jest wyswietlana na wyswietlaczu<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9508">pawelszel1993</a> — 10 gru 2015, o 02:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[icer_cmg]]></name></author>
<updated>2015-12-10T00:27:04+01:00</updated>
<published>2015-12-10T00:27:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147544#p147544</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147544#p147544"/>
<title type="html"><![CDATA[Re: licznik impulsów zadanych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147544#p147544"><![CDATA[
<div class="quotetitle">pawelszel1993 napisał(a):</div><div class="quotecontent"><br />[syntax=c]int n=0;[/syntax]<br /></div><br /><br />Zmień na [syntax=c]volatile uint8_t n=0;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1636">icer_cmg</a> — 10 gru 2015, o 00:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pawelszel1993]]></name></author>
<updated>2015-12-10T00:01:22+01:00</updated>
<published>2015-12-10T00:01:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147541#p147541</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147541#p147541"/>
<title type="html"><![CDATA[licznik impulsów zadanych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=13822&amp;p=147541#p147541"><![CDATA[
Witam, próbuje zrobić prosty licznik impulsów. Założenia są nastepujace: wraz z każdym wcisnieciem klawisza podciągnietego pod pin PD2 (INT0) zwieksza sie wartosc zmiennej n. Gdy wartosc n dochodzi do 6 zapala sie dioda podciagnieta do pinu PD5. Licznik działa nawet fajnie ale mam problemy z wyświetleniem wartosci zmiennej &quot;n&quot; na wyswietlaczu lcd<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 9 gru 2015<br /> *      Author: Paweł<br /> */<br />#include&lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;lcd44780.h&quot;<br /><br /><br />#define LED_PIN (1&lt;&lt;PD5)<br />#define LED_ON PORTD &amp;= ~LED_PIN<br />#define LED_OFF PORTD |= LED_PIN<br />#define LED_TOG PORTD ^= LED_PIN<br /><br />int n=0;<br /><br />int main(void) {<br /><br />DDRD  = 0xFF;<br /> PORTD = 0xFF;<br /> lcd_init();<br /> lcd_home();<br /> lcd_cls();<br />while(1){<br /><br /><br /> if (!(PIND &amp; (1&lt;&lt;PD2))) {<br />        _delay_ms(80);<br /><br />        while (!(PIND &amp; (1&lt;&lt;PD2))) {}<br /><br />    _delay_ms(80);<br /><br />        n++;<br /><br />        if(n == 6){<br />        LED_ON;<br />        }<br />        else {<br />        LED_OFF;<br />        }<br />        if( n &gt; 8){<br />        n=0;<br />        }<br />}<br /> lcd_int( n );<br /><br /><br />      }<br /> }[/syntax]<br />Wejscia wyswietlacza podciągniete pod porty B(D7=PB7,D6=PB6,D5=PB5, D4=PB4, RS=PB0, RW=PB1, E=PB2) , procesor Atmega 32<br />z góry dziekuje za wszelkie wskazówki<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9508">pawelszel1993</a> — 10 gru 2015, o 00:01</p><hr />
]]></content>
</entry>
</feed>