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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-03-26T18:17:14+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=58&amp;t=17987&amp;mode</id>
<entry>
<author><name><![CDATA[Manekj]]></name></author>
<updated>2017-03-26T18:17:14+01:00</updated>
<published>2017-03-26T18:17:14+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185683#p185683</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185683#p185683"/>
<title type="html"><![CDATA[Re: Pierwszy program, pierwszy problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185683#p185683"><![CDATA[
Ok dzięki za podpowiedzi na razie ćwiczę.<br /><br />CH_plus i CH_minus (CH+, CH-) odnosi się do podpisu na mojej klawiaturze. Klawiatura od TV<br /><br />Nie wiem dlaczego nie mogę zastosować w kodzie:<br /><br /><br />[syntax=c]#define CH_+_PIN (1&lt;&lt;PD6) // definicja pinu klawisza 3  wyjście 5[/syntax]<br /><br />bo wyrzuca błędy dlatego &quot;+&quot; zmieniłem na &quot;plus&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16570">Manekj</a> — 26 mar 2017, o 18:17</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[brat_kamyka]]></name></author>
<updated>2017-03-26T17:47:56+01:00</updated>
<published>2017-03-26T17:47:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185679#p185679</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185679#p185679"/>
<title type="html"><![CDATA[Re: Pierwszy program, pierwszy problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185679#p185679"><![CDATA[
lepiej <br />[syntax=c]if( klawisz_wcisniety( power_PIN ) ) <br />     {<br />     LED1_ON;<br />     LED2_ON;<br />     LED3_ON;<br />     LED4_ON;<br />     }[/syntax]<br /><br />jedno sprawdzenie czy power_PIN naciśnięty w a wykonają się 4 instrukcje sterujące  LED-y;<br />dalej podobnie proponuje stosować więcej komentarzy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=6029">brat_kamyka</a> — 26 mar 2017, o 17:47</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[kicajek]]></name></author>
<updated>2017-03-26T17:27:47+01:00</updated>
<published>2017-03-26T17:27:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185678#p185678</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185678#p185678"/>
<title type="html"><![CDATA[Re: Pierwszy program, pierwszy problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185678#p185678"><![CDATA[
Witam<br /><div class="quotetitle">Manekj napisał(a):</div><div class="quotecontent"><br />Po naciśnięciu przycisku &quot;power&quot; chciałem zapalić wszystkie diody lecz nic się nie dzieje...<br /></div><br />Dzieje się dzieje, tylko masz bajzel w #define i różnie podchodzisz do zapalania/gaszenia LED'ów.<br />Po zainicjowaniu świecenia SW1 nic więcej nie zrobi bo ma zaświecić i tyle; S1_PIN też zmienia stan diody, tylko trzeba uchwycić.<br />Ch_plus i Ch_minus działają liniowo i to też jest prawidłowe cokolwiek to znaczy.<br />Myślę, że jakbyś opisał w #define po swojemu, ale jednoznacznie to wyłapałbyś błędy.<br />...no i oczywiście to są tylko testy, bo żyło toto nie będzie  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Pozdr.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=826">kicajek</a> — 26 mar 2017, o 17:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[brat_kamyka]]></name></author>
<updated>2017-03-26T14:28:21+01:00</updated>
<published>2017-03-26T14:28:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185657#p185657</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185657#p185657"/>
<title type="html"><![CDATA[Re: Pierwszy program, pierwszy problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185657#p185657"><![CDATA[
Proszę popraw post do kodów używamy znaczników  syntax /syntax<br />łatwiej się będzie czytało <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=6029">brat_kamyka</a> — 26 mar 2017, o 14:28</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Manekj]]></name></author>
<updated>2017-03-26T15:08:16+01:00</updated>
<published>2017-03-26T14:25:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185655#p185655</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185655#p185655"/>
<title type="html"><![CDATA[Pierwszy program, pierwszy problem]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17987&amp;p=185655#p185655"><![CDATA[
Witam<br /><br />Jestem nowy na forum i nowym użytkownikiem niebieskiej książki + programatora w wersji 4.1,<br />do testów mam procesor ATmega 328 taktowany 16MHz rezonatorem korzystam oczywiście z ECLIPSE MARS zawartego na pendrivie (apropo jak zrobić partycję na innym pendrive <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />??).  <br />Książka bardzo fajnie opowiada, o podstawach programowania i jako pierwsza, która nie zanudza czytelnika historią jak co i dlaczego.<br /><br />Po przeczytaniu wstępu i dobiciu do działu warsztat postanowiłem, że pierwszym wyzwaniem będzie opanowanie &quot;klawiszologi&quot; czyli załączania i wyłączania diod w różniej konfiguracji w różnych kombinacjach i na różnych portach.<br />Moje próby na razie przeprowadzam na modyfikacji programów zawartych w książce.<br />Zmodyfikowany program wygląda tak:<br /><br />[syntax=c]<br /><br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />//***definicja dla portu B***<br />#define LED_PIN (1&lt;&lt;PB5)          // definicja pinu, diody  PB5 dioda wbudowana<br />#define LED_ON PORTB &amp;= ~LED_PIN // makrodefinicja- włącz diodę led<br />#define LED_OFF PORTB |= LED_PIN // makrodefinicja- wyłącz diodę led<br />#define LED_TOG PORTB ^= LED_PIN // makrodefinicja zmiany stanu diody led<br /><br />//***Definicja dla portu D***<br />#define LED1_PIN (1&lt;&lt;PD2) // definicja pinu, diody  PD2 dioda  wyjście 2<br />#define LED1_ON PORTD &amp;= ~LED1_PIN // makrodefinicja- włącz diodę led<br />#define LED1_OFF PORTD |= LED1_PIN // makrodefinicja- wyłącz diodę led<br /><br />//***definicja dla portu C***<br />#define LED2_PIN (1&lt;&lt;PC0) // definicja pinu, diody  wyjście A0 (PC0)<br />#define LED3_PIN (1&lt;&lt;PC1) // definicja pinu diody  wyjście A1 (PC1)<br />#define LED2_ON PORTC &amp;= ~LED2_PIN // makrodefinicja- włącz diodę led<br />#define LED2_OFF PORTC |= LED2_PIN // makrodefinicja- wyłącz diodę led<br />#define LED3_ON PORTC &amp;= ~LED3_PIN // makrodefinicja- wyłączenie diody led<br />#define LED3_OFF PORTC |= LED3_PIN // makrodefinicja_ wyłączenie diody led<br /><br />//klawisze<br />#define power_PIN (1&lt;&lt;PD3) // definicja pinu klawisza 1  wyjście 3<br />#define S1_PIN (1&lt;&lt;PD4) // definicja pinu klawisza 1  wyjście 4<br />#define menu_PIN (1&lt;&lt;PD5) // definicja pinu klawisza 2 wyjście 7<br />#define CH_plus_PIN (1&lt;&lt;PD6) // definicja pinu klawisza 3  wyjście 5<br />#define CH_minus_PIN (1&lt;&lt;PD7) // definicja pinu klawisza 4  wyjście 6<br /><br />uint8_t klawisz_wcisniety(uint8_t klawisz); //deklaracja funkcji<br /><br />int main(void)<br />{<br />//****inicjalizacja****<br />DDRB |= LED_PIN;    // kierunek pinu PB5 - wyjście<br />PORTB &amp;= ~LED_PIN;   //wyłączenie diody led<br />DDRD |= LED1_PIN;   // kierunek pinu PD2 - wyjście<br />PORTD &amp;= ~LED1_PIN;  // wyłączenie diody led<br />DDRC |= LED2_PIN;   // kierunek pinu PC0 - wyjście<br />PORTC &amp;= ~LED2_PIN;  // załączenie diody<br />DDRC |= LED3_PIN;   // kierunek pinu PD2 - wyjście<br />PORTC &amp;= ~LED3_PIN;  // wyłączenie diody led<br /><br /><br />    // piny klawiszy - wejścia<br />    DDRD &amp;= ~(power_PIN | menu_PIN | CH_plus_PIN | CH_minus_PIN | S1_PIN);<br />    PORTD |= power_PIN | menu_PIN | CH_plus_PIN | CH_minus_PIN | S1_PIN;<br /><br /><br />   while(1)<br />   {<br />   if( klawisz_wcisniety( power_PIN ) ) LED_ON;<br />   if( klawisz_wcisniety( power_PIN ) ) LED1_ON;<br />   if( klawisz_wcisniety( power_PIN ) ) LED2_ON;<br />   if( klawisz_wcisniety( power_PIN ) ) LED3_ON;<br />   if( klawisz_wcisniety( S1_PIN ) ) LED_TOG;<br />   if( klawisz_wcisniety( CH_plus_PIN ) ) LED1_ON;<br />   if( klawisz_wcisniety( CH_minus_PIN  ) ) LED1_OFF;<br />   if( klawisz_wcisniety( CH_plus_PIN ) ) LED2_ON;<br />   if( klawisz_wcisniety( CH_minus_PIN ) ) LED2_OFF;<br /><br /><br />   }<br />}<br /><br />   //definicja funkcji<br />   //funkcja ma argument, zwraca 1 lub 0<br />   uint8_t klawisz_wcisniety(uint8_t klawisz)<br />   {<br />   if( ! ( PIND &amp; klawisz) ) //klawisz wciśnięty?<br />   {<br />   _delay_ms(100); //drganie styków<br />   //wciśnięty? zakończ - rezultat = 1<br />   if( ! ( PIND &amp; klawisz) ) return 1;<br />   }<br />   return 0;<br />  }<br /><br />[/syntax]<br /><br /><br />Małymi krokami dopisywałem kolejne diody i puki nie przypisałem diod do portu C to program działał <br /><br />Teraz nie działa do końca jak chcę:<br /><br />Po naciśnięciu przycisku &quot;power&quot; chciałem zapalić wszystkie diody lecz nic się nie dzieje<br />Po naciśnięciu &quot;power&quot; chciałem aby jedna dioda świeciła cały czas niezależnie od pozostałych na porcie PC1<br />Po naciśnięciu &quot;S1&quot; chciałem zmieniać stan diody na porcie PB5 działa<br />Po naciśnięciu &quot;CH_minus&quot; chciałem wyłączyć diody na porcie PD2 i PC0<br />Po naciśnięciu &quot;CH_plus&quot; chciałem włączyć diody na porcie PD2 i PC0<br /><br />A działa tak:<br />&quot;power&quot; nic się nie dzieje<br />&quot;S1&quot; zmienia stan świecenia diody na porcie PB5<br />&quot;CH_minus&quot; zapala diodę  od prawej do lewej tzw... z opóźnieniem<br />&quot;CH_plus&quot;  gasi diody od prawej do lewej tzw... z opóźnieniem<br /><br />Siedzę już chwilę z tym problemem, ale nie widzę rozwiązania?<br />A i dlaczego załączają się diody z opóźnieniem lub jeśli przycisnę krótko to załączają się od prawej do lewej tzw... PD2 potem PC0??<br /><br /><br />Poprawiłem.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=16570">Manekj</a> — 26 mar 2017, o 14:25</p><hr />
]]></content>
</entry>
</feed>