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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-08-27T20:11:43+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=16072&amp;mode</id>
<entry>
<author><name><![CDATA[wojtekr51]]></name></author>
<updated>2016-08-27T20:11:43+01:00</updated>
<published>2016-08-27T20:11:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167284#p167284</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167284#p167284"/>
<title type="html"><![CDATA[Re: Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167284#p167284"><![CDATA[
No oczywiście że wyskoczył. <img src="https://forum.atnel.pl/images/smilies/icon_rolleyes.gif" alt=":roll:" title="Udaje, że to nie on" /> <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />   Makrodefinicja którą usunąłeś definiowała, jaka liczba ma być podstawiona w miejsce nazwy &quot;czas_dzialania&quot;, gdzie właśnie teraz wyskoczył błąd. Wpisz w to miejsce bezpośrednio liczbę, lub gdy takich miejsc jest więcej, przywróć definicję makro którą usunąłeś, tylko zmień jej nazwę.<br /><br />Polecam koledze poćwiczyć język C od podstaw. <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=1760">wojtekr51</a> — 27 sie 2016, o 20:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[henryxxl]]></name></author>
<updated>2016-08-27T16:44:36+01:00</updated>
<published>2016-08-27T16:44:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167276#p167276</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167276#p167276"/>
<title type="html"><![CDATA[Re: Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167276#p167276"><![CDATA[
Po usunięciu 19 linijki wyskoczył mi błąd w 14 linijce main błąd: &quot;'czas_dzialania' undeclared here (not in a function)&quot;.<br />Pozdrawiam ;0<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=639">henryxxl</a> — 27 sie 2016, o 16:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojtekr51]]></name></author>
<updated>2016-08-27T16:23:14+01:00</updated>
<published>2016-08-27T16:23:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167272#p167272</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167272#p167272"/>
<title type="html"><![CDATA[Re: Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167272#p167272"><![CDATA[
W pliku common.h linia 19 nieprawidłowo zdefiniowałeś makro. Jego nazwa jest identyczna jak element wyżej zdefiniowanego typu strukturalnego TCFG. I podpowiem że dobrą praktyką jest pisanie nazw makrodefinicji wielkimi literami.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1760">wojtekr51</a> — 27 sie 2016, o 16:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[henryxxl]]></name></author>
<updated>2016-08-27T14:38:00+01:00</updated>
<published>2016-08-27T14:38:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167263#p167263</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167263#p167263"/>
<title type="html"><![CDATA[Re: Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167263#p167263"><![CDATA[
kolego wojtekr51 aż mi wstyd;)<br />Teraz usiłuję zapisać do eeprom wartość zmiennej czas_trwania_podkladania i przy uruchomieniu odczytać tą wartość z epprom ale wyskakują mi błędy w main (linijka 41 i 106)  i common.h (linijka 19). Nie wiem czego nie zrozumiałem w poradniku że coś źle robię.<br />main<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;pcd8544.h&quot;  // --- biblioteka wyswietlacza<br />#include &lt;stdlib.h&gt;<br />#include &lt;math.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &quot;common.h&quot;<br />char bufor&#91;20&#93;; // bufor potrzebny do zamiany zmiennej na stringa<br /><br />// inicjalizacja ustawień fabrycznych w pamięci Flash<br />const TCFG pgm_cfg PROGMEM = {<br />czas_dzialania,<br /><br />};<br /><br />TCFG eem_cfg EEMEM;// dane w pamięci EEPROM<br />TCFG ram_cfg;// dane w pamięci RAM<br /><br /><br /><br /><br />int main(void) {<br /><br />initialization();<br /><br /> soft_timer_ini();<br /><br /><br /><br /><br /><br />        uint8_t pozycja_menu = 0;<br />uint8_t czas_trwania_podkladania=0;<br />uint8_t czas_pomocniczy=0;<br /><br />uint8_t czas_menu = 0;<br />//int czas_trwania = 0<br />copy_eem_to_ram();<br />czas_trwania_podkladania= ram_cfg.czas_dzialania;<br /><br />sei();<br /><br /><br />        while (1) {<br /><br /><br />                PCD_GotoXYFont(1, 2);<br />                itoa(czas, bufor, 10);<br />                PCD_Str(FONT_1X, bufor);<br /><br /><br /><br />PCD_Upd();<br /><br />////////////////////////////////////<br />                if (czujnik){<br />                        czas=0;<br /><br /><br /><br />                }<br />                //////////////////////////////<br /><br />                if (gora) {<br />                        _delay_ms(120);<br />                        pozycja_menu++;<br /><br />                }<br /><br /><br />                if (pozycja_menu &gt; 4)pozycja_menu = 1;<br />                if (czas_menu &gt; 1)czas_menu = 0;<br /><br /><br /><br />                if (pozycja_menu == 1)          //ustawienia czasu<br />                                {<br />                        PCD_GotoXYFont(1, 1);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Ust. czasu &gt;&quot;));<br />                        PCD_GotoXYFont(1, 2);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Testy&quot;));<br />                        PCD_GotoXYFont(1, 3);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;inf. syst.&quot;));<br />                        PCD_GotoXYFont(1, 5);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;wyjscie     &quot;));<br />                        PCD_Upd();<br />                        //_delay_ms(200);<br />                        if(OKK)<br />                        {PCD_Clr();<br />                                while(1)<br />                                {<br />                                        if (gora) czas_trwania_podkladania++;<br /><br />                                        PCD_GotoXYFont(1, 1);<br />                                                        itoa(czas_trwania_podkladania, bufor, 10);<br />                                                        PCD_Str(FONT_1X, bufor);<br />                                                        PCD_GotoXYFont(4, 1);<br />                                                                                PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot; sek&quot;));<br />                                        _delay_ms(150);<br />                                        czas_pomocniczy++;<br />                                        PCD_Upd();<br />                                        if (OKK&amp;&amp;czas_pomocniczy&gt;5) {<br />                                                _delay_ms(150);<br />                                                ram_cfg.czas_dzialania=czas_trwania_podkladania;<br />                                                copy_ram_to_eem();<br />                                                czas_pomocniczy=0;<br />                                                break;<br />                                                return 0;<br />                                        }<br /><br />                                }<br />                        }<br />                }<br /><br />                if (pozycja_menu == 2) {<br />                        PCD_GotoXYFont(1, 1);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Ust. czasu    &quot;));<br />                        PCD_GotoXYFont(1, 2);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Testy &gt;&quot;));<br />                        PCD_GotoXYFont(1, 3);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;inf. syst.&quot;));<br />                        PCD_GotoXYFont(1, 5);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;wyjscie&quot;));<br />                        PCD_Upd();<br />                        _delay_ms(200);<br />                }<br /><br />                if (pozycja_menu == 3)          //informacje systemowe<br />                                {<br />                        PCD_GotoXYFont(1, 1);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Ust. czasu &quot;));<br />                        PCD_GotoXYFont(1, 2);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Testy    &quot;));<br />                        PCD_GotoXYFont(1, 3);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;inf. syst. &gt;&quot;));<br />                        PCD_GotoXYFont(1, 5);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;wyjscie&quot;));<br />                        PCD_Upd();<br />                        _delay_ms(80);<br /><br />                        if (OKK) {<br />                                czas_menu = 0;<br />                                PCD_Clr();<br />                                LED_TOG;<br />                                while (czas_menu &lt; 80) {<br /><br />                                        PCD_GotoXYFont(1, 1);<br />                                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;ver.1.2.25&quot;));<br />                                        PCD_GotoXYFont(1, 2);<br />                                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;PawelAndrzejuk&quot;));<br />                                        PCD_GotoXYFont(1, 3);<br />                                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Natalia Kuras&quot;));<br />                                        PCD_GotoXYFont(1, 6);<br />                                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;15.08.2016  &quot;));<br /><br />                                        PCD_Upd();<br />                                        _delay_ms(100);<br />                                        czas_menu = czas_menu + 1;<br />                                }<br />                                PCD_Clr();<br /><br />                        }<br />                }<br /><br />                if (pozycja_menu == 4)          ////wyjscie<br />                                {<br />                        PCD_GotoXYFont(1, 1);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Ust. czasu &quot;));<br />                        PCD_GotoXYFont(1, 2);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Testy &quot;));<br />                        PCD_GotoXYFont(1, 3);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;inf. syst.     &quot;));<br />                        PCD_GotoXYFont(1, 5);<br />                        PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;wyjscie &gt;&quot;));<br />                        PCD_Upd();<br />                        _delay_ms(200);<br />                        if (OKK) {<br />                                pozycja_menu = 0;<br />                                PCD_Clr();<br />                                _delay_ms(300);<br />                                PCD_Upd();<br /><br /><br /><br />                        }<br /><br />                }<br /><br /><br /><br />        }<br />}[/syntax]<br />common.c<br />[syntax=c]/*<br /> * common.c<br /> *<br /> *  Created on: 27 sie 2016<br /> *      Author: Pawel<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;pcd8544.h&quot;  // --- biblioteka wyswietlacza<br /><br />#include &lt;stdlib.h&gt;<br />#include &lt;math.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include  &quot;common.h&quot;<br /><br />volatile uint16_t Timer2=0;<br />volatile uint8_t czas = 0;<br /><br /><br /><br />void soft_timer_ini(void){<br />TCCR2 |= (1 &lt;&lt; WGM21);                    // tryb CTC<br />TCCR2 |= (1 &lt;&lt; CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20) ;   // preskaler 1024<br />OCR2 = F_CPU/1024UL/100UL;                        // podział aby uzyskać przerwanie co 10ms<br />TIMSK |= (1 &lt;&lt; OCIE2);                   // zezwolenie na przerwanie Compare<br />}<br /><br /><br /><br /><br />void copy_eem_to_ram( void ) {<br />eeprom_read_block( &amp;ram_cfg, &amp;eem_cfg, sizeof(ram_cfg) );<br />}<br /><br />void copy_ram_to_eem( void ) {<br />eeprom_write_block( &amp;ram_cfg, &amp;eem_cfg, sizeof(ram_cfg) );<br />}<br /><br />void copy_pgm_to_ram( void ) {<br />memcpy_P( &amp;ram_cfg, &amp;pgm_cfg, sizeof(ram_cfg) );<br /><br /><br />}<br /><br /><br />void initialization(void){<br />DDRC &amp;= ~KEY_PIN;               // kierunek pinu PC6 - wejściowy<br />                        PORTC |= KEY_PIN;               // podciągnięcie pinu do VCC<br /><br />                        DDRA &amp;= ~KEY_PIN3;              // kierunek pinu PC6 - wejściowy<br />                                PORTA |= KEY_PIN3;              // podciągnięcie pinu do VCC<br /><br />                        DDRC |= LED_PIN;                // kierunek pinu PC7 – wyjściowy<br />                        PORTC |= LED_PIN;               // wyłączenie diody LED<br /><br />                        DDRD |= podswietlenie;          // kierunek pinu PC7 – wyjściowy<br />                                PORTD |= podswietlenie;         // wyłączenie diody LED<br /><br />                        DDRD |= silnik;         // kierunek pinu PC7 – wyjściowy<br />                                PORTD |= silnik;                // wyłączenie diody LED<br /><br />                        DDRC &amp;= ~KEY_PIN2;              // kierunek pinu PC6 - wejściowy<br />                        PORTC |= KEY_PIN2;              // podciągnięcie pinu do VCC<br /><br /><br />                        DDRC |= LED_PIN;<br /><br />                        PCD_Ini();  // inicjacja LCD<br />                               PCD_Contr(0xC3);  // kontrast<br />                               PCD_Clr();<br />                               Podswietlenie_on;<br /><br />}<br />ISR(TIMER2_COMP_vect) {<br /><br />        // inkrementacja wartosci timerów programowych sterujących procesami<br />        Timer2++;<br /><br />        if (Timer2==100)<br />        {<br />                czas++;<br />                Timer2=0;<br />                silnik_tog;<br />        }<br />}[/syntax]<br />common.h<br />[syntax=c]/*<br /> * common.h<br /> *<br /> *  Created on: 27 sie 2016<br /> *      Author: Pawel<br /> */<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />#ifndef COMMON_H_<br />#define COMMON_H_<br /><br /><br />typedef struct {<br />uint8_t czas_dzialania;<br /><br />} TCFG;<br /><br />#define czas_dzialania 2<br /><br />#define LED_PIN (1&lt;&lt;PC0)                        // definicja pinu do którego podłączona jest dioda<br />#define LED_TOG PORTC ^= LED_PIN        // makrodefinicja – zmiana stanu diody<br /><br />#define silnik (1&lt;&lt;PD4)                 // definicja pinu do którego podłączona jest dioda<br />#define silnik_off PORTD &amp;= ~silnik     // makrodefinicja – załączenie diody<br />#define silnik_on PORTD |= silnik       // makrodefinicja – wyłączenie diody<br />#define silnik_tog PORTD ^= silnik      // makrodefinicja – zmiana stanu diody<br /><br /><br />#define podswietlenie (1&lt;&lt;PD0)                  // definicja pinu do którego podłączona jest dioda<br />#define Podswietlenie_on PORTD &amp;= ~podswietlenie        // makrodefinicja – załączenie diody<br />#define podswietlenie_off PORTD |= podswietlenie        // makrodefinicja – wyłączenie diody<br /><br />// klawisz K1<br />#define KEY_PIN (1&lt;&lt;PC6)<br />#define OKK !(PINC &amp; KEY_PIN)<br /><br />#define KEY_PIN2 (1&lt;&lt;PC5)<br />#define gora !(PINC &amp; KEY_PIN2)<br /><br />#define KEY_PIN3 (1&lt;&lt;PA3)<br />#define czujnik !(PINA &amp; KEY_PIN3)<br /><br />extern const TCFG pgm_cfg PROGMEM;// dane w pamięci FLASH<br />extern TCFG eem_cfg EEMEM;// dane w pamięci EEPROM<br />extern TCFG ram_cfg;// dane w pamięci RAM<br /><br />void copy_pgm_to_ram(void);<br />void copy_ram_to_eem(void);<br />void copy_eem_to_ram( void );<br />void soft_timer_ini(void);<br />void initialization(void);<br />extern volatile uint16_t Timer;<br />extern volatile uint8_t czas ;<br /><br />#endif /* COMMON_H_ */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=639">henryxxl</a> — 27 sie 2016, o 14:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojtekr51]]></name></author>
<updated>2016-08-27T11:56:40+01:00</updated>
<published>2016-08-27T11:56:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167247#p167247</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167247#p167247"/>
<title type="html"><![CDATA[Re: Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167247#p167247"><![CDATA[
Popatrz na plik main.c linia 44 <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=1760">wojtekr51</a> — 27 sie 2016, o 11:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[henryxxl]]></name></author>
<updated>2016-08-27T11:19:32+01:00</updated>
<published>2016-08-27T11:19:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167238#p167238</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167238#p167238"/>
<title type="html"><![CDATA[Re: Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167238#p167238"><![CDATA[
Oglądam właśnie poradniki i mam problem z dzieleniem programu. Przed dzieleniem działał a po dzieleniu nie wykonują się działania z common.c <br />program liczy sekundy i wyświetla je na ekranie (zmienna czas);<br />Proszę o naprowadzenie w czym tkwi problem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br />main<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;pcd8544.h&quot;  // --- biblioteka wyswietlacza<br />#include &lt;stdlib.h&gt;<br />#include &lt;math.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &quot;common.h&quot;<br />char bufor&#91;20&#93;; // bufor potrzebny do zamiany zmiennej na stringa<br /><br /><br /><br /><br /><br />uint8_t czas_menu = 0;<br />int czas_trwania = 0;<br /><br /><br />int main(void) {<br /><br /><br />DDRC &amp;= ~KEY_PIN;// kierunek pinu PC6 - wejściowy<br />PORTC |= KEY_PIN;// podciągnięcie pinu do VCC<br /><br />DDRA &amp;= ~KEY_PIN3;// kierunek pinu PC6 - wejściowy<br />PORTA |= KEY_PIN3;// podciągnięcie pinu do VCC<br /><br />DDRC |= LED_PIN;// kierunek pinu PC7 – wyjściowy<br />PORTC |= LED_PIN;// wyłączenie diody LED<br /><br />DDRD |= podswietlenie;// kierunek pinu PC7 – wyjściowy<br />PORTD |= podswietlenie;// wyłączenie diody LED<br /><br />DDRD |= silnik;// kierunek pinu PC7 – wyjściowy<br />PORTD |= silnik;// wyłączenie diody LED<br /><br />DDRC &amp;= ~KEY_PIN2;// kierunek pinu PC6 - wejściowy<br />PORTC |= KEY_PIN2;// podciągnięcie pinu do VCC<br /><br /><br />DDRC |= LED_PIN;<br /><br />void soft_timer_ini();<br /><br />sei();<br /><br />PCD_Ini();  // inicjacja LCD<br />PCD_Contr(0xC3);  // kontrast<br />PCD_Clr();<br />Podswietlenie_on;<br /><br />uint8_t pozycja_menu = 0;<br />uint8_t czas_trwania_podkladania=0;<br />uint8_t czas_pomocniczy=0;<br /><br /><br />while (1) {<br /><br /><br />PCD_GotoXYFont(1, 2);<br />itoa(czas, bufor, 10);<br />PCD_Str(FONT_1X, bufor);<br /><br /><br /><br />PCD_Upd();<br /><br />////////////////////////////////////<br />if (czujnik){<br />czas=0;<br /><br /><br /><br />}<br />//////////////////////////////<br /><br />if (gora) {<br />_delay_ms(120);<br />pozycja_menu++;<br /><br />}<br /><br /><br />if (pozycja_menu &gt; 4)pozycja_menu = 1;<br />if (czas_menu &gt; 1)czas_menu = 0;<br /><br /><br /><br />if (pozycja_menu == 1)//ustawienia czasu<br />{<br />PCD_GotoXYFont(1, 1);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Ust. czasu &gt;&quot;));<br />PCD_GotoXYFont(1, 2);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Testy&quot;));<br />PCD_GotoXYFont(1, 3);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;inf. syst.&quot;));<br />PCD_GotoXYFont(1, 5);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;wyjscie     &quot;));<br />PCD_Upd();<br />//_delay_ms(200);<br />if(OKK)<br />{PCD_Clr();<br />while(1)<br />{<br />if (gora) czas_trwania_podkladania++;<br />PCD_GotoXYFont(1, 1);<br />itoa(czas_trwania_podkladania, bufor, 10);<br />PCD_Str(FONT_1X, bufor);<br />PCD_GotoXYFont(4, 1);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot; sek&quot;));<br />_delay_ms(150);<br />czas_pomocniczy++;<br />PCD_Upd();<br />if (OKK&amp;&amp;czas_pomocniczy&gt;5) {<br />_delay_ms(150);<br /><br />czas_pomocniczy=0;<br />break;<br />return 0;<br />}<br /><br />}<br />}<br />}<br /><br />if (pozycja_menu == 2) {<br />PCD_GotoXYFont(1, 1);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Ust. czasu    &quot;));<br />PCD_GotoXYFont(1, 2);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Testy &gt;&quot;));<br />PCD_GotoXYFont(1, 3);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;inf. syst.&quot;));<br />PCD_GotoXYFont(1, 5);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;wyjscie&quot;));<br />PCD_Upd();<br />_delay_ms(200);<br />}<br /><br />if (pozycja_menu == 3)//informacje systemowe<br />{<br />PCD_GotoXYFont(1, 1);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Ust. czasu &quot;));<br />PCD_GotoXYFont(1, 2);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Testy    &quot;));<br />PCD_GotoXYFont(1, 3);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;inf. syst. &gt;&quot;));<br />PCD_GotoXYFont(1, 5);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;wyjscie&quot;));<br />PCD_Upd();<br />_delay_ms(80);<br /><br />if (OKK) {<br />czas_menu = 0;<br />PCD_Clr();<br />LED_TOG;<br />while (czas_menu &lt; 80) {<br /><br />PCD_GotoXYFont(1, 1);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;ver.1.2.25&quot;));<br />PCD_GotoXYFont(1, 2);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;PawelAndrzejuk&quot;));<br />PCD_GotoXYFont(1, 3);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Natalia Kuras&quot;));<br />PCD_GotoXYFont(1, 6);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;15.08.2016  &quot;));<br /><br />PCD_Upd();<br />_delay_ms(100);<br />czas_menu = czas_menu + 1;<br />}<br />PCD_Clr();<br /><br />}<br />}<br /><br />if (pozycja_menu == 4)////wyjscie<br />{<br />PCD_GotoXYFont(1, 1);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Ust. czasu &quot;));<br />PCD_GotoXYFont(1, 2);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Testy &quot;));<br />PCD_GotoXYFont(1, 3);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;inf. syst.     &quot;));<br />PCD_GotoXYFont(1, 5);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;wyjscie &gt;&quot;));<br />PCD_Upd();<br />_delay_ms(200);<br />if (OKK) {<br />pozycja_menu = 0;<br />PCD_Clr();<br />_delay_ms(300);<br />PCD_Upd();<br /><br /><br /><br />}<br /><br />}<br /><br /><br /><br />}<br />}[/syntax]<br />common.h<br />[syntax=c]/*<br /> * common.h<br /> *<br /> *  Created on: 27 sie 2016<br /> *      Author: Pawel<br /> */<br /><br />#ifndef COMMON_H_<br />#define COMMON_H_<br /><br />#define LED_PIN (1&lt;&lt;PC0)// definicja pinu do którego podłączona jest dioda<br />#define LED_TOG PORTC ^= LED_PIN// makrodefinicja – zmiana stanu diody<br /><br />#define silnik (1&lt;&lt;PD4)// definicja pinu do którego podłączona jest dioda<br />#define silnik_off PORTD &amp;= ~silnik// makrodefinicja – załączenie diody<br />#define silnik_on PORTD |= silnik// makrodefinicja – wyłączenie diody<br />#define silnik_tog PORTD ^= silnik// makrodefinicja – zmiana stanu diody<br /><br /><br />#define podswietlenie (1&lt;&lt;PD0)// definicja pinu do którego podłączona jest dioda<br />#define Podswietlenie_on PORTD &amp;= ~podswietlenie// makrodefinicja – załączenie diody<br />#define podswietlenie_off PORTD |= podswietlenie// makrodefinicja – wyłączenie diody<br /><br />// klawisz K1<br />#define KEY_PIN (1&lt;&lt;PC6)<br />#define OKK !(PINC &amp; KEY_PIN)<br /><br />#define KEY_PIN2 (1&lt;&lt;PC5)<br />#define gora !(PINC &amp; KEY_PIN2)<br /><br />#define KEY_PIN3 (1&lt;&lt;PA3)<br />#define czujnik !(PINA &amp; KEY_PIN3)<br /><br /><br />void soft_timer_ini(void);<br /><br />extern volatile uint16_t Timer;<br />extern volatile uint8_t czas ;<br /><br />#endif /* COMMON_H_ */[/syntax]<br />common.c<br />[syntax=c]/*<br /> * common.c<br /> *<br /> *  Created on: 27 sie 2016<br /> *      Author: Pawel<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &lt;stdlib.h&gt;<br />#include &lt;math.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include  &quot;common.h&quot;<br /><br />volatile uint16_t Timer2=0;<br />volatile uint8_t czas = 0;<br /><br /><br /><br />void soft_timer_ini(void){<br />TCCR2 |= (1 &lt;&lt; WGM21);                    // tryb CTC<br />TCCR2 |= (1 &lt;&lt; CS22)|(1&lt;&lt;CS21)|(1&lt;&lt;CS20) ;   // preskaler 1024<br />OCR2 = F_CPU/1024UL/100UL;                        // podział aby uzyskać przerwanie co 10ms<br />TIMSK |= (1 &lt;&lt; OCIE2);                   // zezwolenie na przerwanie Compare<br />}<br /><br /><br />ISR(TIMER2_COMP_vect) {<br /><br />// inkrementacja wartosci timerów programowych sterujących procesami<br />Timer2++;<br /><br />if (Timer2==100)<br />{<br />czas++;<br />Timer2=0;<br />silnik_tog;<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=639">henryxxl</a> — 27 sie 2016, o 11:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojtekr51]]></name></author>
<updated>2016-08-26T23:22:26+01:00</updated>
<published>2016-08-26T23:22:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167209#p167209</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167209#p167209"/>
<title type="html"><![CDATA[Re: Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167209#p167209"><![CDATA[
Z ciekawości sprawdziłem sobie jak to jest z tą inicjalizacją EEPROMA. Rzeczywiście da się zainicjalizować przy definiowaniu zmiennej. I stwierdziłem że obojętne jest z której strony będzie specyfikator.<br />[syntax=c]uint8_t  EEMEM a = 7;<br />uint8_t  b EEMEM = 17;[/syntax](Zawsze dawałem specyfikator z prawej strony i bezpośrednio do nazwy zmiennej chciałem dopisać wartość, co skutkowało błędem. Teraz wiem czemu myślałem że tak się nie da <img src="https://forum.atnel.pl/images/smilies/icon_redface.gif" alt=":oops:" title="Zawstydzony" /> ) <br /><br />Kompilator tworzy plik z rozszerzeniem .eep w którym jest utworzony obraz pamięci EEPROM. Jeżeli chcemy to wgrywamy również go do mikrokontrolera. <br /><br />A to jak powinno się właściwie jeść tę potrawę jaką jest eeprom, najlepiej tłumaczy pan Mirek. Tu na razie tylko sobie smakujemy. <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=1760">wojtekr51</a> — 26 sie 2016, o 23:22</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-08-26T21:30:14+01:00</updated>
<published>2016-08-26T21:30:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167195#p167195</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167195#p167195"/>
<title type="html"><![CDATA[Re: Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167195#p167195"><![CDATA[
<div class="quotetitle">henryxxl napisał(a):</div><div class="quotecontent"><br />uint8_t EEMEM a=1 ;<br />czas_trwania_podkladania = eeprom_read_byte(a);<br /></div><br />Nie baw się w takie bezsensowne podejście do EEPROM w procku bo to cię tylko na manowce sprowadzi i coraz większe kłopoty - tak się nie robi ... chcesz zobaczyć jak wygodnie się posługiwać EEPROMEM w procku<br /><br />to koniecznie obejrzyj to:<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/11/avr-eeprom-struktury-poradnik-do-ksiazek.html" >http://mirekk36.blogspot.com/2012/11/av ... iazek.html</a><!-- m --><br /><br />i rób to jak należy <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> mówię ci<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 26 sie 2016, o 21:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[henryxxl]]></name></author>
<updated>2016-08-26T21:20:39+01:00</updated>
<published>2016-08-26T21:20:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167192#p167192</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167192#p167192"/>
<title type="html"><![CDATA[Re: Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167192#p167192"><![CDATA[
Panowie nie spodziewałem się takiej szybkiej odpowiedzi. Jutro jak wrócę do domu biorę się za testowanie. Jeszcze wiele przedemną jeżeli chodzi o programowanie c avr ale idę cały czas do przodu;)<br />Pozdrawiam miłego wieczoru <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=639">henryxxl</a> — 26 sie 2016, o 21:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2016-08-26T21:33:57+01:00</updated>
<published>2016-08-26T21:11:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167189#p167189</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167189#p167189"/>
<title type="html"><![CDATA[Re: Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167189#p167189"><![CDATA[
Witam,<br /><br />Przecież kompilator &quot;napisał&quot; Ci o co mu chodzi - chce argumentu typu uint8_t* w funkcji eeprom_write_byte(...)<br />popraw linie:<br /><br />[syntax=c]czas_trwania_podkladania = eeprom_read_byte(&amp;a);[/syntax]<br />i <br />[syntax=c]eeprom_write_byte(&amp;a, czas_trwania_podkladania);[/syntax]<br /><br />a... i to co Kolega <strong>janusz17</strong> Ci napisał.<br /><br />A tak &quot;poza konkursem <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";-)" title="Puszcza oko" />&quot;, linia [syntax=c]OCR0 = 312;                        // podział aby uzyskać przerwanie co 10ms[/syntax]<br />jest tez błędna - OCR0 to przecież rejestr 8 bitowy.<br /><br />Pozdrawiam, QuadMan.<br /><br />Dopisane:<br /><br /><div class="quotetitle">wojtekr51 napisał(a):</div><div class="quotecontent"><br />A ten &quot;przydomek&quot; EEMEM powinien być raczej za nazwą zmiennej....<br /></div><br /><br />W tym wypadku kolejność specyfikatorów nie ma znaczenia.<br /><br /><div class="quotetitle">wojtekr51 napisał(a):</div><div class="quotecontent"><br />....i do tego nie inicjalizuje się w ten sposób zmiennych w pamięci EEPROM.<br /></div><br /><br />Może eleganckie to nie jest, choć merytorycznie poprawne i działać będzie.<br /><br />Dopisane2:<br /><br />Kolego <strong>wojtekr51</strong> źle zrozumiałem Twoją wypowiedź dotyczącą inicjalizacji zmiennych w pamięci EEPROM - myślałem, że chodzi Ci o stworzenie struktury z danymi dla EEPROMA, bo to że aby zmienna fizycznie znalazła się w pamięci EEPROM, trzeba wywołać funkcję eeprom_write_byte(...) to dla mnie oczywistość.<br /><br />Pozdrawiam serdecznie QuadMan.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 26 sie 2016, o 21:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojtekr51]]></name></author>
<updated>2016-08-26T21:24:00+01:00</updated>
<published>2016-08-26T21:07:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167188#p167188</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167188#p167188"/>
<title type="html"><![CDATA[Re: Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167188#p167188"><![CDATA[
A ten &quot;przydomek&quot; EEMEM powinien być raczej za nazwą zmiennej, i do tego nie inicjalizuje się w ten sposób zmiennych w pamięci EEPROM.<br /><br />edit:<br />Inicjalizację możesz zrobić przez funkcję eeprom_write_byte(). Odczytując bajt powinieneś jako argument funkcji eeprom_read_byte() podać adres tej zmiennej, a jej wartość zostanie zwrócona przez funkcję.<br /><br />Tu masz coś co pewnie się przyda:<br /><a href="http://www.atmel.com/webdoc/AVRLibcReferenceManual/group__avr__eeprom.html"  class="postlink">http://www.atmel.com/webdoc/AVRLibcReferenceManual/group__avr__eeprom.html</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1760">wojtekr51</a> — 26 sie 2016, o 21:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[janusz17]]></name></author>
<updated>2016-08-26T21:01:02+01:00</updated>
<published>2016-08-26T21:01:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167186#p167186</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167186#p167186"/>
<title type="html"><![CDATA[Re: Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167186#p167186"><![CDATA[
Zmienna w pamięci EEPROM musi być deklarowana jako zmienna globalna, a więc przed funkcją main().<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1226">janusz17</a> — 26 sie 2016, o 21:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[henryxxl]]></name></author>
<updated>2016-08-26T20:53:10+01:00</updated>
<published>2016-08-26T20:53:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167185#p167185</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167185#p167185"/>
<title type="html"><![CDATA[Zapis do eeprom.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16072&amp;p=167185#p167185"><![CDATA[
Witam.<br />Usiłuję zapisać zmienną do wewnętrznej pamięci eeprom atmegi32. Mój problem polega na tym że kompilator wskazuje cały czas na błąd w linijce [syntax=c]uint8_t EEMEM a=1 ;[/syntax]<br /><a href="https://obrazkiforum.atnel.pl/639/8a7f643c3b6af319abccc92f1821783e.png"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/639/8a7f643c3b6af319abccc92f1821783e.png" alt="Obrazek" /></a><br />Oto cały program:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;pcd8544.h&quot;  // --- biblioteka wyswietlacza<br />#include &lt;stdlib.h&gt;<br />#include &lt;math.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br /><br />char bufor&#91;20&#93;; // bufor potrzebny do zamiany zmiennej na stringa<br /><br />volatile uint16_t Timer2, Timer3;<br />volatile uint8_t czas = 0;<br /><br />#define LED_PIN (1&lt;&lt;PC0)// definicja pinu do którego podłączona jest dioda<br />#define LED_TOG PORTC ^= LED_PIN// makrodefinicja – zmiana stanu diody<br /><br />#define silnik (1&lt;&lt;PD4)// definicja pinu do którego podłączona jest dioda<br />#define silnik_off PORTD &amp;= ~silnik// makrodefinicja – załączenie diody<br />#define silnik_on PORTD |= silnik// makrodefinicja – wyłączenie diody<br />#define silnik_tog PORTD ^= silnik// makrodefinicja – zmiana stanu diody<br /><br /><br />#define podswietlenie (1&lt;&lt;PD0)// definicja pinu do którego podłączona jest dioda<br />#define Podswietlenie_on PORTD &amp;= ~podswietlenie// makrodefinicja – załączenie diody<br />#define podswietlenie_off PORTD |= podswietlenie// makrodefinicja – wyłączenie diody<br /><br />// klawisz K1<br />#define KEY_PIN (1&lt;&lt;PC6)<br />#define OK !(PINC &amp; KEY_PIN)<br /><br />#define KEY_PIN2 (1&lt;&lt;PC5)<br />#define gora !(PINC &amp; KEY_PIN2)<br /><br />#define KEY_PIN3 (1&lt;&lt;PA3)<br />#define czujnik !(PINA &amp; KEY_PIN3)<br /><br />uint8_t czas_menu = 0;<br />int czas_trwania = 0;<br /><br /><br />int main(void) {<br />sei();<br />DDRC &amp;= ~KEY_PIN;// kierunek pinu PC6 - wejściowy<br />PORTC |= KEY_PIN;// podciągnięcie pinu do VCC<br /><br />DDRA &amp;= ~KEY_PIN3;// kierunek pinu PC6 - wejściowy<br />PORTA |= KEY_PIN3;// podciągnięcie pinu do VCC<br /><br />DDRC |= LED_PIN;// kierunek pinu PC7 – wyjściowy<br />PORTC |= LED_PIN;// wyłączenie diody LED<br /><br />DDRD |= podswietlenie;// kierunek pinu PC7 – wyjściowy<br />PORTD |= podswietlenie;// wyłączenie diody LED<br /><br />DDRD |= silnik;// kierunek pinu PC7 – wyjściowy<br />PORTD |= silnik;// wyłączenie diody LED<br /><br />DDRC &amp;= ~KEY_PIN2;// kierunek pinu PC6 - wejściowy<br />PORTC |= KEY_PIN2;// podciągnięcie pinu do VCC<br /><br />//włączenie przerwań w procu<br />DDRC |= LED_PIN;<br /><br /><br />TCCR0 |= (1 &lt;&lt; WGM01);                    // tryb CTC<br />TCCR0 |= (1 &lt;&lt; CS02) ;   // preskaler 1024<br />OCR0 = 312;                        // podział aby uzyskać przerwanie co 10ms<br />TIMSK |= (1 &lt;&lt; OCIE0);                   // zezwolenie na przerwanie Compare<br /><br /><br /><br />PCD_Ini();  // inicjacja LCD<br />PCD_Contr(0xC3);  // kontrast<br />PCD_Clr();<br />Podswietlenie_on;<br /><br />uint8_t pozycja_menu = 0;<br />uint8_t czas_trwania_podkladania=0;<br />uint8_t czas_pomocniczy=0;<br />uint8_t EEMEM a=1 ;<br />czas_trwania_podkladania = eeprom_read_byte(a);<br />while (1) {<br /><br /><br />PCD_GotoXYFont(1, 2);<br />itoa(czas, bufor, 10);<br />PCD_Str(FONT_1X, bufor);<br /><br /><br /><br />PCD_Upd();<br /><br />////////////////////////////////////<br />if (czujnik){<br />czas=0;<br /><br /><br /><br />}<br />//////////////////////////////<br /><br />if (gora) {<br />_delay_ms(120);<br />pozycja_menu++;<br /><br />}<br /><br /><br />if (pozycja_menu &gt; 4)pozycja_menu = 1;<br />if (czas_menu &gt; 1)czas_menu = 0;<br /><br /><br /><br />if (pozycja_menu == 1)//ustawienia czasu<br />{<br />PCD_GotoXYFont(1, 1);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Ust. czasu &gt;&quot;));<br />PCD_GotoXYFont(1, 2);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Testy&quot;));<br />PCD_GotoXYFont(1, 3);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;inf. syst.&quot;));<br />PCD_GotoXYFont(1, 5);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;wyjscie     &quot;));<br />PCD_Upd();<br />//_delay_ms(200);<br />if(OK)<br />{PCD_Clr();<br />while(1)<br />{<br />if (gora) czas_trwania_podkladania++;<br />PCD_GotoXYFont(1, 1);<br />itoa(czas_trwania_podkladania, bufor, 10);<br />PCD_Str(FONT_1X, bufor);<br />PCD_GotoXYFont(4, 1);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot; sek&quot;));<br />_delay_ms(150);<br />czas_pomocniczy++;<br />PCD_Upd();<br />if (OK&amp;&amp;czas_pomocniczy&gt;5) {<br />_delay_ms(150);<br />eeprom_write_byte(a, czas_trwania_podkladania);<br />czas_pomocniczy=0;<br />break;<br />return 0;<br />}<br /><br />}<br />}<br />}<br /><br />if (pozycja_menu == 2) {<br />PCD_GotoXYFont(1, 1);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Ust. czasu    &quot;));<br />PCD_GotoXYFont(1, 2);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Testy &gt;&quot;));<br />PCD_GotoXYFont(1, 3);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;inf. syst.&quot;));<br />PCD_GotoXYFont(1, 5);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;wyjscie&quot;));<br />PCD_Upd();<br />_delay_ms(200);<br />}<br /><br />if (pozycja_menu == 3)//informacje systemowe<br />{<br />PCD_GotoXYFont(1, 1);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Ust. czasu &quot;));<br />PCD_GotoXYFont(1, 2);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Testy    &quot;));<br />PCD_GotoXYFont(1, 3);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;inf. syst. &gt;&quot;));<br />PCD_GotoXYFont(1, 5);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;wyjscie&quot;));<br />PCD_Upd();<br />_delay_ms(80);<br /><br />if (OK) {<br />czas_menu = 0;<br />PCD_Clr();<br />LED_TOG;<br />while (czas_menu &lt; 80) {<br /><br />PCD_GotoXYFont(1, 1);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;ver.1.2.25&quot;));<br />PCD_GotoXYFont(1, 2);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;PawelAndrzejuk&quot;));<br />PCD_GotoXYFont(1, 3);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Natalia Kuras&quot;));<br />PCD_GotoXYFont(1, 6);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;15.08.2016  &quot;));<br /><br />PCD_Upd();<br />_delay_ms(100);<br />czas_menu = czas_menu + 1;<br />}<br />PCD_Clr();<br /><br />}<br />}<br /><br />if (pozycja_menu == 4)////wyjscie<br />{<br />PCD_GotoXYFont(1, 1);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Ust. czasu &quot;));<br />PCD_GotoXYFont(1, 2);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;Testy &quot;));<br />PCD_GotoXYFont(1, 3);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;inf. syst.     &quot;));<br />PCD_GotoXYFont(1, 5);<br />PCD_FStr(FONT_1X, (unsigned char*) PSTR(&quot;wyjscie &gt;&quot;));<br />PCD_Upd();<br />_delay_ms(200);<br />if (OK) {<br />pozycja_menu = 0;<br />PCD_Clr();<br />_delay_ms(300);<br />PCD_Upd();<br /><br /><br /><br />}<br /><br />}<br /><br /><br /><br />}<br />}<br /><br /><br /><br /><br />ISR(TIMER0_COMP_vect) {<br /><br />// inkrementacja wartosci timerów programowych sterujących procesami<br />Timer2++;<br /><br />if (Timer2==500)<br />{<br />czas++;<br />Timer2=0;<br />}<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=639">henryxxl</a> — 26 sie 2016, o 20:53</p><hr />
]]></content>
</entry>
</feed>