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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-08-30T20:18:55+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8342&amp;mode</id>
<entry>
<author><name><![CDATA[doman89]]></name></author>
<updated>2014-08-30T20:18:55+01:00</updated>
<published>2014-08-30T20:18:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8342&amp;p=93525#p93525</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8342&amp;p=93525#p93525"/>
<title type="html"><![CDATA[Re: Odczyt,zmiana i zapis zmiennej do eeprom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8342&amp;p=93525#p93525"><![CDATA[
Witam,<br /><br />Jak dla mnie to program działa w ten sposób, że odczytuje stan klawisza i uaktualnia dane w eepromie. Program nie zczytuje tych danych z eeproma/pamięci do rejestru którego chcesz.<br /><br />Daj aktualizację danych w przerwaniu od jakiegoś timera do rejestru.<br /><br /><span style="color: #0000FF">z Niebieskim pozdRowieniem,<br />Doman89</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=3271">doman89</a> — 30 sie 2014, o 20:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mickeu]]></name></author>
<updated>2014-08-30T15:08:40+01:00</updated>
<published>2014-08-30T15:08:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8342&amp;p=93489#p93489</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8342&amp;p=93489#p93489"/>
<title type="html"><![CDATA[Re: Odczyt,zmiana i zapis zmiennej do eeprom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8342&amp;p=93489#p93489"><![CDATA[
<div class="quotetitle">jacekk232 napisał(a):</div><div class="quotecontent"><br />Do OCR1A i ICR1 wpisujesz wartości tylko jeden raz na początku funkcji main czyli po starcie programu. Tak więc późniejsze operacje na zmiennych pulse i frq nie zmieniają wartości rejestrów OCR1A i ICR1.<br /></div><br />W innym projekcie to dziala w pętli for zmieniałem OCR0A na attiny25 ale tam nie urzywałem zapisu do eeprom, w tym przypadku chodzi mi o to aby po restarcie zapamiętane były ostatnie ustawienia<br /><br />Tylko że w tamtym projekcie jako tynik podawałem OCR0A = pulse;  i to może być przyczyna - musze sprawdzić.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1584">mickeu</a> — 30 sie 2014, o 15:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[jacekk232]]></name></author>
<updated>2014-08-30T15:04:12+01:00</updated>
<published>2014-08-30T15:04:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8342&amp;p=93486#p93486</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8342&amp;p=93486#p93486"/>
<title type="html"><![CDATA[Re: Odczyt,zmiana i zapis zmiennej do eeprom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8342&amp;p=93486#p93486"><![CDATA[
Do OCR1A i ICR1 wpisujesz wartości tylko jeden raz na początku funkcji main czyli po starcie programu. Tak więc późniejsze operacje na zmiennych pulse i frq nie zmieniają wartości rejestrów OCR1A i ICR1.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=204">jacekk232</a> — 30 sie 2014, o 15:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mickeu]]></name></author>
<updated>2014-08-30T14:47:21+01:00</updated>
<published>2014-08-30T14:47:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8342&amp;p=93482#p93482</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8342&amp;p=93482#p93482"/>
<title type="html"><![CDATA[Odczyt,zmiana i zapis zmiennej do eeprom]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8342&amp;p=93482#p93482"><![CDATA[
Witam wszystkich<br /><br />Proszę o podpowiedź co robię źle w tym programie.<br />Po starcie tak jak jest odczytane z eeprom timer pwm startuje z zadanymi wartościami, jednak przy probie zmiany klawiszem KEY_OK zmienne pulse oraz frq nie ulegają zmianie, na oscyloskopie nie widać zmian impulsu - czestotliwości<br />Funkcja przycisków działą dobrze - sprawdzałęm na innym porcie funkcją ^=<br /><br />main.c<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &quot;common.h&quot;<br /><br />void krotki_ok(void){<br />pulse =+50;<br />        eeprom_update_byte(&amp;eepulse);<br />}<br /><br />void dlugi_ok(void){<br />            frq =+50;<br />            eeprom_update_byte(&amp;eefrq);<br />}<br />//************************************************************************************MAIN<br />int main(void){<br /><br />pulse = eeprom_read_byte(&amp;eepulse);<br />frq = eeprom_read_word(&amp;eefrq);<br /><br />DDRD |=(1&lt;&lt;PORTD5);<br />TCCR1A |= (1&lt;&lt;COM1A1);<br />TCCR1B |= (1&lt;&lt;WGM13);<br />TCCR1B |= (1&lt;&lt;CS10);<br />OCR1A =10*pulse;<br />ICR1 = 10000000/frq;<br /><br />DDRD &amp;= ~(KEY_OK);<br />PORTD |=  KEY_OK;<br /><br />DDRD |= (1&lt;&lt;PORTD3);<br /><br />        soft_timer();<br />sei();<br /><br /><br />while(1){<br />                        <br />key(&amp;PIND,KEY_OK,krotki_ok, dlugi_ok);<br /><br />   }<br />}[/syntax]<br /><br />common.c<br />[syntax=c]/*<br /> * common.c<br /> *<br /> *  Created on: 30-08-2014<br /> *      Author: Mick<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/eeprom.h&gt;<br />#include &quot;common.h&quot;<br /><br />uint8_t EEMEM eepulse = 250;<br />uint16_t EEMEM eefrq = 500;<br />uint8_t pulse;<br />uint16_t frq;<br /><br />uint8_t Lk;<br /><br />void soft_timer(void){<br /><br />TCCR3B |= (1&lt;&lt;CS31)|(1&lt;&lt;CS30)|(1&lt;&lt;WGM32);<br />OCR3A = 3125;<br />TIMSK3 |= (1&lt;&lt;OCIE3A);<br />}<br />void key(volatile uint8_t *KPIN, uint8_t key_m, void (*kfun1)(void), void (*kfun2)(void)) {<br />        if (!(*KPIN&amp;key_m)){<br />                if(!Timer3){<br />                        Timer3=1;<br />                        if(Lk&lt;255) ++Lk;<br />                        if(Lk==100){                   //długi przycisk 1000ms<br />                                kfun2();<br />                        }<br />                }<br />        } else<br />                {<br />                if(Lk&gt;1 &amp;&amp; Lk&lt;51) {           //krótki przycisk 30-500ms<br />                        kfun1();<br />                }<br />                Lk=0;<br />                }<br /><br />ISR(TIMER3_COMPA_vect){<br /><br />uint16_t x;<br />x = Timer1;<br />if (x) Timer1 = --x;<br />x = Timer2;<br />if (x) Timer2 = --x;<br />x = Timer3;<br />if (x) Timer3 = --x;<br />x = Timer4;<br />if (x) Timer4 = --x;<br />x = Timer5;<br />if (x) Timer5 = --x;<br />}<br /><br />}[/syntax]<br /><br />common.h<br /><br />[syntax=c]/*<br /> * common.h<br /> *<br /> *  Created on: 30-08-2014<br /> *      Author: Mick<br /> */<br /><br />#ifndef COMMON_H_<br />#define COMMON_H_<br /><br />#define KEY_OK(1&lt;&lt;PORTD0)<br />#define KEY_UP(1&lt;&lt;PORTD1)<br />#define KEY_DOWN(1&lt;&lt;PORTD2)<br />#define EEMEM __attribute__((section(&quot;.eeprom&quot;)))<br /><br />extern volatile uint16_t Timer1, Timer2, Timer3, Timer4, Timer5;<br /><br />extern uint8_t EEMEM eepulse;<br />extern uint16_t EEMEM eefrq;<br />extern uint8_t pulse;<br />extern uint16_t frq;<br /><br />void soft_timer(void);<br />void key(volatile uint8_t *KPIN, uint8_t key_m, void (*kfun1)(void), void (*kfun2)(void));<br /><br /><br />#endif /* COMMON_H_ */[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1584">mickeu</a> — 30 sie 2014, o 14:47</p><hr />
]]></content>
</entry>
</feed>