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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-03-14T20:13:12+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=6334&amp;mode</id>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-03-14T20:13:12+01:00</updated>
<published>2014-03-14T20:13:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74300#p74300</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74300#p74300"/>
<title type="html"><![CDATA[Re: Timer zliczający w dół (konwersja bcd2dec)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74300#p74300"><![CDATA[
Ok dzięki ,już rozumiem ,ja po prostu zawsze odruchowo daje {} ,nawet przy jednym warunku.<br /><br />Dlatego mnie to zaskoczyło.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 14 mar 2014, o 20:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Grzegorz...]]></name></author>
<updated>2014-03-13T01:02:52+01:00</updated>
<published>2014-03-13T01:02:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74114#p74114</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74114#p74114"/>
<title type="html"><![CDATA[Re: Timer zliczający w dół (konwersja bcd2dec)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74114#p74114"><![CDATA[
<div class="quotetitle">mac34 napisał(a):</div><div class="quotecontent"><br />Dzięki, jutro wypróbuję i dam znać.  Usunąłem też kod biblioteczny ,dzięki za zwrócenie uwagi ,pozdrawiam.<br /><br />Dam znać czy ruszyło.<br /><br />Nie wytrzymałem i musiałem sprawdzić <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Działa dzięki ,możesz jeszcze powiedzieć dlaczego w warunku if nie użyłeś klamer {}<br />if(godziny&lt;10) lcd_str(&quot;0&quot;);<br />,pytam bo to mnie zaskoczyło.<br /></div><br /><br />Bo wykonuje tylko jedno polecenie.<br />Jakbyś chciał po if-ie wywołać kilka funkcji to się klamerki kłaniają.<br /><br />-- <br />Grzegorz...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1748">Grzegorz...</a> — 13 mar 2014, o 01:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-03-12T22:17:55+01:00</updated>
<published>2014-03-12T22:17:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74081#p74081</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74081#p74081"/>
<title type="html"><![CDATA[Re: Timer zliczający w dół (konwersja bcd2dec)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74081#p74081"><![CDATA[
Dzięki, jutro wypróbuję i dam znać.  Usunąłem też kod biblioteczny ,dzięki za zwrócenie uwagi ,pozdrawiam.<br /><br />Dam znać czy ruszyło.<br /><br />Nie wytrzymałem i musiałem sprawdzić <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Działa dzięki ,możesz jeszcze powiedzieć dlaczego w warunku if nie użyłeś klamer {}<br />if(godziny&lt;10) lcd_str(&quot;0&quot;);<br />,pytam bo to mnie zaskoczyło.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 12 mar 2014, o 22:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-03-12T22:16:11+01:00</updated>
<published>2014-03-12T22:16:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74079#p74079</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74079#p74079"/>
<title type="html"><![CDATA[Re: Timer zliczający w dół (konwersja bcd2dec)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74079#p74079"><![CDATA[
[syntax=c]if(godziny&lt;10) lcd_str(&quot;0&quot;);<br />lcd_int(godziny);               //wyswietla zmienna<br />lcd_str(&quot;:&quot;);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 12 mar 2014, o 22:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-03-12T22:14:08+01:00</updated>
<published>2014-03-12T22:14:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74078#p74078</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74078#p74078"/>
<title type="html"><![CDATA[Re: Timer zliczający w dół (konwersja bcd2dec)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74078#p74078"><![CDATA[
Racja przedobrzyłem <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />Już jest 23:59:59<br /><br />[syntax=c]lcd_cls();<br />                        lcd_locate(1,2);<br />                        lcd_str(&quot;TIMER&quot;);             //wywietlanie napisu<br />                        lcd_locate(2,4);                    //skok do drugiej linii<br />                        lcd_int(godziny);               //wyswietla zmienna<br />            lcd_str(&quot;:&quot;);                      //wstawia znak :<br />            lcd_int(minuty);                //wstawia zmienna<br />            lcd_str(&quot;:&quot;);                      //ponownie znak :<br />            lcd_int(sekundy);               //wstawia zmienna[/syntax]<br /><br />Po usunięciu konwersji jest lepiej.<br /><br />Ostatnie pytanie jak zrobić ,by było 00:01:59<br /><br />,bo teraz mam 0:1:59<br /><br />ucina początkowe zera po zejściu od 10 w dół<br /><span style="color: #FF0000">0</span>0:<span style="color: #FF0000">0</span>1:59<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 12 mar 2014, o 22:14</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-03-12T22:10:24+01:00</updated>
<published>2014-03-12T22:10:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74072#p74072</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74072#p74072"/>
<title type="html"><![CDATA[Re: Timer zliczający w dół (konwersja bcd2dec)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74072#p74072"><![CDATA[
Po prostu:<br />[syntax=c]lcd_int(godziny);               //wyswietla godziny w wartosci 10<br />lcd_str(&quot;:&quot;);                      //wstawia znak :<br />lcd_int(minuty);                //wstawia minuty w wartosci 10<br />lcd_str(&quot;:&quot;);                      //ponownie znak :<br />lcd_int(sekundy);               //wstawia wartosc sekundy 10[/syntax]<br />Ta konwersja była dlatego, że w układzie PCF8583 liczba godzina 23 jest przechowywana jako 0x23, czyli każda cyfra jest przechowywana na 4 bitach natomiast tutaj wcale nie potrzeba tej konwersji.<br /><br />PS. Kodów z książki nie publikujemy. Edytuj post i usuń.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 12 mar 2014, o 22:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2014-03-12T22:06:26+01:00</updated>
<published>2014-03-12T22:06:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74069#p74069</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74069#p74069"/>
<title type="html"><![CDATA[Re: Timer zliczający w dół (konwersja bcd2dec)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74069#p74069"><![CDATA[
Nie jestem pewien czy dobrze zrozumiałem program<br /><br />ale poddajesz konwersji BCD liczbę w zmiennej &quot;godziny&quot;<br />która nie jest zapisana w kodzie BCD tylko dziesiętnie<br /><br />liczba 59 w kodzie BCD to 89 (wyrażone dziesiętnie)<br />a nawiasem mówiąc liczba w kodzie BCD 17 -&gt; dziesiętnie 23<br /><br />No chyba że wszystko pomieszałem i nie zrozumiałem programu <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />EDIT:<br /><br />I znowu za długo analizowałem kod <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 12 mar 2014, o 22:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-03-12T22:16:24+01:00</updated>
<published>2014-03-12T21:56:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74065#p74065</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74065#p74065"/>
<title type="html"><![CDATA[Re: Timer zliczający w dół (konwersja bcd2dec)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74065#p74065"><![CDATA[
W bibliotece LCD korzystam z funkcji<br /><br />&quot;usunąłem kod biblioteczny ,na prośbę kolegi ,dzięki za zwrócenie uwagi &quot;<br /><br />dlatego zdecydowałem się na konwerję.<br /><br />Jak inaczej mogę ją wyświetlić???, mam jeszcze funkcję wyświetlającą znaki <br /><br />void lcd_str(char * str);  (ale nie widzę opcji jak ją wykorzystać)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 12 mar 2014, o 21:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-03-12T21:49:42+01:00</updated>
<published>2014-03-12T21:49:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74064#p74064</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74064#p74064"/>
<title type="html"><![CDATA[Re: Timer zliczający w dół (konwersja bcd2dec)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74064#p74064"><![CDATA[
Konwersja nie jest potrzebna<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 12 mar 2014, o 21:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mac34]]></name></author>
<updated>2014-03-12T22:18:44+01:00</updated>
<published>2014-03-12T21:16:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74057#p74057</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74057#p74057"/>
<title type="html"><![CDATA[Timer zliczający w dół (konwersja bcd2dec)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6334&amp;p=74057#p74057"><![CDATA[
Witam mam problem z kodem timera. Założenie jest takie by zliczał w dół do 0. <br />Wszystko działa ,tylko że przy konwersji liczby z bcd na dziesiętną coś jest nie tak. <br />Początkowo zlicza od minuty w dół ,ale po &quot;przekręceniu&quot; jest 17:41:41 ,zamiast 23:59:59<br /><br />Funkcja jest z BB ,dział I2C.  (str. 284)<br /><br />Objawy błędu:<br />chodzi o to ,że po konwersji godziny przyjmują max. watrość 17 ,a nie (23) ,minuty i sekundy 41 (zamiast zliczać od 59)<br /><br />Reszta działa bez zarzutów ,możliwe ,że jest jakiś błąd w funkcji ,ale nie umiem do tego dojść <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /><br /><br /><br />poniżej kod programu: <br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &quot;lcd44780by_mario.h&quot;                    //dołączenie mojej biblioteki LCD<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#define Timer_LED (1&lt;&lt;PC5)                       //dioda sygnalizujaca prace timera 1<br /><br />volatile uint8_t godziny;                       //zmiena lotna godziny<br />volatile uint8_t minuty;                        //zmienna lotna minuty<br />volatile uint8_t sekundy;                       //zmienna lotna sekundy<br />volatile uint8_t mozna_wyswietlac;              //flaga zezwolenia wyswietlenia czasu (if==1) wywoluje funkcje wyswietl_czas<br /><br />uint8_t godziny_dec;                            //zmienna godziny dziesietna<br />uint8_t minuty_dec;                            //zmienna minuty dziesietna<br />uint8_t sekundy_dec;                            //zmienna sekundy dziesietna<br /><br />                                                // konwersja liczby BCD na dziesiętną (funkcja)<br />uint8_t bcd2dec(uint8_t bcd);<br /><br />int main(void) {<br /><br /> PORTD = 0b11111111;                         //podciągniecie nieuzywanego portu D<br /><br /> DDRC = 0b0100000;                          //kierunek portu C<br /> PORTC = 0b1011111;                         //podciągniecie nieuzywanego portu C<br /><br /><br /> godziny=0;                                //wartosci poczatkowe czasu<br /> minuty=1;<br /> sekundy=0;<br /><br />godziny_dec=0;                            //wartosci poczatkowe zmiennych dec<br />minuty_dec=0;<br />sekundy_dec=0;<br /><br /><br /> mozna_wyswietlac=0;                      //zmnienna zezwalajaca wyswietlic czas = 0<br /><br /><br /> PORTC &amp;=~ Timer_LED;                      //wyzerowanie diody LED<br /><br /><br /> sei();                                    //odblokowanie globalnych przerwan<br /><br /> TCCR1B = (1&lt;&lt;WGM12)|(1&lt;&lt;CS12);            //Timer 1 tryb CTC ,prescaler 256<br /> TIMSK = (1&lt;&lt;OCIE1A);                      //odblokowanie przerwania Timera 1<br /> OCR1A = 31250;                            //wpisanie wartosci do rejestru porownania ,31250 dla 1 sekundy<br /><br /> lcd_init();                     //inicjalizacja wywietlacza LCD<br /><br /><br />while(1){<br /><br />if (mozna_wyswietlac==1){<br />                                                  //konwersja zmiennych na wartosc dziesietna<br />godziny_dec = bcd2dec(godziny);<br />minuty_dec = bcd2dec(minuty);<br />sekundy_dec = bcd2dec(sekundy);<br /><br />                                                 //koniec konwersji ,wyswietlanie zmiennych na lcd<br />lcd_cls();<br />lcd_locate(1,2);<br />lcd_str(&quot;TIMER&quot;);             //wywietlanie napisu<br />lcd_locate(2,4);                    //skok do drugiej linii<br />lcd_int(godziny_dec);               //wyswietla godziny w wartosci 10<br />            lcd_str(&quot;:&quot;);                      //wstawia znak :<br />            lcd_int(minuty_dec);                //wstawia minuty w wartosci 10<br />            lcd_str(&quot;:&quot;);                      //ponownie znak :<br />            lcd_int(sekundy_dec);               //wstawia wartosc sekundy 10<br /><br /><br />mozna_wyswietlac=0;                 //dzieki tej fladze unikamy delaya 200ms<br /><br />}<br /><br /><br /><br /><br />}<br />}<br /><br /><br /><br /><br />ISR(TIMER1_COMPA_vect){                                      //przerwanie z rejestru porownania CTC<br />PORTC ^= Timer_LED;                                      //zmien stan diody kontrolnej timer led<br />    mozna_wyswietlac=1;                                      //zezwolenie na wyswietlanie czasu<br />sekundy--;                                                   //zmniejszanie sekund co przerwanie<br />if (sekundy==255){<br />sekundy=59;<br />minuty--;                                               //zmniejszanie minut<br />if (minuty==255){<br />minuty=59;<br />godziny--;                                             //zmniejszanie  godzin<br />if (godziny==255){<br />godziny=23;<br />}<br />}<br />}<br /><br />}<br /><br /><br />// konwersja liczby BCD na dziesiętną  (funkcja konwertująca)<br />&quot;usunąłem z wpisu&quot;<br />}[/syntax]<br /><br /><br />Kod będzie dalej rozwijany oczywiście ,założenie jest takie ,że przy 0:00:00 załącza Alarm ,dojdą jeszcze przyciski ustawiające czas.<br />No ale narazie zatrzymałem się na samym wyświetlaniu czasu i konwersji ,która coś nie działa.<br /><br />Nie wiem męczę się z tym i męczę.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3077">mac34</a> — 12 mar 2014, o 21:16</p><hr />
]]></content>
</entry>
</feed>