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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-02-01T20:45:42+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=5785&amp;mode</id>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-02-01T20:45:42+01:00</updated>
<published>2014-02-01T20:45:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67910#p67910</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67910#p67910"/>
<title type="html"><![CDATA[Re: Biblioteka do lamp nixie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67910#p67910"><![CDATA[
Dzięki bardzo. <br /><br /><div class="quotetitle">savian86 napisał(a):</div><div class="quotecontent"><br />Popraw sobie multipleksowanie anod, bo wykorzystujesz cztery bity, a nadpisujesz wszystkie osiem.<br /></div><br /><br />Masz na myśli maskowanie bitów?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 1 lut 2014, o 20:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[savian86]]></name></author>
<updated>2014-02-01T20:41:14+01:00</updated>
<published>2014-02-01T20:41:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67902#p67902</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67902#p67902"/>
<title type="html"><![CDATA[Re: Biblioteka do lamp nixie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67902#p67902"><![CDATA[
Do każdego pinu musisz zadeklarować mu PORT i DDR<br />[syntax=c]#define PORT_liczba1PORTD<br />#define DDR_liczba1DDRD<br />#define liczba1 (1&lt;&lt;PD0)<br /><br />#define PORT_liczba2PORTC<br />#define DDR_liczba2DDRC<br />#define liczba2 (1&lt;&lt;PC0)<br />.<br />.<br />.<br />#define PORT_liczba9PORTB<br />#define DDR_liczba9DDRB<br />#define liczba9 (1&lt;&lt;PB4)[/syntax]<br /><br />Teraz w inicjalizacjii musisz wszystko pustawiać<br />[syntax=c]DDR_liczba1 |= liczba1;<br />DDR_liczba2 |= liczba2;<br />.<br />.<br />.<br />DDR_liczba9 |= liczba9;[/syntax]<br /><br />Pokażę ci jeden z przykładów jak można to wykonać (z racji że każdy pin może być na innym porcie to będzie trochę pisania):<br />[syntax=c]if(licznik==1) display_digit(cy1);<br />else if(licznik==2) display_digit(cy2);<br />else if(licznik==3) display_digit(cy3);<br />else if(licznik==4) display_digit(cy4);[/syntax]<br />A tutaj funkcja display_digit() żeby jej nie powielać:<br />[syntax=c]void display_digit(uint8_t zm)<br />{<br />//wylaczamy wszystkie cyfry, oczywiscie zalezne od aktywnego stanu (0-wylacz, 1-wlacz)<br />PORT_liczba1 &amp;= ~liczba1;PORT_liczba2 &amp;= ~liczba2;...PORT_liczba9 &amp;= ~liczba9;<br /><br />switch(zm)<br />{<br />case 0: PORT_liczba0 |= liczba0; break;<br /><br />case 1: PORT_liczba1 |= liczba1; break;<br />                 .<br />                 .<br />                 .<br />case 9: PORT_liczba9 |= liczba9; break;<br /><br />default:  break;<br />}<br />}[/syntax]<br /><br />Popraw sobie multipleksowanie anod, bo wykorzystujesz cztery bity, a nadpisujesz wszystkie osiem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=393">savian86</a> — 1 lut 2014, o 20:41</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-02-01T19:49:08+01:00</updated>
<published>2014-02-01T19:49:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67888#p67888</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67888#p67888"/>
<title type="html"><![CDATA[Re: Biblioteka do lamp nixie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67888#p67888"><![CDATA[
Witam.<br />Zajrzałem do książki, ale za wiele nic mi to nie dało. Wiem, o które makra koledze chodzi, ale nie potrafię sobie tego wyobrazić jak je wykorzystać. Mógłbym prosić o mały przykład?<br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 1 lut 2014, o 19:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[savian86]]></name></author>
<updated>2014-02-01T19:19:46+01:00</updated>
<published>2014-02-01T19:19:46+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67869#p67869</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67869#p67869"/>
<title type="html"><![CDATA[Re: Biblioteka do lamp nixie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67869#p67869"><![CDATA[
Na początek zamień zapis<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#define liczba1 (1&lt;&lt;0)</div><br />na taki który będzie tobie mówił jaki pin portu siedzi pod liczba1, np<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">#define liczba1 (1&lt;&lt;PC0)</div><br />Oczywiście ten pierwszy zapis technicznie tez jest poprawny, ale dla dobrego zwyczaju powinno się jawnie określać porty.<br /><br />Zajrzyj do bluebooka do biblioteki od LCD, tam jest pokazane jak przypisać poszczególne wyprowadzenia do dowolnych pinów na całkowicie różnych portach, co pozwoli ci ominąć problem tylko ośmiu pinów na porcie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=393">savian86</a> — 1 lut 2014, o 19:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-02-01T18:43:25+01:00</updated>
<published>2014-02-01T18:43:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67857#p67857</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67857#p67857"/>
<title type="html"><![CDATA[Biblioteka do lamp nixie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=5785&amp;p=67857#p67857"><![CDATA[
Witam.<br />Przerobiłem lekko bibliotekę Pana Mirka (d_led.c i d_led.h) pod lampki nixie, jednakże jako, że nixie ma 10 pinów a port µC 8 pinów, to niestety utknąłem w pliku .h. Nie wiem co wpisać do:<br /><br />[syntax=c]#define liczba9 // co tutaj mam wpisac?<br />#define liczba0 // co tutaj mam wpisac?[/syntax]<br /><br />Dodaję jeszcze plik .c i plik .h<br /><br />[syntax=c]/*<br /> * katody.h<br /> *<br /> *  Created on: 01-02-2014<br /> *      Author: Damian<br /> */<br /><br />#ifndef KATODY_H_<br />#define KATODY_H_<br /><br />void nixie_init(void);<br /><br />#define anoda1 (1&lt;&lt;PC0)<br />#define anoda2 (1&lt;&lt;PC1)// anody lamp nixie<br />#define anoda3 (1&lt;&lt;PC2)<br />#define anoda4 (1&lt;&lt;PC3)<br /><br />#define liczba1 (1&lt;&lt;0)   <br />#define liczba2 (1&lt;&lt;1)<br />#define liczba3 (1&lt;&lt;2)<br />#define liczba4 (1&lt;&lt;3)<br />#define liczba5 (1&lt;&lt;4)<br />#define liczba6 (1&lt;&lt;5)<br />#define liczba7 (1&lt;&lt;6)<br />#define liczba8 (1&lt;&lt;7)<br />#define liczba9 // co tutaj mam wpisac?<br />#define liczba0 // co tutaj mam wpisac?<br /><br /><br />extern volatile uint8_t cy1;<br />extern volatile uint8_t cy2;<br />extern volatile uint8_t cy3;<br />extern volatile uint8_t cy4;<br />volatile int miganie;  //pomocnicza do sprawdzenia timera<br />extern volatile int flaga;//pomocnicza do sprawdzenia timera<br /><br /><br /><br /><br /><br /><br />#endif /* KATODY_H_ */[/syntax]<br /><br /><br /><br />[syntax=c]/*<br /> * katody.c<br /> *<br /> *  Created on: 01-02-2014<br /> *      Author: Damian<br /> */<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;katody.h&quot;<br /><br />volatile uint8_t cy1;<br />volatile uint8_t cy2;<br />volatile uint8_t cy3;<br />volatile uint8_t cy4;<br />volatile int miganie;  //pomocnicza do sprawdzenia timera<br />volatile int flaga;//pomocnicza do sprawdzenia timera<br /><br />uint8_t cyfry&#91;&#93; ={<br />~liczba1,<br />~liczba2,<br />~liczba3,<br />~liczba4,<br />~liczba5,<br />~liczba6,<br />~liczba7,<br />~liczba8,<br />};<br /><br /><br />void nixie_init(void)<br />{<br />DDRB = 0xFF;<br />PORTB = 0xFF;<br />DDRC |= anoda1|anoda2|anoda3|anoda4;<br />PORTC |= anoda1|anoda2|anoda3|anoda4;<br /><br />TCCR0A |= (1&lt;&lt;WGM01);   //tryb CTC<br />TCCR0B |= (1&lt;&lt;CS00)|(1&lt;&lt;CS02);  //preskaler 1024<br />OCR0A= 52; //załadowanie do OCR0A<br />TIMSK0 |= (1&lt;&lt;OCIE0A);<br />}<br /><br />ISR (TIMER0_COMPA_vect)<br />{<br />static uint8_t licznik=1;// zmienna do przełączania kolejno anod wyrwietlacza<br />/*miganie++;<br />if (miganie==100)<br />{<br />flaga=1;<br />miganie=0;<br />}*/<br /><br />PORTC = ~licznik;<br /><br /><br />if(licznik==1) PORTB = cyfry&#91;cy1&#93;;<br />else if(licznik==2) PORTB = cyfry&#91;cy2&#93;;<br />else if(licznik==4) PORTB = cyfry&#91;cy3&#93;;<br />else if(licznik==8) PORTB = cyfry&#91;cy4&#93;;<br /><br /><br /><br /><br />licznik &lt;&lt;= 1;<br />if(licznik&gt;8) licznik = 1;<br /><br /><br />}[/syntax]<br /><br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 1 lut 2014, o 18:43</p><hr />
]]></content>
</entry>
</feed>