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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-10-17T18:40:17+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=8845&amp;mode</id>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-10-17T18:40:17+01:00</updated>
<published>2014-10-17T18:40:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8845&amp;p=99434#p99434</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8845&amp;p=99434#p99434"/>
<title type="html"><![CDATA[Re: Sprawdzenie poprawności kodu- multipleksowanie nixie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8845&amp;p=99434#p99434"><![CDATA[
Ok już wszystko działa. Wystarczyło dodać kilka linijek. <br /><br />[syntax=c]/*<br /> * 74141.c<br /> *<br /> *  Created on: 04-10-2014<br /> *      Author: Damian<br /> */<br /> <br /> <br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /> <br />#include &quot;dekoder_74141.h&quot;<br /> <br />volatile uint8_t cy1,cy2,cy3,cy4,cy5,cy6;<br /> <br /> <br /> <br />void init_nixie(void)<br />{<br />        TCCR0A |= (1&lt;&lt;WGM01);<br />        TCCR0B |= (1&lt;&lt;CS02);<br />        OCR0A = 52;<br />        TIMSK |= (1&lt;&lt;OCIE0A);<br /> <br />        DDRD |= ANODA4|ANODA5|ANODA6;<br />        PORTD |= ANODA4|ANODA5|ANODA6;<br /> <br />        DDRB |= ANODA1|ANODA2|ANODA3;<br />        PORTB |= ANODA1|ANODA2|ANODA3;<br /> <br />        DDRB |= A_74141|B_74141|C_74141|D_74141;<br />        PORTB &amp;= ~(A_74141|B_74141|C_74141|D_74141);<br /> <br />        DDRB |= (1&lt;&lt;PB3);<br />        PORTB &amp;= ~(1&lt;&lt;PB3);<br />}<br /> <br />ISR(TIMER0_COMPA_vect)<br />{<br />        static uint8_t licznik=1;<br /> <br />        if(licznik==1){<br />                PORTB &amp;= ~(ANODA1);<br />                wyswietl_cyfre(cy1);<br />                PORTB |= ANODA1;   //zmiana<br />        }<br />        else if(licznik==2){<br />                PORTB &amp;= ~(ANODA2);<br />                wyswietl_cyfre(cy2);<br />                PORTB |= ANODA2;   //zmiana<br />        }<br />        else if(licznik==4){<br />                PORTB &amp;= ~(ANODA3);<br />                wyswietl_cyfre(cy3);<br />                PORTB |= ANODA3;   /zmiana<br />        }<br />        else if(licznik==8){<br />                PORTD &amp;= ~(ANODA4);<br />                wyswietl_cyfre(cy4);<br />                PORTD |= ANODA4;   //zmiana<br />        }<br />        else if(licznik==16){<br />                PORTD &amp;= ~(ANODA5);<br />                wyswietl_cyfre(cy5);<br />                PORTD |= ANODA5;  //zmaiana<br />        }<br />        else if(licznik==32){<br />                PORTD &amp;= ~(ANODA6);<br />                wyswietl_cyfre(cy6);<br />                PORTD |= ANODA6;  //zmiana<br />        }<br /> <br /> <br />        licznik &lt;&lt;= 1;<br />        if(licznik&gt;32) licznik=1;<br />}<br /> <br /> <br />void wyswietl_cyfre(uint8_t cyfra)<br />{<br /><br />        PORTB &amp;= ~(A_74141|B_74141|C_74141|D_74141);  //zmiana<br /><br />        switch(cyfra)<br />        {<br />        case 0:<br />                PORTB |= A_74141|D_74141;<br />                break;<br /> <br />        case 1:<br />                PORTB &amp;= ~((A_74141)|B_74141|C_74141|D_74141);<br />                break;<br /> <br />        case 2:<br />                PORTB |= A_74141;<br />                break;<br /> <br />        case 3:<br />                PORTB |= B_74141;<br />                break;<br /> <br />        case 4:<br />                PORTB |= A_74141|B_74141;<br />                break;<br /> <br />        case 5:<br />                PORTB |= C_74141;<br />                break;<br /> <br />        case 6:<br />                PORTB |= A_74141|C_74141;<br />                break;<br /> <br />        case 7:<br />                PORTB |= B_74141|C_74141;<br />                break;<br /> <br />        case 8:<br />                PORTB |= A_74141|B_74141|C_74141;<br />                break;<br /> <br />        case 9:<br />                PORTB |= D_74141;<br />                break;<br /> <br />        default: break;<br />        }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 17 paź 2014, o 18:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2014-10-16T18:13:15+01:00</updated>
<published>2014-10-16T18:13:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8845&amp;p=99330#p99330</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8845&amp;p=99330#p99330"/>
<title type="html"><![CDATA[Re: Sprawdzenie poprawności kodu- multipleksowanie nixie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8845&amp;p=99330#p99330"><![CDATA[
Przed zmianą wyświetlacza należy wyłączyć wszystkie wyświetlacze potem ustawić cyfrę i na końcu włączyć wybrany wyświetlacz.<br />Dziwnie wygląda zmiana cyfry. Tu też należy ustawić startowy stan np. wszystkie segmenty wyłączone i w zależności od cyfry włączyć potrzebne segmenty. To co masz teraz to pewnie &quot;ponakładane&quot; cyfry.<br /><br />PS.<br />Na schemacie maż węzły tam gdzie nie powinny być. Sygnały rysuje się poleceniem Net, a węzły pojawiają się same. Polecam poradniki Mirka o Eagle.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 16 paź 2014, o 18:13</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2014-10-16T17:45:48+01:00</updated>
<published>2014-10-16T17:45:48+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8845&amp;p=99327#p99327</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8845&amp;p=99327#p99327"/>
<title type="html"><![CDATA[Sprawdzenie poprawności kodu- multipleksowanie nixie]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8845&amp;p=99327#p99327"><![CDATA[
Witam.<br />Jak w temacie. Mam problem z multipleksowaniem nixie i już nie wiem, czy problem dotyczy kodu, czy połączeń. Proszę o pomoc. Dodam, że bardzo często po włączeniu zasilania, lampy przybierają losowe cyferki, migają włączają się, wyłączają samoistnie. A jak już się uspokoją to liczby są całkowicie inne niż te zadeklarowane. <br /><br />dekoder_74141.c<br />[syntax=c]/*<br /> * 74141.c<br /> *<br /> *  Created on: 04-10-2014<br /> *      Author: Damian<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />#include &quot;dekoder_74141.h&quot;<br /><br />volatile uint8_t cy1,cy2,cy3,cy4,cy5,cy6;<br /><br /><br /><br />void init_nixie(void)<br />{<br />TCCR0A |= (1&lt;&lt;WGM01);<br />TCCR0B |= (1&lt;&lt;CS02);<br />OCR0A = 52;<br />TIMSK |= (1&lt;&lt;OCIE0A);<br /><br />DDRD |= ANODA4|ANODA5|ANODA6;<br />PORTD |= ANODA4|ANODA5|ANODA6;<br /><br />DDRB |= ANODA1|ANODA2|ANODA3;<br />PORTB |= ANODA1|ANODA2|ANODA3;<br /><br />DDRB |= A_74141|B_74141|C_74141|D_74141;<br />PORTB &amp;= ~(A_74141|B_74141|C_74141|D_74141);<br /><br />DDRB |= (1&lt;&lt;PB3);<br />PORTB &amp;= ~(1&lt;&lt;PB3);<br />}<br /><br />ISR(TIMER0_COMPA_vect)<br />{<br />static uint8_t licznik=1;<br /><br />if(licznik==1){<br />PORTB &amp;= ~(ANODA1);<br />//PORTB |= (ANODA2)|(ANODA3);<br />//PORTD |= (ANODA4)|(ANODA5)|(ANODA6);<br />wyswietl_cyfre(cy1);<br />}<br />else if(licznik==2){<br />PORTB &amp;= ~(ANODA2);<br />//PORTB |= (ANODA1)|(ANODA3);<br />//PORTD |= (ANODA4)|(ANODA5)|(ANODA6);<br />wyswietl_cyfre(cy2);<br />}<br />else if(licznik==4){<br />PORTB &amp;= ~(ANODA3);<br />//PORTB |= (ANODA1)|(ANODA2);<br />//PORTD |= (ANODA4)|(ANODA5)|(ANODA6);<br />wyswietl_cyfre(cy3);<br />}<br />else if(licznik==8){<br />PORTD &amp;= ~(ANODA4);<br />//PORTD |= (ANODA5)|(ANODA6);<br />//PORTB |= (ANODA1)|(ANODA2)|(ANODA3);<br />wyswietl_cyfre(cy4);<br />}<br />else if(licznik==16){<br />PORTD &amp;= ~(ANODA5);<br />//PORTD |= (ANODA4)|(ANODA6);<br />//PORTB |= (ANODA1)|(ANODA2)|(ANODA3);<br />wyswietl_cyfre(cy5);<br />}<br />else if(licznik==32){<br />PORTD &amp;= ~(ANODA6);<br />//PORTD |= (ANODA4)|(ANODA5);<br />//PORTB |= (ANODA1)|(ANODA2)|(ANODA3);<br />wyswietl_cyfre(cy6);<br />}<br /><br /><br />licznik &lt;&lt;= 1;<br />if(licznik&gt;32) licznik=1;<br />}<br /><br /><br />void wyswietl_cyfre(uint8_t cyfra)<br />{<br />switch(cyfra)<br />{<br />case 0:<br />PORTB |= A_74141|D_74141;<br />break;<br /><br />case 1:<br />PORTB &amp;= ~((A_74141)|B_74141|C_74141|D_74141);<br />break;<br /><br />case 2:<br />PORTB |= A_74141;<br />break;<br /><br />case 3:<br />PORTB |= B_74141;<br />break;<br /><br />case 4:<br />PORTB |= A_74141|B_74141;<br />break;<br /><br />case 5:<br />PORTB |= C_74141;<br />break;<br /><br />case 6:<br />PORTB |= A_74141|C_74141;<br />break;<br /><br />case 7:<br />PORTB |= B_74141|C_74141;<br />break;<br /><br />case 8:<br />PORTB |= A_74141|B_74141|C_74141;<br />break;<br /><br />case 9:<br />PORTB |= D_74141;<br />break;<br /><br />default: break;<br />}<br />}[/syntax]<br /><br /><br />dekoder_74141.h<br />[syntax=c]/*<br /> * 74141.h<br /> *<br /> *  Created on: 04-10-2014<br /> *      Author: Damian<br /> */<br /><br />#ifndef DEKODER_74141_H_<br />#define DEKODER_74141_H_<br /><br /><br />#define ANODA1 (1&lt;&lt;PB2)<br />#define ANODA2 (1&lt;&lt;PB1)<br />#define ANODA3 (1&lt;&lt;PB0)<br />#define ANODA4 (1&lt;&lt;PD6)<br />#define ANODA5 (1&lt;&lt;PD1)<br />#define ANODA6 (1&lt;&lt;PD0)<br /><br />#define A_74141 (1&lt;&lt;PB7)<br />#define B_74141 (1&lt;&lt;PB5)<br />#define C_74141 (1&lt;&lt;PB4)<br />#define D_74141 (1&lt;&lt;PB6)<br /><br /><br />extern volatile uint8_t cy1,cy2,cy3,cy4,cy5,cy6;<br /><br />void init_nixie(void);<br /><br />void wyswietl_cyfre(uint8_t cyfra);<br /><br /><br />#endif /* DEKODER_74141_H_ */[/syntax]<br /><br />main.c<br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 04-10-2014<br /> *      Author: Damian<br /> */<br /><br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#include &quot;biblioteka_74141/dekoder_74141.h&quot;<br /><br /><br /><br />int main(void)<br />{<br />init_nixie();<br /><br />cy1=1;<br />cy2=2;<br />cy3=3;<br />cy4=4;<br />cy5=5;<br />cy6=9;<br /><br />sei();<br /><br />while(1)<br />{<br /><br />}<br />}[/syntax]<br /><br />Schemat. Sorki za taką laurkę, ale był robiony na szybko <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><a href="http://forum.atnel.pl/_obrazki/o/889/f10b1b4282dfec9974a589b3b30fc158.png"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/889/f10b1b4282dfec9974a589b3b30fc158.png" alt="Obrazek" /></a><br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 16 paź 2014, o 17:45</p><hr />
]]></content>
</entry>
</feed>