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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-01-05T23:26:30+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=10062&amp;mode</id>
<entry>
<author><name><![CDATA[wolek14]]></name></author>
<updated>2015-01-05T23:26:30+01:00</updated>
<published>2015-01-05T23:26:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112635#p112635</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112635#p112635"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112635#p112635"><![CDATA[
<strong>mokrowski</strong>, dziękuję bardzo <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Spróbuję z tym powalczyć na tyle, na ile pozwoli mi dotychczasowa wiedza.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7487">wolek14</a> — 5 sty 2015, o 23:26</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wolek14]]></name></author>
<updated>2015-01-05T22:42:20+01:00</updated>
<published>2015-01-05T22:42:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112622#p112622</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112622#p112622"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112622#p112622"><![CDATA[
Żeby nie było, żem ciapa totalna, wrzucam pełen kod, który działa poprawnie <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Przy okazji starałem się nie wykorzystywać gotowców, tylko wymyśliłem swoje rozwiązanie problemu konwersji na BCD <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 29-12-2014<br /> *      Author: wolek<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 />uint8_t liczba&#91;10&#93;={0x3F,0x06,0x5B,0x4F,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// tablica znaków do wywietlacza LED<br />volatile static uint8_t i;//zmienna globalna - licznik którego wartosć okresla wypelnienie PWM<br />volatile static uint8_t t;//licznik wskazujący ktory wyswietlacz ma sie zaswiecic<br />void wyswietl(uint8_t numer){//wyswietla numer z tablicy<br />PORTD=~(liczba&#91;numer&#93;);<br />}<br /><br />uint8_t jednosci(uint8_t wartosc){//wyciaga cyfre jednosci z liczby mu podanej<br />uint8_t wynik;<br />wynik=(wartosc%10);<br />return wynik;<br />}<br /><br />uint8_t dziesiatki(uint8_t wartosc){//wyciąga liczbe dziesiątek<br />uint8_t wynik;<br />wynik=(wartosc/10);<br />wynik=(wynik%10);<br />return wynik;<br />}<br /><br />uint8_t setki(uint8_t wartosc){//wyciąga liczbę setek<br />uint8_t wynik;<br />wynik=(wartosc/100);<br />return wynik;<br />}<br />int main(void){<br /><br />/*konfiguracja liczników jako PWM*/<br />DDRB|=(1&lt;&lt;PB2)|(1&lt;&lt;PB1);//OC1A i OC1B jako wyjścia<br />TCCR1A|=(1&lt;&lt;COM1A1)|(1&lt;&lt;COM1B1);//tryb non-inverting<br />TCCR1A|=(1&lt;&lt;WGM10);//tryb Fast PWM<br />TCCR1B|=(1&lt;&lt;WGM12);<br />TCCR1B|=(1&lt;&lt;CS10);//bez preskalera<br />/*konfiguracja licznika generujacego przerwanie*/<br />TCCR0|=(1&lt;&lt;CS01)|(1&lt;&lt;CS00);//prescaler 64<br />TIMSK|=(1&lt;&lt;TOIE0);//włączenie przerwania timera<br />/*konfiguracja portów wyjsciowych*/<br />DDRD|=0xff;<br />PORTD|=0xff;<br />DDRC|=0xff;<br />PORTC|=0xff;<br /><br /><br /><br />sei();<br />/*pętla zmieniająca wartoć wypełnienia PWM od min do max i od max do min*/<br />while(1){<br />for(i=0; i&lt;255; i++,_delay_ms(100)){<br />OCR1A=i;<br />OCR1B=i;<br />}<br />for(i=255; i; i--,_delay_ms(100)){<br />OCR1A=i;<br />OCR1B=i;<br />}<br />}<br />}<br />ISR(TIMER0_OVF_vect){<br />uint8_t k;<br />t++;<br />PORTC=0xff;// wygaszam wsyweietlacze i zeruje port D<br />PORTD=0xff;<br />if(t==1){<br />PORTC&amp;=~(1&lt;&lt;PC0);//wł. wyswietlacza<br />k=jednosci(i);//funkcja mająca dac w wyniku cyfre jednosci<br />wyswietl(k);//wyswietlenie cyfry jednosci<br />}<br />if(t==2){<br />PORTC&amp;=~(1&lt;&lt;PC1);//wł wyswietlacza<br />k=dziesiatki(i);//daje w wyniky cyfre dziesiatek licznika PWM<br />wyswietl(k);//wyswietla wynik<br />}<br />if(t==3){<br />PORTC&amp;=~(1&lt;&lt;PC2);//wl wyswietlacza<br />k=setki(i);//daje w wyniku liczbe setek licznika PWM<br />wyswietl(k);//i wyswietla :)<br />}<br />if(t&gt;3){<br />t=0;//zeruje licznik wyswietlaczy<br />}<br />}[/syntax]<br />Ewentualne sugestie mile widziane <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=7487">wolek14</a> — 5 sty 2015, o 22:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2015-01-05T22:23:25+01:00</updated>
<published>2015-01-05T22:23:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112608#p112608</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112608#p112608"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112608#p112608"><![CDATA[
Nie za maco.<br />Teraz masz całą liczbę rozbitą na drobne <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=1044">Zaba</a> — 5 sty 2015, o 22:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojtek1000]]></name></author>
<updated>2015-01-05T22:19:33+01:00</updated>
<published>2015-01-05T22:19:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112606#p112606</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112606#p112606"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112606#p112606"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />wojtek1000 jak z dzielenia przez 10 mogę dostać resztę 14?<br /></div><br />Przepraszam, szybciej napisałem niż pomyślałem, jeszcze raz przepraszam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=708">wojtek1000</a> — 5 sty 2015, o 22:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wolek14]]></name></author>
<updated>2015-01-05T22:11:40+01:00</updated>
<published>2015-01-05T22:11:40+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112603#p112603</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112603#p112603"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112603#p112603"><![CDATA[
<strong>mknight9090</strong>, dziękuję bardzo, pomogło <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br /><strong>wojtek1000</strong> jak z dzielenia przez 10 mogę dostać resztę 14?<br /><br /><strong>Zaba</strong>, dzięki wielkie, właśnie zacznę walczyć z dalszymi działaniami na liczbie, na pewno się przyda <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=7487">wolek14</a> — 5 sty 2015, o 22:11</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Zaba]]></name></author>
<updated>2015-01-05T22:05:19+01:00</updated>
<published>2015-01-05T22:05:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112600#p112600</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112600#p112600"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112600#p112600"><![CDATA[
Spróbuj tak<br />[syntax=c]uit8_t liczba=204;<br />uint8_ setki,dziesiatki,jednosci;<br /><br />setki=liczba / 100; //dzielenie całkowite<br />liczba= liczb %100; // reszta z dzielenia<br />dziesiatki = liczba / 10; //dzielenie całkowite<br />jednosc = liczba % 10; // reszta z dzielenia[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1044">Zaba</a> — 5 sty 2015, o 22:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wojtek1000]]></name></author>
<updated>2015-01-05T22:04:08+01:00</updated>
<published>2015-01-05T22:04:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112599#p112599</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112599#p112599"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112599#p112599"><![CDATA[
<div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />Ja potrzebuję z tego 4. I co robię? Wykonuję działanie 'modulo' 10, i otrzymuję w wyniku liczbę 4.<br /></div><br />Z 204 dostaniesz 4 po zrobieniu modulo 10, ale jak będziesz miał 214 to dostaniesz 14. Powinieneś zrobić modulo 100.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=708">wojtek1000</a> — 5 sty 2015, o 22:04</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mknight9090]]></name></author>
<updated>2015-01-05T21:54:44+01:00</updated>
<published>2015-01-05T21:54:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112593#p112593</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112593#p112593"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112593#p112593"><![CDATA[
Spróbuj dodać volatile przy zmiennych używanych zarówno w funkcji main i w przerwaniu (np. w Twoim kodzie zmienna &quot;i&quot;).<br />Jeśli nie wiesz o co z tym chodzi to tutaj masz opisane: <a href="http://mirekk36.blogspot.com/2011/08/test.html"  class="postlink">http://mirekk36.blogspot.com/2011/08/test.html</a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1566">mknight9090</a> — 5 sty 2015, o 21:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2015-01-05T21:54:04+01:00</updated>
<published>2015-01-05T21:54:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112592#p112592</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112592#p112592"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112592#p112592"><![CDATA[
@wolek14, faktycznie źle przeczytałem zdanie dotyczące BB. Ja zrozumiałem że go posiadasz i do tego się odnosiłem, przepraszam za zamieszanie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2394">matw</a> — 5 sty 2015, o 21:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wolek14]]></name></author>
<updated>2015-01-05T21:51:10+01:00</updated>
<published>2015-01-05T21:51:10+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112588#p112588</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112588#p112588"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112588#p112588"><![CDATA[
Kolego <strong>matw</strong>, mam dziwne wrażenie że właśnie moje posty czytasz wyrywkowo. <br /><br />1. Nie posiadam bluebooka, więc nie mam fizycznej możliwości przeczytania z niej czegokolwiek. Pisałem to w 1 i 2 poście <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br /><br />2. Potrafię zrobić multipleksowanie wyświetlaczy. Wiem na czym polega. W pokazanym tutaj kodzie multipleksowanie nie jest potrzebne, gdyż na razie wykorzystuję <strong>jeden wyświetlacz</strong>. <br /><br />3. <div class="quotetitle">matw napisał(a):</div><div class="quotecontent"><br />Zobacz jak masz 204 i potrzebujesz z tego 2, to co robisz?<br /></div><br />Ja potrzebuję z tego 4. I co robię? Wykonuję działanie 'modulo' 10, i otrzymuję w wyniku liczbę 4. To gdzie jest problem? Przeczytaj jeszcze raz pierwszy post.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7487">wolek14</a> — 5 sty 2015, o 21:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2015-01-05T21:42:21+01:00</updated>
<published>2015-01-05T21:42:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112581#p112581</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112581#p112581"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112581#p112581"><![CDATA[
<div class="quotetitle">wolek14 napisał(a):</div><div class="quotecontent"><br />Z tym, że ja nawet nie doszedłem w pisaniu kodu do multipleksowania<br /></div>No i to jest podstawowy problem. Musisz to nadrobić. Poza tym autor zaleca czytanie książki po kolei tak jak ponumerowano strony, a nie skakanie po działach które nas interesują, bo później są własnie takie fajerwerki.<br /><div class="quotetitle">wolek14 napisał(a):</div><div class="quotecontent"><br />Na razie nie mogę wyświetlić na jednym wyświetlaczu cyfry jedności ze zmiennej &quot;i&quot;.<br /></div>No to jest ładnie opisane we skazanym dziale. Zobacz jak masz 204 i potrzebujesz z tego 2, to co robisz? Dzielisz przez 100 bez reszty i masz 2, i tak robisz z każdą grupą setki, dziesiątki, jedności.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2394">matw</a> — 5 sty 2015, o 21:42</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wolek14]]></name></author>
<updated>2015-01-05T21:34:43+01:00</updated>
<published>2015-01-05T21:34:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112579#p112579</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112579#p112579"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112579#p112579"><![CDATA[
Z tym, że ja nawet nie doszedłem w pisaniu kodu do multipleksowania <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Udało mi się parę tyg. temu zrobić pełnowymiarowe multipleksowanie, i nie z tym mam problem. Jak opanuję wyświetlanie pierwszej cyfry, będę robił wyświetlanie drugiej (dziesiątek) itd. Na razie nie mogę wyświetlić na jednym wyświetlaczu cyfry jedności ze zmiennej &quot;i&quot;.<br /><br />A w bb przeczytam wszystko dokładnie, jak tylko do mnie dotrze <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> Obiecuję <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=7487">wolek14</a> — 5 sty 2015, o 21:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2015-01-05T21:28:04+01:00</updated>
<published>2015-01-05T21:28:04+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112575#p112575</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112575#p112575"/>
<title type="html"><![CDATA[Re: Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na ]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112575#p112575"><![CDATA[
Przeczytaj dokładnie dział w BB dotyczący multipleksowania wyświetlaczy LED.<br />Dodam że twoją wartość np 204 musisz podzielić na 3 kawałki 2 0 4 i każdy z nich wyświetlić na innym wyświetlaczu, innej drogi nie ma <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=2394">matw</a> — 5 sty 2015, o 21:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[wolek14]]></name></author>
<updated>2015-01-05T21:08:39+01:00</updated>
<published>2015-01-05T21:08:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112568#p112568</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112568#p112568"/>
<title type="html"><![CDATA[Walka z językiem C, cz.1. Błąd w wyświetlaniu wyniku na LED.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10062&amp;p=112568#p112568"><![CDATA[
Witam brać forumową <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />O ile do tej pory, po mniejszym lub większym rwaniu włochów z głowy, jakoś znajdywałem przyczynę problemu niedziałania moich programów, o tyle ta passa zostaje dzisiaj przerwana. Do momentu dostania do ręki bluebooka posiłkuję się dość nieuporządkowaną wiedzą na temat składni w języku C, i pewnie tam będzie leżeć przyczyna mojego problemu. Jednakże proszę o wskazanie właściwej drogi w dalszym toku nauki. <br /><br />Projekt zakłada uruchomienie układu PWM sterującego prędkością wentylatora 12V, oraz wyświetlenia jego wartości na wyświetlaczy 7-segmentowym LED(od 0 do 255). Jako mózg w moim urządzeniu pracuje Atmega8 (wszystko chodzi na zestawie uruchomieniowym ZL2AVR <a href="http://dl.btc.pl/kamami_wa/zl2avr.pdf"  class="postlink">PDF</a>). Jako PWM został zaprzęgnięty TC1, w podanym niżej programie został skonfigurowany jako 2 niezależnie 8-bitowe PWM-y. TC0 pracuje jako generator przerwań. Wyświetlacze są podpięte do portu D, a ich anody do portu C. <br />[syntax=c]/*<br /> * main.c<br /> *<br /> *  Created on: 29-12-2014<br /> *      Author: wolek<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 />uint8_t liczba&#91;10&#93;={0x3F,0x06,0x5B,0x4F,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// tablica znaków do wywietlacza LED<br />static uint8_t i;//zmienna globalna - licznik którego wartosć okresla wypelnienie PWM<br /><br />void wyswietl(uint8_t numer){//wyswietla numer z tablicy<br />PORTD=~(liczba&#91;numer&#93;);<br />}<br /><br />uint8_t jednosci(uint8_t wartosc){//wyciaga cyfre jednosci z liczby mu podanej<br />uint8_t wynik;<br />wynik=(wartosc%10);<br />return wynik;<br />}<br />int main(void){<br /><br />/*konfiguracja liczników jako PWM*/<br />DDRB|=(1&lt;&lt;PB2)|(1&lt;&lt;PB1);//OC1A i OC1B jako wyjścia<br />TCCR1A|=(1&lt;&lt;COM1A1)|(1&lt;&lt;COM1B1);//tryb non-inverting<br />TCCR1A|=(1&lt;&lt;WGM10);//tryb Fast PWM<br />TCCR1B|=(1&lt;&lt;WGM12);<br />TCCR1B|=(1&lt;&lt;CS10);//bez preskalera<br />/*konfiguracja licznika generujacego przerwanie*/<br />TCCR0|=(1&lt;&lt;CS02);//prescaler 256<br />TIMSK|=(1&lt;&lt;TOIE0);//włączenie przerwania timera<br />/*konfiguracja portów wyjsciowych*/<br />DDRD|=0xff;<br />PORTD|=0xff;<br />DDRC|=0xff;<br />PORTC|=0xff;<br /><br /><br /><br />sei();<br />/*pętla zmieniająca wartoć wypełnienia PWM od min do max i od max do min*/<br />while(1){<br />for(i=0; i&lt;255; i++,_delay_ms(100)){<br />OCR1A=i;<br />OCR1B=i;<br />}<br />for(i=255; i; i--,_delay_ms(100)){<br />OCR1A=i;<br />OCR1B=i;<br />}<br />}<br />}<br />ISR(TIMER0_OVF_vect){<br />uint8_t k,t;<br />PORTC&amp;=~(1&lt;&lt;PC0);//wł. wyswietlacza<br />t=i;//przepisanie wartosci licznika PWM do zmiennej pomocniczej <br />k=jednosci(t);//funkcja mająca dac w wyniku cyfre jednosci<br />wyswietl(k);//wyswietlenie cyfry jednosci<br />}[/syntax]<br />Problem pojawił się na jednym z pierwszych etapów uruchamiania. PWM ruszył poprawnie - wiatraczek powoli rozpędza się i zwalnia. Jest to zależne od wartości zmiennej &quot;i&quot;. Następnie sprawdziłem poprawność działania funkcji wyświetlenia, oraz wyciągania cyfry jedności ze zmiennej. Do tej pory wszystko szło gładko. W momencie, gdy próbowałem wyświetlić cyfrę jedności zmiennej &quot;i&quot;, na wyświetlaczu dostaję okrągłego nulla. Jednak gdy zamiast polecenia:<br />[syntax=c]t=i;[/syntax]<br />wpiszę cokolwiek ręcznie, np.:<br />[syntax=c]t=204;[/syntax]<br />na wyświetlaczu dostaję cyfrę 4.<br /><br />Pytanie:<br />Co robię źle? <br /><br />Zaznaczam, że nie chcę ryby, tylko wędkę <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> W dostępnych publikacjach nie znalazłem niczego, co byłoby dla mnie pomocne, albo po prostu nie wiem czego szukać. <br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=7487">wolek14</a> — 5 sty 2015, o 21:08</p><hr />
]]></content>
</entry>
</feed>