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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-04-18T18:23:25+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=6810&amp;mode</id>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-04-18T18:23:25+01:00</updated>
<published>2014-04-18T18:23:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6810&amp;p=78559#p78559</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6810&amp;p=78559#p78559"/>
<title type="html"><![CDATA[Re: Zmienna jaka numer elementu tablicy. ATMEGA8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6810&amp;p=78559#p78559"><![CDATA[
<div class="quotetitle">Konradev2 napisał(a):</div><div class="quotecontent"><br />Po zmianie volatile na static śmiga<br /></div><br /><br />No i super <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 18 kwi 2014, o 18:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Konradev2]]></name></author>
<updated>2014-04-18T18:07:34+01:00</updated>
<published>2014-04-18T18:07:34+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6810&amp;p=78556#p78556</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6810&amp;p=78556#p78556"/>
<title type="html"><![CDATA[Re: Zmienna jaka numer elementu tablicy. ATMEGA8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6810&amp;p=78556#p78556"><![CDATA[
Po zmianie volatile na static śmiga <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=4057">Konradev2</a> — 18 kwi 2014, o 18:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[sq8dsr]]></name></author>
<updated>2014-04-18T17:58:56+01:00</updated>
<published>2014-04-18T17:58:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6810&amp;p=78554#p78554</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6810&amp;p=78554#p78554"/>
<title type="html"><![CDATA[Re: Zmienna jaka numer elementu tablicy. ATMEGA8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6810&amp;p=78554#p78554"><![CDATA[
Nie widać sposobu przypisywania zmiennej kolejka wartości innej niż stała dosłowna. <br />Na czym polega niedziałanie przypisania zmiennej kolejka wartości innej niż stała dosłowna?<br />Czy wartość jest inna niż powinna być?<br /><br />Rozumiem, że w zamyśle chodzi o to by zmiennej kolejka przepisać coś co zależy od wykonywania się programu czyli zapewne wartość jakiejś innej zmiennej. <br />To teoretyczne gdybanie, ale jeśli wartość zmiennej którą chcesz przypisać do zmiennej kolejka zmienia się w procedurze przerwania to też musi być dodany specyfikator volatile. <br />Jeśli jest to zmienna lokalna w jakiejś funkcji która jest wielokrotnie wywoływana to musi mieć specyfikator static.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1589">sq8dsr</a> — 18 kwi 2014, o 17:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Konradev2]]></name></author>
<updated>2014-04-18T17:30:39+01:00</updated>
<published>2014-04-18T17:30:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=6810&amp;p=78551#p78551</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=6810&amp;p=78551#p78551"/>
<title type="html"><![CDATA[Zmienna jaka numer elementu tablicy. ATMEGA8]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=6810&amp;p=78551#p78551"><![CDATA[
Problem wygląda następująco. Buduje sterownik do silnika i chciałbym pod zmienną kolejka dostawiać pewne liczby zależne od dalszej części kodu, jednak to podstawienie nie działa. A jak podstawie 7 w taki sposób Fazowa[7],wtedy działa. Co może być powodem. Kompilator nie wyrzuca błędów.<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br /><br />//detekcja zera<br />#define ZERO_DET_PORTPORTD<br />#define ZERO_DET_PINPD2<br />#define PEDAL_PORT PORTD<br />#define PEDAL_PIN PD0<br />#define TRIAC_PORTPORTB<br />#define TRIAC_DDRDDRB<br />#define TRIAC_PINPB1<br />#define TRIAC_ONTRIAC_PORT |= (1&lt;&lt;TRIAC_PIN);//wl triac<br />#define TRIAC_OFFTRIAC_PORT &amp;= ~(1&lt;&lt;TRIAC_PIN);//wyl triac<br />#define TIMER_OFFTIMSK &amp;= ~(1&lt;&lt;OCIE1A);<br />#define TIMER_ONTIMSK |= (1&lt;&lt;OCIE1A);<br /><br />volatile uint16_t sys_tick = 0;<br />volatile uint16_t kolejka = 0;<br /><br />void GPIO_conf();<br />void Ext_Intr_conf();<br />void PWM_prog_conf();<br /><br />volatile uint16_t Fazowa&#91;&#93; = {780, 760, 740, 720, 710, 714, 710, 707, 704, 702, 700, 698};<br />ISR(TIMER1_COMPA_vect)<br />{<br />kolejka = 7;     //dajmy że tą zmienną chce pozniej modyfikować, z powodu roznych innych zdarzeń.<br />if(sys_tick++ == Fazowa&#91;kolejka&#93;)<br />{<br />sys_tick = 0;<br />TRIAC_ON;<br />TIMER_OFF;<br />}<br />}<br />ISR(INT0_vect)<br />{<br />TRIAC_OFF;<br />if(!(PIND &amp; (1&lt;&lt;PD0)))<br />{<br />TIMER_ON;<br />}<br />if((PIND &amp; (1&lt;&lt;PD0)))<br />{<br />sys_tick = 0;<br />kolejka = 0;<br />TRIAC_OFF;<br />TIMER_OFF;<br /><br />}<br /><br />}<br />int main(void)<br />{<br />GPIO_conf();<br />Ext_Intr_conf();<br />PWM_prog_conf();<br /><br />sei();<br /><br />for(;;)<br />{<br /><br />}<br /><br />return 0;<br />}<br /><br />void GPIO_conf()<br />{<br />//konfiguracja GPIO<br />ZERO_DET_PORT |= (1&lt;&lt;ZERO_DET_PIN);//pullup<br />PEDAL_PORT |= (1&lt;&lt;PEDAL_PIN);<br />TRIAC_DDR |= (1&lt;&lt;TRIAC_PIN);//jako wyjscie<br />TRIAC_PORT &amp;= ~(1&lt;&lt;TRIAC_PIN);//wyl triac<br />}<br />void Ext_Intr_conf()<br />{<br />////konfiguracja przerwania INT0<br />MCUCR |= (1&lt;&lt;ISC01); //FALL EDGE<br />GICR |= (1&lt;&lt;INT0);<br /><br />}<br />void PWM_prog_conf()<br />{<br />TCCR1B |= (1&lt;&lt;WGM12) | (1&lt;&lt;CS11) ;//ctc i pres = 8<br />OCR1A = 9; //przerwanie co 0.01ms<br />TIMER_OFF;<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4057">Konradev2</a> — 18 kwi 2014, o 17:30</p><hr />
]]></content>
</entry>
</feed>