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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-11-29T19:58:17+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=16936&amp;mode</id>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2016-11-29T19:58:17+01:00</updated>
<published>2016-11-29T19:58:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16936&amp;p=176004#p176004</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16936&amp;p=176004#p176004"/>
<title type="html"><![CDATA[Re: Multipleksowanie duchy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16936&amp;p=176004#p176004"><![CDATA[
Zadziałało, dzięki bardzo <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=889">kaka0204</a> — 29 lis 2016, o 19:58</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2016-11-29T19:48:49+01:00</updated>
<published>2016-11-29T19:48:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16936&amp;p=176002#p176002</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16936&amp;p=176002#p176002"/>
<title type="html"><![CDATA[Re: Multipleksowanie duchy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16936&amp;p=176002#p176002"><![CDATA[
Witam<br />W.g schematu masz wyświetlacz wsp.A a w kodzie zapalasz poszcz. cyfry stanem H.<br />[syntax=c]if(cnt==1)<br />        {<br />                LED_ANODA_PORT1 &amp;= ~(1&lt;&lt;ANODA1);<br />                LED_ANODA_PORT2 |= (1&lt;&lt;ANODA2 | 1&lt;&lt;ANODA3 | 1&lt;&lt;ANODA4);<br />                wyswietl_liczbe(cy1);<br />                LED_ANODA_PORT1 |= (1&lt;&lt;ANODA1);<br />        }<br />        else if(cnt==2)<br />        {<br />                LED_ANODA_PORT2 &amp;= ~(1&lt;&lt;ANODA2);<br />                LED_ANODA_PORT2 |= (1&lt;&lt;ANODA3 | 1&lt;&lt;ANODA4);<br />                LED_ANODA_PORT1 |= (1&lt;&lt;ANODA1);<br />                wyswietl_liczbe(cy2);<br />                LED_ANODA_PORT2 |= (1&lt;&lt;ANODA2);<br />        }<br />        else if(cnt==3)<br />        {<br />                LED_ANODA_PORT2 &amp;= ~(1&lt;&lt;ANODA3);<br />                LED_ANODA_PORT2 |= (1&lt;&lt;ANODA2 | 1&lt;&lt;ANODA4);<br />                LED_ANODA_PORT1 |= (1&lt;&lt;ANODA1);<br />                wyswietl_liczbe(cy3);<br />                LED_ANODA_PORT2 |= (1&lt;&lt;ANODA3);<br />        }<br />        else if(cnt==4)<br />        {<br />                LED_ANODA_PORT2 &amp;= ~(1&lt;&lt;ANODA4);<br />                LED_ANODA_PORT2 |= (1&lt;&lt;ANODA2 | 1&lt;&lt;ANODA3);<br />                LED_ANODA_PORT1 |= (1&lt;&lt;ANODA1);<br />                wyswietl_liczbe(cy4);<br />                LED_ANODA_PORT2 |= (1&lt;&lt;ANODA4);<br /> <br />        }[/syntax]<br />Sekwencja powinna być taka:<br />-zgaś wyświetlacz<br />-ustaw cyfrę na wyśw. n<br />-zapal wyśw. n<br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 29 lis 2016, o 19:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kaka0204]]></name></author>
<updated>2016-11-29T19:14:11+01:00</updated>
<published>2016-11-29T19:14:11+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=16936&amp;p=175998#p175998</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=16936&amp;p=175998#p175998"/>
<title type="html"><![CDATA[Multipleksowanie duchy]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=16936&amp;p=175998#p175998"><![CDATA[
Witam.<br />Robię zegarek na wyświetlaczach LED i pojawił się problem. Mianowicie na wyświetlaczach są straszne duchy. Teraz tak. Procek (atmega8) jest taktowany 8MHz. Korzystam z timer0. Chciałbym, aby tykał z częstotliwością 200Hz, wiec licze. <br /><br />8000000/1024/200 = 39 <br />255-39=216<br /><br />I taką wartość wpisuję do TCNT0. Jednak problem w tym, że wyświetlacze wtedy świecą bardzo słabo, prawie niezauważalnie, dopiero jak wybiorę prescaler 64 i wpisze do TCNT0 wartosc 250, to świeci z normalną jasności. Rezystory to 680 Ohm. I teraz nie wiem, czy to wina programu, czy może wadliwego procka (jednak w to bym nie wierzył <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ) Kolejna sprawa, to kwestia duchów. Przy wyświetlaniu 1 na wyświetlaczu zapalają się jeszcze segmenty G i F, tak, że wychodzi 4. <br /><br />Dodaję bibliotekę multipleksowania, gdyż tu zapewne jest błąd. Generalnie chodzi mi o sprawdzenie, czy gdzieś jest błąd w tej bibliotece.<br /><br />multi.c<br /><br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &quot;multi.h&quot;<br /><br /><br /><br />volatile uint8_t cy1, cy2, cy3, cy4;<br /><br /><br />void init_led(void)<br />{<br />LED_ANODA_DIR1 |= (1&lt;&lt;ANODA1);            //kieunek wyjsciowy<br />LED_ANODA_PORT1 |= (1&lt;&lt;ANODA1);         //wylacz anode<br /><br />LED_ANODA_DIR2 |= (1&lt;&lt;ANODA2 | 1&lt;&lt;ANODA3 | 1&lt;&lt;ANODA4 | 1&lt;&lt;PIN_PWM);<br />LED_ANODA_PORT2 |= (1&lt;&lt;ANODA2 | 1&lt;&lt;ANODA3 | 1&lt;&lt;ANODA4);<br />LED_ANODA_PORT2 &amp;= ~(1&lt;&lt;PIN_PWM);<br /><br />LED_DIRB |= (1&lt;&lt;SG_A | 1&lt;&lt;SG_C | 1&lt;&lt;SG_F | 1&lt;&lt;SG_G | 1&lt;&lt;SG_DP);    //kierunek wyjsciowy<br />LED_PORTB |= (1&lt;&lt;SG_A | 1&lt;&lt;SG_C | 1&lt;&lt;SG_F | 1&lt;&lt;SG_G | 1&lt;&lt;SG_DP);  //wylacz segmenty<br /><br />LED_DIRD |= (1&lt;&lt;SG_B | 1&lt;&lt;SG_D | 1&lt;&lt;SG_E);<br />LED_PORTD |= (1&lt;&lt;SG_B | 1&lt;&lt;SG_D | 1&lt;&lt;SG_E);<br /><br /><br />TCCR0 |= (1&lt;&lt;CS02);<br />TIMSK |= (1&lt;&lt;TOIE0);<br />TCNT0 = 254;<br /><br />}<br /><br /><br />void wyswietl_liczbe(uint8_t liczba)<br />{<br /><br /><br />LED_PORTB |= (1&lt;&lt;SG_A | 1&lt;&lt;SG_C | 1&lt;&lt;SG_F | 1&lt;&lt;SG_G | 1&lt;&lt;SG_DP);<br />LED_PORTD |= (1&lt;&lt;SG_B | 1&lt;&lt;SG_D | 1&lt;&lt;SG_E);<br /><br /><br />switch(liczba)<br />{<br />case 0:<br />LED_PORTB &amp;= ~(1&lt;&lt;SG_A | 1&lt;&lt;SG_C | 1&lt;&lt;SG_F);<br />LED_PORTD &amp;= ~(1&lt;&lt;SG_B | 1&lt;&lt;SG_D | 1&lt;&lt;SG_E);<br />break;<br /><br />case 1:<br />LED_PORTD &amp;= ~(1&lt;&lt;SG_B);<br />LED_PORTB &amp;= ~(1&lt;&lt;SG_C);<br />break;<br /><br />case 2:<br />LED_PORTB &amp;= ~(1&lt;&lt;SG_A | 1&lt;&lt;SG_G);<br />LED_PORTD &amp;= ~(1&lt;&lt;SG_B | 1&lt;&lt;SG_E | 1&lt;&lt;SG_D);<br />break;<br /><br />case 3:<br />LED_PORTB &amp;= ~(1&lt;&lt;SG_A | 1&lt;&lt;SG_G | 1&lt;&lt;SG_C);<br />LED_PORTD &amp;= ~(1&lt;&lt;SG_B| 1&lt;&lt;SG_D);<br />break;<br /><br />case 4:<br />LED_PORTB &amp;= ~(1&lt;&lt;SG_F | 1&lt;&lt;SG_G | 1&lt;&lt;SG_C);<br />LED_PORTD &amp;= ~(1&lt;&lt;SG_B);<br />break;<br /><br />case 5:<br />LED_PORTB &amp;= ~(1&lt;&lt;SG_A | 1&lt;&lt;SG_F | 1&lt;&lt;SG_G | 1&lt;&lt;SG_C);<br />LED_PORTD &amp;= ~(1&lt;&lt;SG_D);<br />break;<br /><br />case 6:<br />LED_PORTB &amp;= ~(1&lt;&lt;SG_A | 1&lt;&lt;SG_F | 1&lt;&lt;SG_C | 1&lt;&lt;SG_G);<br />LED_PORTD &amp;= ~(1&lt;&lt;SG_E | 1&lt;&lt;SG_D);<br />break;<br /><br />case 7:<br />LED_PORTB &amp;= ~(1&lt;&lt;SG_A | 1&lt;&lt;SG_C);<br />LED_PORTD &amp;= ~(1&lt;&lt;SG_B);<br />break;<br /><br />case 8:<br />LED_PORTB &amp;= ~(1&lt;&lt;SG_A | 1&lt;&lt;SG_C | 1&lt;&lt;SG_F | 1&lt;&lt;SG_G);<br />LED_PORTD &amp;= ~(1&lt;&lt;SG_B | 1&lt;&lt;SG_D | 1&lt;&lt;SG_E);<br />break;<br /><br />case 9:<br />LED_PORTB &amp;= ~(1&lt;&lt;SG_A | 1&lt;&lt;SG_F | 1&lt;&lt;SG_G | 1&lt;&lt;SG_C);<br />LED_PORTD &amp;= ~(1&lt;&lt;SG_B | 1&lt;&lt;SG_D);<br />break;<br />}<br />}<br /><br /><br /><br />ISR(TIMER0_OVF_vect)<br />{<br />TCNT0 = 254;<br /><br />static uint8_t cnt=1;<br /><br />if(cnt==1)<br />{<br />LED_ANODA_PORT1 &amp;= ~(1&lt;&lt;ANODA1);<br />LED_ANODA_PORT2 |= (1&lt;&lt;ANODA2 | 1&lt;&lt;ANODA3 | 1&lt;&lt;ANODA4);<br />wyswietl_liczbe(cy1);<br />LED_ANODA_PORT1 |= (1&lt;&lt;ANODA1);<br />}<br />else if(cnt==2)<br />{<br />LED_ANODA_PORT2 &amp;= ~(1&lt;&lt;ANODA2);<br />LED_ANODA_PORT2 |= (1&lt;&lt;ANODA3 | 1&lt;&lt;ANODA4);<br />LED_ANODA_PORT1 |= (1&lt;&lt;ANODA1);<br />wyswietl_liczbe(cy2);<br />LED_ANODA_PORT2 |= (1&lt;&lt;ANODA2);<br />}<br />else if(cnt==3)<br />{<br />LED_ANODA_PORT2 &amp;= ~(1&lt;&lt;ANODA3);<br />LED_ANODA_PORT2 |= (1&lt;&lt;ANODA2 | 1&lt;&lt;ANODA4);<br />LED_ANODA_PORT1 |= (1&lt;&lt;ANODA1);<br />wyswietl_liczbe(cy3);<br />LED_ANODA_PORT2 |= (1&lt;&lt;ANODA3);<br />}<br />else if(cnt==4)<br />{<br />LED_ANODA_PORT2 &amp;= ~(1&lt;&lt;ANODA4);<br />LED_ANODA_PORT2 |= (1&lt;&lt;ANODA2 | 1&lt;&lt;ANODA3);<br />LED_ANODA_PORT1 |= (1&lt;&lt;ANODA1);<br />wyswietl_liczbe(cy4);<br />LED_ANODA_PORT2 |= (1&lt;&lt;ANODA4);<br /><br />}<br /><br />//PORTB ^= (1&lt;&lt;PB0);<br /><br />cnt++;<br /><br />if(cnt&gt;4) cnt=1;<br /><br />}[/syntax]<br /><br /><br />multi.h<br /><br /><br />[syntax=c]/*<br /> * multi.h<br /> *<br /> *  Created on: 27 lis 2016<br /> *      Author: Damian<br /> */<br /><br />#ifndef MULTIPLEKSOWANIE_MULTI_H_<br />#define MULTIPLEKSOWANIE_MULTI_H_<br /><br />extern volatile uint8_t cy1, cy2, cy3, cy4;<br /><br />#define ANODA1 PB5<br />#define ANODA2 PC0<br />#define ANODA3 PC1<br />#define ANODA4 PC2<br />#define PIN_PWM PC3<br /><br />#define LED_ANODA_PORT1 PORTB<br />#define LED_ANODA_DIR1 DDRB<br /><br /><br />#define LED_ANODA_PORT2 PORTC<br />#define LED_ANODA_DIR2 DDRC<br /><br /><br />#define SG_A PB4<br />#define SG_B PD5<br />#define SG_C PB1<br />#define SG_D PD7<br />#define SG_E PD6<br />#define SG_F PB3<br />#define SG_G PB2<br />#define SG_DP PB0<br /><br /><br />#define LED_PORTB PORTB<br />#define LED_DIRB DDRB<br /><br />#define LED_PORTD PORTD<br />#define LED_DIRD DDRD<br /><br /><br /><br />void init_led(void);<br />void wyswietl_liczbe(uint8_t liczba);<br /><br />#endif /* MULTIPLEKSOWANIE_MULTI_H_ */[/syntax]<br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=889">kaka0204</a> — 29 lis 2016, o 19:14</p><hr />
]]></content>
</entry>
</feed>