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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-03-05T13:45:25+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=10924&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2015-03-05T13:45:25+01:00</updated>
<published>2015-03-05T13:45:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122055#p122055</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122055#p122055"/>
<title type="html"><![CDATA[Re: Przerwania z bluebooka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122055#p122055"><![CDATA[
<div class="quotetitle">trolodk napisał(a):</div><div class="quotecontent"><br />Faktycznie, Jezu jakie to był głupi błąd..<br /></div><br /><span style="color: #FF0000">Dlatego po raz pierwszy i ostatni widzę na tym forum tego typu wpis</span><br /><br /><div class="quotetitle">trolodk napisał(a):</div><div class="quotecontent"><br />Zaraz ro*****ę to wszystko.<br /></div><br />proszę żeby kolega sobie to zapamiętał, tym razem ujdzie to na sucho ponieważ jest kolega jak widzę nowym użytkownikiem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 5 mar 2015, o 13:45</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[trolodk]]></name></author>
<updated>2015-03-05T12:10:18+01:00</updated>
<published>2015-03-05T12:10:18+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122042#p122042</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122042#p122042"/>
<title type="html"><![CDATA[Re: Przerwania z bluebooka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122042#p122042"><![CDATA[
Faktycznie, Jezu jakie to był głupi błąd... -.-' a przeglądałem to wczoraj, widocznie o tej godzinie już nie myślałem.<br />Dzięki za pomoc, już wszystko śmiga.<br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8847">trolodk</a> — 5 mar 2015, o 12:10</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[matw]]></name></author>
<updated>2015-03-05T11:50:14+01:00</updated>
<published>2015-03-05T11:50:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122036#p122036</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122036#p122036"/>
<title type="html"><![CDATA[Re: Przerwania z bluebooka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122036#p122036"><![CDATA[
<div class="quotetitle">trolodk napisał(a):</div><div class="quotecontent"><br />Czyli jeśli dobrze rozumiem, to program nawet nie wchodzi w obsługę przerwania.<br /></div>Tak, bo timerek nie tyka <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><br />Masz:[syntax=c]TCCR0A |= (1&lt;&lt;CS02) | (1&lt;&lt;CS00);   // preskaler na 1024[/syntax]<br />A bity CS0...CS02 dotyczące prescalera są w rejestrze?? No jakim?? <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  <br />Rzuć okiem do datasheet od twojego uC, popraw nazwę rejestru, a timerek0 ruszy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2394">matw</a> — 5 mar 2015, o 11:50</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[trolodk]]></name></author>
<updated>2015-03-05T11:28:22+01:00</updated>
<published>2015-03-05T11:28:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122031#p122031</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122031#p122031"/>
<title type="html"><![CDATA[Re: Przerwania z bluebooka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122031#p122031"><![CDATA[
<div class="quotetitle">j23 napisał(a):</div><div class="quotecontent"><br /><strong><span style="color: #008000">Powinno być:</span></strong><br />[syntax=c]ISR(TIMER0_COMPA_vect)<br />{<br /> static uint8_t licznik = 1;<br /> ANODY_PORT = ~licznik;<br />// dalszy kod<br />}[/syntax]<br /></div><br /><br />Faktycznie, powinno być 1. Niestety nic to nie zmieniło. Co do negacji zmiennej licznik to nie w moim przypadku, bo nie użyłem tranzystorów.<br />Poza tym na samym początku w obsłudze przerwania jest zapalenie diody, która się nie zapala. Czyli jeśli dobrze rozumiem, to program nawet nie wchodzi w obsługę przerwania.<br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8847">trolodk</a> — 5 mar 2015, o 11:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[j23]]></name></author>
<updated>2015-03-05T08:33:13+01:00</updated>
<published>2015-03-05T08:33:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122003#p122003</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122003#p122003"/>
<title type="html"><![CDATA[Re: Przerwania z bluebooka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=122003#p122003"><![CDATA[
Tak na szybko to chyba masz błąd w pliku d_led.c<br /><br /><span style="color: #8000FF"><strong>Zamiast:</strong></span><br />[syntax=c]ISR(TIMER0_COMPA_vect)<br />{<br /> static uint8_t licznik = 0;<br /> ANODY_PORT = licznik;<br />// dalszy kod<br />}[/syntax]<br /><br /><strong><span style="color: #008000">Powinno być:</span></strong><br />[syntax=c]ISR(TIMER0_COMPA_vect)<br />{<br /> static uint8_t licznik = 1;<br /> ANODY_PORT = ~licznik;<br />// dalszy kod<br />}[/syntax]<br /><br />Pozdrawiam! j23<br /><br />P.S. Jak możesz to zaznacz ten kod jeszcze raz (edytuj) i wybierz z listing kodu: SYNTAX wybierz -&gt; język C, co by Kolegi Jaglarz'a z rana nie wnerwiać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4504">j23</a> — 5 mar 2015, o 08:33</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[trolodk]]></name></author>
<updated>2015-03-05T11:25:48+01:00</updated>
<published>2015-03-05T04:18:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=121996#p121996</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=121996#p121996"/>
<title type="html"><![CDATA[Przerwania z bluebooka]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10924&amp;p=121996#p121996"><![CDATA[
Witam,<br /><br />Mam problem z przykładem z książki z przerwaniami. Chodzi o multipleksowanie LED. <br />Napisałem program po swojemu - nie działa. Grzebałem ile się da - i nic. W końcu przepisałem prawie żywcem program z książki i dalej nic.<br />Zaraz roz***lę to wszystko.<br /><br />Używam Atmega328p, plusy mam podpięte pod rejestr C, a katody pod rejestr D.<br />Kod programu d_led.c:<br />[syntax=c]#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br /><br />#include &quot;d_led.h&quot;<br /><br />//zmienne ulotne czyli jakie będziemy wyswietlać cyfry (deklaracja)<br />volatile uint8_t cy1;<br />volatile uint8_t cy2;<br />volatile uint8_t cy3;<br />volatile uint8_t cy4;<br /><br /><br /><br />void d_led_init(void){<br /><br />//ustawianie kierunków wyjsć i portów<br />LED_DATA_DIR = 0xFF;<br />LED_DATA = 0xFF;<br />ANODY_DIR |= CA1 | CA2 | CA3 | CA4;<br />ANODY_PORT |= CA1 | CA2 | CA3 | CA4;<br /><br />//ustawiamy timer:<br />TCCR0A |= (1&lt;&lt;WGM01);                  // wgm01 by ustawic ctc dla timera tccr0a<br />TCCR0A |= (1&lt;&lt;CS02) | (1&lt;&lt;CS00);   // preskaler na 1024<br />OCR0A = 38;                                   // ustawianie MAX, czyli kiedy sie przepelni<br />TIMSK0 |= (1&lt;&lt;OCIE0A);                  // zezwolenie na przerwanie dla timera 0A<br /><br /><br />}<br />ISR(TIMER0_COMPA_vect){<br />PORTB |= (1&lt;&lt;PB0);<br />static uint8_t licznik = 0;<br />ANODY_PORT = licznik;<br /><br />if(licznik == 1) LED_DATA = LICZ1;<br /><br />else if(licznik == 2) LED_DATA = LICZ4;<br /><br />else if(licznik == 3) LED_DATA = LICZ9;<br /><br />else if(licznik == 4) LED_DATA = LICZ5;<br /><br />licznik &lt;&lt;= 1;<br />if(licznik&gt;8) licznik = 1;<br /><br /><br />}[/syntax]<br />Plik d_led.h:<br />[syntax=c]#ifndef D_LED_H_<br />#define D_LED_H_<br /><br />#define LED_DATA PORTD<br />#define LED_DATA_DIR DDRD<br />#define ANODY_PORT PORTC<br />#define ANODY_DIR DDRC<br /><br />#define LICZ0 PORTD &amp;= ~((1&lt;&lt;PD0) | (1&lt;&lt;PD1) | (1&lt;&lt;PD2) | (1&lt;&lt;PD3) | (1&lt;&lt;PD4) | (1&lt;&lt;PD5))<br />#define LICZ1 PORTD &amp;= ~((1&lt;&lt;PD1) | (1&lt;&lt;PD2))<br />#define LICZ2 PORTD &amp;= ~((1&lt;&lt;PD0) | (1&lt;&lt;PD1) | (1&lt;&lt;PD3) | (1&lt;&lt;PD4) | (1&lt;&lt;PD6))<br />#define LICZ3 PORTD &amp;= ~((1&lt;&lt;PD0) | (1&lt;&lt;PD1) | (1&lt;&lt;PD2) | (1&lt;&lt;PD3) | (1&lt;&lt;PD6))<br />#define LICZ4 PORTD &amp;= ~((1&lt;&lt;PD1) | (1&lt;&lt;PD2) | (1&lt;&lt;PD5) | (1&lt;&lt;PD6))<br />#define LICZ5 PORTD &amp;= ~((1&lt;&lt;PD0) | (1&lt;&lt;PD2) | (1&lt;&lt;PD3) | (1&lt;&lt;PD5) | (1&lt;&lt;PD6))<br />#define LICZ6 PORTD &amp;= ~((1&lt;&lt;PD0) | (1&lt;&lt;PD2) | (1&lt;&lt;PD3) | (1&lt;&lt;PD4) | (1&lt;&lt;PD5) | (1&lt;&lt;PD6))<br />#define LICZ7 PORTD &amp;= ~((1&lt;&lt;PD0) | (1&lt;&lt;PD1) | (1&lt;&lt;PD2))<br />#define LICZ8 PORTD &amp;= ~((1&lt;&lt;PD0) | (1&lt;&lt;PD1) | (1&lt;&lt;PD2) | (1&lt;&lt;PD3) | (1&lt;&lt;PD4) | (1&lt;&lt;PD5) | (1&lt;&lt;PD6))<br />#define LICZ9 PORTD &amp;= ~((1&lt;&lt;PD0) | (1&lt;&lt;PD1) | (1&lt;&lt;PD2) | (1&lt;&lt;PD3) | (1&lt;&lt;PD5) | (1&lt;&lt;PD6))<br /><br />#define CA1 (1&lt;&lt;PC0)<br />#define CA2 (1&lt;&lt;PC1)<br />#define CA3 (1&lt;&lt;PC2)<br />#define CA4 (1&lt;&lt;PC3)<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 /><br /><br />void d_led_init(void);<br /><br />#endif /* D_LED_H_ */[/syntax]<br /><br />Jak widać poza samym ustawianiem bitów dla poszczególnej liczby nic się ten kod nie różni od tego z książki. (No, poza procesorem).<br />Siedzę nad tym głupim przerwaniem już całą noc.<br />Na samym początku obsługi przerwania wystawiam stan wysoki na PB0 - tam podpiąłem diodę i chciałem sprawdzić, czy program w ogóle wchodzi do obsługi przerwania. No i nie wchodzi.<br /><br />Proszę o pomoc. Dlaczego to nie działa?<br /><br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=8847">trolodk</a> — 5 mar 2015, o 04:18</p><hr />
]]></content>
</entry>
</feed>