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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-07-09T15:23:07+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=3488&amp;mode</id>
<entry>
<author><name><![CDATA[MrWeb123]]></name></author>
<updated>2013-07-09T15:23:07+01:00</updated>
<published>2013-07-09T15:23:07+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3488&amp;p=41228#p41228</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3488&amp;p=41228#p41228"/>
<title type="html"><![CDATA[Re: Błąd w funkcji switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3488&amp;p=41228#p41228"><![CDATA[
Faktycznie... Rzut okiem do przykładów z książki i jestem załamany jak mogłem trzasnąć takiego babola... ale po kompilacji nie było błędów<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1480">MrWeb123</a> — 9 lip 2013, o 15:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[arturf209]]></name></author>
<updated>2013-07-09T13:40:05+01:00</updated>
<published>2013-07-09T13:40:05+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3488&amp;p=41226#p41226</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3488&amp;p=41226#p41226"/>
<title type="html"><![CDATA[Re: Błąd w funkcji switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3488&amp;p=41226#p41226"><![CDATA[
najpierw poczytaj jak sprawdzić czy klawisz jest wciśnięty <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> bo na pewno nie tak jak Ty próbujesz.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=801">arturf209</a> — 9 lip 2013, o 13:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[MrWeb123]]></name></author>
<updated>2013-07-09T13:25:41+01:00</updated>
<published>2013-07-09T13:25:41+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=3488&amp;p=41225#p41225</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=3488&amp;p=41225#p41225"/>
<title type="html"><![CDATA[Błąd w funkcji switch]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=3488&amp;p=41225#p41225"><![CDATA[
Witam. Jest to mój pierwszy program w C jak i post na tym forum więc witam wszystkich serdecznie  <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" />  Proszę się nie sugerować myślnikami opisującymi zawartość kodu na samej górze bo to są jedynie marzenia <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> może w przyszłości gdy bardziej opanuję programowanie zabiorę się za tamte cele. Wracając, program ma jedynie się włączyć i czekać na reakcje klawiszy KEY_1 i KEY_2. Jeśli KEY_1 będzie wciśnięty przez 2s to program przechodzi w tryb sterowania diodami led (KEY_2 to jeszcze nie wpisany tryb obsługi diody led RGB). KEY_1 zapala LED_1 itd. Lecz nawet na tak prostym etapie występuje błąd...<br />Dodam tylko że jeśli za miast funkcji switch sterowałem diodami przez polecenia if() i wszystko pięknie działało, lecz po prostu z ciekawości chciałbym wiedzieć co robię źle w funkcji switch. Z góry dziękuję za odpowiedź.<br /><br />Błąd to &quot;lvalue required as left operand of assignment&quot;<br /><br />Poniżej kod:<br />[syntax=c]/////////////////////////////////////////////    program zawiera :<br />       ///                                       ///   - sterowanie 5 diodami led<br />      ///    Pierwszy Program w C               ///    - obsługa wyświetlacza 4x16 ( hd44780 )<br />     ///                                       ///     - 8 klawiszy typu microswitch<br />    ///           By Mr.Web123                ///      - Sterowanie silnikami DC przez PWM<br />   ///                                       ///       - komunikacja RS232<br />  ///                                       ///        - odczytywanie aktualnego napięcia ADC<br /> ///                                       ///         - raport błędów preprocesora<br />/////////////////////////////////////////////          - płynne rozświetlanie diody LED RGB<br /><br />// ! ! ! Bajt |= (1&lt;&lt;nr_bitu)  USTAWIĆ BIT   ( 1 )<br />// ! ! ! Bajt &amp;= ~(1&lt;&lt;nr_bitu) WYZEROWAĆ BIT ( 0 )<br />// ! ! ! Bajt ^= (1&lt;&lt;nr_bitu)  ZMIENIĆ STAN BITU<br /><br />// ! ! ! DDR  = ustawianie portu na we/wy ( 0/1 )<br />// ! ! ! PORT = jeśli używane na wy to włączenie przypisanej dleklaracji<br />// ! ! ! PORT = jeśli używane na we to programowe podpinanie rezystora pull-up<br /><br /><br />/***** Pliki systemowe *****/<br />#include &lt;avr/io.h&gt;<br />#include &lt;util/delay.h&gt;<br /><br />/***** Zmiany nazw *****/<br />typedef uint8_t   ui8;  // zmienna 0-255<br />typedef uint16_t  ui16; // zmienna 0-65535<br /><br /><br />/***** Definicje *****/<br />//LED_x<br />#define LED_1 (1&lt;&lt;PA0)  //LED_x do portu PAx<br />#define LED_2 (1&lt;&lt;PA1)<br />#define LED_3 (1&lt;&lt;PA2)<br />#define LED_4 (1&lt;&lt;PA3)<br />#define LED_5 (1&lt;&lt;PA4)<br /><br />//MicroSwitch_x<br />#define KEY_1 (1&lt;&lt;PB0) //KEY_x do portu PBx<br />#define KEY_2 (1&lt;&lt;PB1)<br />#define KEY_3 (1&lt;&lt;PB2)<br />#define KEY_4 (1&lt;&lt;PB3)<br />#define KEY_5 (1&lt;&lt;PB4)<br />#define KEY_6 (1&lt;&lt;PB5)<br />#define KEY_7 (1&lt;&lt;PB6)<br />#define KEY_8 (1&lt;&lt;PB7)<br /><br /><br />/***** Deklaracje  *****/<br /><br /><br /><br /><br /><br />int main(void)<br />{<br />/***** Start *****/<br /><br />//LED_x<br />DDRA  |=  ( LED_1 | LED_2 | LED_3 | LED_4 | LED_5 ); //LED_x pod wyjście Portu A (1)<br />PORTA &amp;= ~( LED_1 | LED_2 | LED_3 | LED_4 | LED_5 ); //LED_x stan 0  (anoda do nóżki uC)<br /><br />//MicroSwitch_x<br />DDRB  &amp;= ~( KEY_1 | KEY_2 | KEY_3 | KEY_4 | KEY_5 | KEY_6 | KEY_7 | KEY_8 ); //KEY_x pod wejście Portu B (0)<br />PORTB |=  ( KEY_1 | KEY_2 | KEY_3 | KEY_4 | KEY_5 | KEY_6 | KEY_7 | KEY_8 ); //Pull-up KEY_x do VCC<br /><br /><br /><br /><br /><br /><br />while(1){<br /><br />//Tryb obsługi LED_x<br />if(KEY_1){                           //jeśli KEY_1 wciśnięty<br />_delay_ms(2000);                 //Czekaj 2s<br />}<br />if(KEY_1){                       //jeśli KEY_1 wciśnięty<br /><br />switch(1){<br /><br />case KEY_1:<br />LED_1=1;<br />break;<br /><br />case KEY_2:<br />LED_2=1;<br />break;<br /><br />case KEY_3:<br />LED_3=1;<br />break;<br /><br />case KEY_4:<br />LED_4=1;<br />break;<br /><br />case KEY_5:<br />LED_5=1;<br />break;<br /><br />}<br /><br />}<br /><br /><br />if(KEY_2){                      //jeśli KEY_2 wciśnięty<br />_delay_ms(2000);//czekaj 2s<br />}<br />if(KEY_2){//jeśli KEY_2 wciśnięty<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />}<br /><br /><br /><br /><br /><br />} //koniec while(1)<br /><br />}     //koniec main()[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1480">MrWeb123</a> — 9 lip 2013, o 13:25</p><hr />
]]></content>
</entry>
</feed>