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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-08-20T14:53:53+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=8&amp;t=8197&amp;mode</id>
<entry>
<author><name><![CDATA[atmel]]></name></author>
<updated>2014-08-20T14:53:53+01:00</updated>
<published>2014-08-20T14:53:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8197&amp;p=92165#p92165</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8197&amp;p=92165#p92165"/>
<title type="html"><![CDATA[Re: 2_wyświetlacze_LED_PROBLEM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8197&amp;p=92165#p92165"><![CDATA[
Chodzi oczywiście o zasięg zmiennych, które są lokalne jedynie dla funkcji głownej programu.<br /><br />[syntax=c]volatile uint8_t liczba_LED&#91;10&#93; = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};     //tablica z cyframi<br />volatile uint8_t i, j;// Deklaracje można łączyć. Zmienne globalne zerowane są automatycznie.[/syntax]<br />Powinno być przed funkcją &quot;main&quot;.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1183">atmel</a> — 20 sie 2014, o 14:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mnich16]]></name></author>
<updated>2014-08-20T14:40:43+01:00</updated>
<published>2014-08-20T14:40:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8197&amp;p=92162#p92162</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8197&amp;p=92162#p92162"/>
<title type="html"><![CDATA[2_wyświetlacze_LED_PROBLEM]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8197&amp;p=92162#p92162"><![CDATA[
Witam chciałem zrobić licznik na dwóch wyświetlaczach LED np. odliczanie od 0 do 99 i mam problem.    Wiem że w pętli głównej to odliczanie nie liczy na razie od 0 do 99 ale to nic tym się zajmę potem chodzi oto że na początku programu utworzyłem zmienne i , j , i tablice lecz program się nie kompiluję poprawnie gdyż te zmienne chyba nie są rozpoznawalne w przerwaniu chociaż są poprzedzone volatile.   ma to działać tak że w pętli głównej będą inkrementowane zmienne i oraz j i za ich pomocą w przerwaniu będą wybierane liczby z tablicy i wyrzucane na port<br /><br />proszę o pomoc dzięki<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 /><br />int main(void){<br /><br />DDRC |=0b111111111;             //wyswietlacz katody wyjscie<br />PORTC |=0b11111111;             //wyswietlacz katody pull-up<br /><br />DDRD |=(1&lt;&lt;PD1)|(1&lt;&lt;PD2);       //wyswietlacz anody wyjscie<br />PORTD |=(1&lt;&lt;PD1)|(1&lt;&lt;PD2);      //wyswietlacz anody pull-up<br /><br /><br /> volatile uint8_t liczba_LED&#91;10&#93;={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};     //tablica z cyframi<br /><br /><br /> volatile uint8_t i=0;<br /> volatile uint8_t j=0;<br /><br /><br /><br /><br />//////////////////////////////TIMER-INIT/////////////////////////////////////////////////////////////////////////////////////////////////<br /><br />TCCR0 |=(1&lt;&lt;WGM01);               //tryb CTC<br />TCCR0 |= (1&lt;&lt;CS02)|(1&lt;&lt;CS00);    // preskaler 1024<br />OCR0 =75;<br />TIMSK |=(1&lt;&lt;OCIE0);             //zezwolenie na przerwanie<br /><br />/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////<br /><br />sei();<br /><br />while(1){<br /><br />i++;<br />_delay_ms(500);<br />if(i&gt;=8){<br />i=0;<br /><br />   j++;<br />if(j&gt;=8){<br />j=0;<br />}<br /><br />}<br /><br /><br /><br /><br />     }<br /><br /><br />  }<br /><br /><br /><br />ISR(TIMER0_COMP_vect){<br /><br /><br /><br />static uint8_t licznik=1;<br />PORTD= ~licznik;<br /><br />if(licznik==1)      PORTC=liczba_LED&#91;i&#93;;<br />else if(licznik==2) PORTC=liczba_LED&#91;j&#93;;<br /><br /><br />licznik &lt;&lt;=1;<br />if(licznik&gt;2) licznik=1;<br /><br /><br />}[/syntax]<br /><br /><br /><br />a tu moje błędy z konsoli:<br /><br />Invoking: AVR Compiler<br />avr-gcc -Wall -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega32 -DF_CPU=8000000UL -MMD -MP -MF&quot;main.d&quot; -MT&quot;main.d&quot; -c -o &quot;main.o&quot; &quot;../main.c&quot;<br />../main.c: In function 'main':<br />../main.c:17: warning: unused variable 'liczba_LED'<br />../main.c: In function '__vector_10':<br />../main.c:68: error: 'liczba_LED' undeclared (first use in this function)<br />../main.c:68: error: (Each undeclared identifier is reported only once<br />../main.c:68: error: for each function it appears in.)<br />../main.c:68: error: 'i' undeclared (first use in this function)<br />../main.c:69: error: 'j' undeclared (first use in this function)<br />make: *** [main.o] Error 1<br /><br />**** Build Finished ****<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5032">Mnich16</a> — 20 sie 2014, o 14:40</p><hr />
]]></content>
</entry>
</feed>