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

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

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=22062&amp;mode</id>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2019-03-12T14:12:01+01:00</updated>
<published>2019-03-12T14:12:01+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217306#p217306</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217306#p217306"/>
<title type="html"><![CDATA[Re: ODCZYT Z EEPROM ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217306#p217306"><![CDATA[
To dlatego pojedynczo mogłem odczytać ! <br />[syntax=c]eeprom_write_byte(0,ram_cfg.alarm1_hh);<br />eeprom_0=eeprom_read_byte(0);[/syntax]<br />Już mi się wszystko rozjaśniło !! Dziękuje Ci za podpowiedz andrews.Takie proste a bym sobie wyrwał chyba wszystkie włosy z głowy.<br />Pozdrawiam !<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 12 mar 2019, o 14:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[andrews]]></name></author>
<updated>2019-03-12T13:26:32+01:00</updated>
<published>2019-03-12T13:26:32+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217305#p217305</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217305#p217305"/>
<title type="html"><![CDATA[Re: ODCZYT Z EEPROM ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217305#p217305"><![CDATA[
<div class="quotetitle">wrctomi napisał(a):</div><div class="quotecontent"><br />[syntax=c]void pokaz_alarmy_z_eeprom(void) {<br />    lcd_locate(0, 0);<br />    if (eem_cfg.alarm1_hh &lt; 9)lcd_char('0');<br />    lcd_int(eem_cfg.alarm1_hh);<br /><br />    // ... itd.<br />}[/syntax]<br /></div><br />Przede wszystkim nie można w ten sposób odwoływać się do zmiennych w pamięci EEPROM, należy użyć do ich odczytu funkcji, przykładowo:<br /><br />[syntax=c]//<br />    if (eeprom_read_byte(&amp;eem_cfg.alarm1_hh) &lt; 9) lcd_char('0');<br />    lcd_int(eeprom_read_byte(&amp;eem_cfg.alarm1_hh) );[/syntax]<br />Oczywiście to nie są jedyne linie kodu, które trzeba u Ciebie poprawić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14165">andrews</a> — 12 mar 2019, o 13:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2019-03-12T10:05:00+01:00</updated>
<published>2019-03-12T10:05:00+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217296#p217296</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217296#p217296"/>
<title type="html"><![CDATA[Re: ODCZYT Z EEPROM ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217296#p217296"><![CDATA[
Po kolejnym w graniu do procka atmega32 znów pokazują się komórki pamięci a nie dane ??? Proszę o podpowiedź.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 12 mar 2019, o 10:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2019-03-11T17:25:16+01:00</updated>
<published>2019-03-11T17:25:16+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217269#p217269</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217269#p217269"/>
<title type="html"><![CDATA[Re: ODCZYT Z EEPROM ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217269#p217269"><![CDATA[
Faktycznie.Zmieniłem argumenty i teraz pokazuje  wartości 255 ??A dlaczego nie pokazuje prawidłowych wartości.Takich jake są w RAM-ie ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 11 mar 2019, o 17:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wrctomi]]></name></author>
<updated>2019-03-11T10:47:14+01:00</updated>
<published>2019-03-11T10:47:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217248#p217248</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217248#p217248"/>
<title type="html"><![CDATA[ODCZYT Z EEPROM ?]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22062&amp;p=217248#p217248"><![CDATA[
Witam.Chciałbym odczytać wartości bezpośrednio z pamięci EEPROM ze struktury.Cały czas pokazuje mi komórki pamięci a nie wartości?Chyba wpłynąłem w za głęboką wodę? Proszę o wyjaśnienie.Z góry dziękuje.<br /> <br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;string.h&gt;<br />#include &lt;stdio.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br /><br />#include &quot;LCD/lcd44780.h&quot;<br /><br /><br />#define ALARM1_HH    19<br />#define ALARM1_MM   30<br />#define ALARM2_HH    11<br />#define ALARM2_MM   15<br />#define LED_BLINK      5<br />#define IR 3<br />#define LCD_FLASH     3<br /><br /><br />void copy_ram_to_eem(void);<br />void copy_eem_to_ram(void);<br />void copy_pgm_to_ram(void);<br />void load_defaults(void);<br />void check_and_load_defaults(void);<br />void pokaz_alarmy(void);<br />void pokaz_alarmy_z_eeprom(void);<br /><br /><br />typedef struct{<br /><br />uint8_t alarm1_hh;<br />uint8_t alarm1_mm;<br />uint8_t alarm2_hh;<br />uint8_t alarm2_mm;<br />uint8_t led_blink;<br />uint8_t ir;<br />uint8_t lcd_flash;<br /><br />}TALARM;<br /><br /><br />TALARM const pgm_cfg PROGMEM={<br />ALARM1_HH,<br />ALARM1_MM,<br />ALARM2_HH,<br />ALARM2_MM,<br />                LED_BLINK,<br />                IR,<br />                LCD_FLASH};<br /><br />TALARM ram_cfg;                          // dane z pamieci RAM<br />TALARM eem_cfg EEMEM;               // dane z pamięci EEPROM<br /><br /><br />int main() {<br /><br /><br />    DDRA|=(1&lt;&lt;PD0);<br />    PORTA|=(1&lt;&lt;PA0);                // podswietlenie LCD<br /><br />    lcd_init();                            // inicjalizacja LCD<br /><br />    check_and_load_defaults();    // sprawdzenie wartości w RAM czy są 0xFF<br /><br />    load_defaults();                    // kopiowanie z pgm do ram i z ram do eeprom<br /><br />    while (1) {<br /><br />pokaz_alarmy_z_eeprom();<br /><br />                _delay_ms(1000);<br />  lcd_cls();<br />_delay_ms(500);<br />    }<br />}<br /><br />void copy_ram_to_eem(void){<br /><br />eeprom_write_block(&amp;eem_cfg,&amp;ram_cfg,sizeof(ram_cfg));<br />}<br /><br />void copy_eem_to_ram(void){<br /><br />eeprom_read_block(&amp;ram_cfg,&amp;eem_cfg,sizeof(ram_cfg)); <br />}                                                         <br /><br /><br />void copy_pgm_to_ram(void){<br /><br />memcpy_P(&amp;ram_cfg,&amp;pgm_cfg,sizeof(ram_cfg));<br />}<br /><br />void load_defaults(void){<br /><br />copy_pgm_to_ram();<br /><br />copy_ram_to_eem();<br /><br />}<br /><br /><br />void check_and_load_defaults(void) {<br /><br />uint8_t i, len = sizeof(ram_cfg);<br />uint8_t *ram_wsk = (uint8_t *)&amp;ram_cfg;<br /><br />copy_eem_to_ram();<br /><br /><br />for (i = 0; i &lt; len; i++) {<br /><br />if (0xFF == *ram_wsk++)continue;<br />break;<br />}<br />if (i == len){<br />load_defaults();<br />    }<br />}<br /><br /><br />void pokaz_alarmy_z_eeprom(void) {<br /><br />lcd_locate(0, 0);<br />if (eem_cfg.alarm1_hh &lt; 9)lcd_char('0');<br />lcd_int(eem_cfg.alarm1_hh);<br />lcd_char(':');<br />if (eem_cfg.alarm2_mm &lt; 9)lcd_char('0');<br />lcd_int(eem_cfg.alarm2_mm);<br /><br />        lcd_locate(1, 0);<br />if (eem_cfg.alarm2_hh &lt; 9)lcd_char('0');<br />lcd_int(eem_cfg.alarm2_hh);<br />lcd_char(':');<br />if (eem_cfg.alarm2_mm &lt; 9)lcd_char('0');<br />lcd_int(eem_cfg.alarm2_mm);<br /><br />lcd_locate(0, 8);<br />lcd_int(eem_cfg.led_blink);<br /><br />lcd_locate(1, 8);<br />lcd_int(eem_cfg.ir);<br /><br />lcd_locate(0, 12);<br />lcd_int(eem_cfg.lcd_flash);<br /><br />}[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 41 minutach ]</span></strong><br /><br />Ale jak robię pojedynczo to wartości są.<br />uint8_t eeprom_0 - to zmienna globalna.Np<br />[syntax=c]eeprom_write_byte(0,ram_cfg.alarm1_hh);<br />eeprom_0=eeprom_read_byte(0);[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=17865">wrctomi</a> — 11 mar 2019, o 10:47</p><hr />
]]></content>
</entry>
</feed>