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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-12-19T23:01:46+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=30&amp;t=9770&amp;mode</id>
<entry>
<author><name><![CDATA[Waldek_jb]]></name></author>
<updated>2014-12-19T23:01:46+01:00</updated>
<published>2014-12-19T23:01:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109584#p109584</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109584#p109584"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7seg potrójny - nie hula]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109584#p109584"><![CDATA[
Panowie to macie przy programowaniu jeszcze czas na konsumpcję.  <img src="https://forum.atnel.pl/images/smilies/icon_e_surprised.gif" alt=":o" title="Zdziwiony" /> <br /> Ja jakoś kiepsko trawię.  <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1693">Waldek_jb</a> — 19 gru 2014, o 23:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pbmaster]]></name></author>
<updated>2014-12-19T22:38:15+01:00</updated>
<published>2014-12-19T22:38:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109581#p109581</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109581#p109581"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7seg potrójny - nie hula]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109581#p109581"><![CDATA[
Cieszę się, że mogłem pomóc <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Tak na marginesie... Rozwalił mnie prawy dolny róg Twojego zdjęcia  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Jakbym swoje biurko widział <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=2093">pbmaster</a> — 19 gru 2014, o 22:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dominiczek100]]></name></author>
<updated>2014-12-19T22:29:43+01:00</updated>
<published>2014-12-19T22:29:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109580#p109580</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109580#p109580"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7seg potrójny - nie hula]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109580#p109580"><![CDATA[
Zdecydowanie głupiec ze mnie okrutny, bo mając schemat przed oczami poczyniłem idiotyczne założenie. Wielkie dzięki, jedno zdanie, a tyle szczęścia:P<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7327">dominiczek100</a> — 19 gru 2014, o 22:29</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[pbmaster]]></name></author>
<updated>2014-12-19T22:24:15+01:00</updated>
<published>2014-12-19T22:24:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109579#p109579</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109579#p109579"/>
<title type="html"><![CDATA[Re: Wyświetlacz 7seg potrójny - nie hula]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109579#p109579"><![CDATA[
A dlaczego do sterowania wyświetlaczem nie stosujesz tranzystorów? Nie widzę ich na stykówce... Pamiętam, że też kiedyś próbowałem odpalić to ćwiczenie bez tranzystorów i działy mi się po prostu cuda na wyświetlaczu. Nie wiem, czy jest to przyczyna w Twoim przypadku, ale warto byłoby je dołożyć.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2093">pbmaster</a> — 19 gru 2014, o 22:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[dominiczek100]]></name></author>
<updated>2014-12-19T22:24:51+01:00</updated>
<published>2014-12-19T22:03:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109577#p109577</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109577#p109577"/>
<title type="html"><![CDATA[Wyświetlacz 7seg potrójny - nie hula]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=9770&amp;p=109577#p109577"><![CDATA[
Witam. Wzorują się na książce Pana Mirka chciałem sobie zaprogramować wyśw. 7seg potrójny, jednak nie działa on jak należy. Obstawiam, że to coś z przerwaniami po tym jak to wygląda, ale już 2 dzień się głowie i nie jestem w stanie wymyślić w czym rzecz. Jeśli ktoś znajdzie chwilę co by rzucić okiem i coś podpowiedzieć, będę wdzięczny;)<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/7327/0e62ab05ca94faefe956ca981a94d7c6.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/7327/0e62ab05ca94faefe956ca981a94d7c6.jpg" alt="Obrazek" /></a><br /><br />main.c<br />[syntax=c]#include &lt;avr/io.h&gt; //glowny systemowy plik naglowkowy<br />#include &lt;avr/interrupt.h&gt; //dolaczenie pliku naglowkowego do obslugi przerwan<br /><br />#include &quot;d_led.h&quot;  //dolaczenie pliku naglowkowego obslugi LED<br /><br />int main(void)<br />{<br />d_led_init(); //inicjalizacja wysf multipleksowanego<br /><br />cy1=2;<br />cy2=1;<br />cy3=2;<br />//cy4=5;<br /><br />sei(); //wlaczenie globalnego zezwolnia na przerwanie<br /><br />//************petla glowna********<br /><br />while(1)<br />{<br />//kod moze tu byc, jak pusta to na zawsze sie tu program zatrzyma<br />//a cyfry wczesniejsze se zostana<br />}<br /><br />}[/syntax]<br /><br />d_led.h<br />[syntax=c]#ifndef _d_led_h //zabezpieczniee przed wilokrotnym dolaczeniem pliku jesli bedzie<br />#define _d_led_h //dolaczany w roznych plikach programu<br /><br />//definicja portow i pinow wysf uzywanych w programie jako stale preprocka<br /><br />// definicje portów i pinów wyświetlacza używanych dla ułatwienia w programie jako stałe preprocesora<br />#define LED_DATA PORTC// port z podłączonymi segmentami<br />#defineLED_DATA_DIR DDRC// rejestr kierunku portu katod wyświetlaczy<br />#define ANODY_PORT PORTA// port z podłączonymi anodami- 4 bity najmłodsze<br />#define ANODY_DIR DDRA// rejestr kierunku portu anod wyświetlaczy<br /><br />#define CA1 (1&lt;&lt;PA0)    //CA1 to bit nr 0 portu A z anodka<br />#define CA2 (1&lt;&lt;PA1)<br />#define CA3 (1&lt;&lt;PA2)<br />// #define CA4 (1&lt;&lt;PA3)<br /><br />#define SEG_A (1&lt;&lt;0)<br />#define SEG_B (1&lt;&lt;1)<br />#define SEG_C (1&lt;&lt;2)<br />#define SEG_D (1&lt;&lt;3)<br />#define SEG_E (1&lt;&lt;4)<br />#define SEG_F (1&lt;&lt;5)<br />#define SEG_G (1&lt;&lt;6)<br />#define SEG_DP (1&lt;&lt;7)<br /><br /><br /><br /><br /><br /><br /><br /><br />extern volatile uint8_t cy1; //same DEKLARACJE zmiennych globalnych na potrzeby<br />extern volatile uint8_t cy2; //wykorzystania ich w innych plikach projektu<br />extern volatile uint8_t cy3; // extern powoduje ze zmienne beda dostepne w innych<br />// extern volatile uint8_t cy4; //modulch ktore zalacza plik d_led.h za pomoca #include<br /><br />//obszar deklaracji funkcji udsotepnionych dla innych modulow<br /><br />void d_led_init(void);<br /><br /><br /><br />#endif[/syntax]<br /><br />d_led.c<br />[syntax=c]#include &lt;avr/io.h&gt; //glowny systemowy plik naglowkowy<br />#include &lt;avr/interrupt.h&gt; //dolaczenie pliku naglowkowego do obslugi przerwan<br />#include &lt;avr/pgmspace.h&gt;<br />#include &quot;d_led.h&quot;  //dolaczenie pliku naglowkowego obslugi LED, znajduja sie tu<br />// def preprocka,zmiennych glob przechowujacych cyfry, volatile bo<br />// beda wykorzystywane do odczytu i zapisu tak w programie jak i w przerwaniu<br /><br />// definicje zmiennych globalnych przechowujących cyfry do wyświetlania<br />// volatile – ponieważ będą wykorzystywane do odczytu i zapisu zarówno w przerwaniu i programie<br />// głównym. Trzeba więc wyłączyć optymalizację dostępu do nich. (zmienne ulotne)<br />volatile uint8_t cy1;<br />volatile uint8_t cy2;<br />volatile uint8_t cy3;<br />//volatile uint8_t cy4;<br /><br /><br /><br />// definicja tablicy zawierającej definicje bitowe cyfr LED<br />uint8_t cyfry&#91;15&#93; PROGMEM = {<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F),// 0<br />~(SEG_B|SEG_C),// 1<br />~(SEG_A|SEG_B|SEG_D|SEG_E|SEG_G),// 2<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_G),// 3<br />~(SEG_B|SEG_C|SEG_F|SEG_G),// 4<br />~(SEG_A|SEG_C|SEG_D|SEG_F|SEG_G),// 5<br />~(SEG_A|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G),// 6<br />~(SEG_A|SEG_B|SEG_C|SEG_F),// 7<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_E|SEG_F|SEG_G),// 8<br />~(SEG_A|SEG_B|SEG_C|SEG_D|SEG_F|SEG_G),// 9<br />0xFF// NIC (puste miejsce)<br />};<br /><br />//*************def funkcji inicjalizujacej prace wysf************<br />void d_led_init(void)<br />{<br />LED_DATA_DIR=0xFF; // 255 wszystkie piny portu C jako wyjscia (katody)<br />LED_DATA=0xFF; //wygaszenie wszystkich katod - stan wysoki<br /><br />ANODY_DIR |= CA1 | CA2 | CA3; //| CA4 ; //piny portu A jako wyjscia (anody)<br />ANODY_PORT |= CA1 | CA2 | CA3; //| CA4 ; //wygaszenie wszystkich wysfietlaczy - anody<br /><br />//ustawienie TIMER0<br />TCCR0 |= (1&lt;&lt;WGM01); //tryb CTC<br />TCCR0 |= (1&lt;&lt;CS00) | (1&lt;&lt;CS02); //preskaler 1024<br />OCR0=52; //dodatkowy podzial przez 39<br />TIMSK |= (1&lt;&lt;OCIE0); //zezwolenie na przerwanie CompareMatch<br />}<br /><br />//**********Procedura przerwania COmpareMatch******************<br />ISR(TIMER0_COMP_vect)<br />{<br />static uint8_t licznik =1; //zmienna do przelaczania kolejno anod wysf<br /><br />ANODY_PORT = (ANODY_PORT &amp; 0xF8);// wygaszenie wszystkich wyświetlaczy<br /><br />if(licznik==1) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy1&#93;); //gdy zapalony wysf 1 podaj stan zmiennej c1<br />else if(licznik==2) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy2&#93;); //gdy zapalony wysf 1 podaj stan zmiennej c1<br />else if(licznik==4) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy3&#93;); //gdy zapalony wysf 1 podaj stan zmiennej c1<br />// else if(licznik==8) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy4&#93;); //gdy zapalony wysf 1 podaj stan zmiennej c1<br /><br />ANODY_PORT = (ANODY_PORT &amp; 0xF8) | (~licznik &amp; 0x0F); //cykliczne przelaczanie w kazdym przerwaniu anod kazdego<br />//wysf (wartosc jest negowana aby krazylo 0)<br />//Operacje cyklicznego przesuwnaia bitu zapalajacego anody w zmiennej licznik<br />licznik &lt;&lt;=1;<br />if (licznik&gt;4) licznik=1;<br />}[/syntax]<br /><br />Dodam że jak se klepnę same 2 lub 3 itd (w sensie 3 cyfry te same) to jest wszystko ok, stąd mój wniosek że pewno coś z tym przerwaniem, ale nie potrafię tego zlokalizować niestety<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7327">dominiczek100</a> — 19 gru 2014, o 22:03</p><hr />
]]></content>
</entry>
</feed>