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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-10-24T17:51:49+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=22&amp;t=4565&amp;mode</id>
<entry>
<author><name><![CDATA[Krauser]]></name></author>
<updated>2013-10-24T17:51:49+01:00</updated>
<published>2013-10-24T17:51:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4565&amp;p=54187#p54187</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4565&amp;p=54187#p54187"/>
<title type="html"><![CDATA[Re: KAmodMEMS1 - obsługa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4565&amp;p=54187#p54187"><![CDATA[
Nie ma to jak samemu coś odpalić. Wprowadzając poprawki nauczysz się jeszcze więcej.<br />Nie używaj lcd_cls wtedy program będzie mógł szybciej chodzić, a wyświetlacz nie będzie migał. Jak napisy różnią się długością to dodaj spacje. <br />Napisy umieść w pamięci programu. <br />Instrukcję switch można zastąpić jedną linijką jeśli napisy wrzucisz do tablicy. <a href="http://nongnu.org/avr-libc/user-manual/FAQ.html#faq_rom_array"  class="postlink">Tu</a> jest opis jak zrobić to poprawnie.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=465">Krauser</a> — 24 paź 2013, o 17:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[TomTea]]></name></author>
<updated>2013-10-23T20:44:52+01:00</updated>
<published>2013-10-23T20:44:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4565&amp;p=54119#p54119</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4565&amp;p=54119#p54119"/>
<title type="html"><![CDATA[Re: KAmodMEMS1 - obsługa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4565&amp;p=54119#p54119"><![CDATA[
Dziękuję <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />  uczę się dokładnie z Bluebooka od jakiś 2 miesięcy tak regularnie wiec dopiero zaczynam przygodę ze scalakami i za bardzo nie umiem pisać &quot;optymalnych&quot; kodów . A możesz mi powiedzieć jak byś go uprościł ?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1309">TomTea</a> — 23 paź 2013, o 20:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[SunRiver]]></name></author>
<updated>2013-10-23T20:40:58+01:00</updated>
<published>2013-10-23T20:40:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4565&amp;p=54117#p54117</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4565&amp;p=54117#p54117"/>
<title type="html"><![CDATA[Re: KAmodMEMS1 - obsługa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4565&amp;p=54117#p54117"><![CDATA[
FC30 jest bardzo fajnym scalaczkiem , w sumie kodzik ci wyszedł ok można co nieco poprawić i uprościć, ale ważne że spełnia twoje oczekiwania i prawidłowo obsługuje memsa ..<br /><br />gratulacje ...<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=58">SunRiver</a> — 23 paź 2013, o 20:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[TomTea]]></name></author>
<updated>2013-10-23T20:37:08+01:00</updated>
<published>2013-10-23T20:37:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4565&amp;p=54115#p54115</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4565&amp;p=54115#p54115"/>
<title type="html"><![CDATA[KAmodMEMS1 - obsługa]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4565&amp;p=54115#p54115"><![CDATA[
Witam !<br /><br />Jest to mój pierwszy taki samodzielny projekt ( prawie , użycie bibliotek Pana Mirka do LCD, i tez jeszcze pożyczyłem pewne makra do swojej  <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" />), wiec z chęcią przyjmę wszelką krytykę.<br />Pewien czas temu wpadł mi do rąk ciekawy moduł peryferyjny z oferty sklepu kamami ( przepraszam za reklamę) a dokładnie KAmodMEMS1 służący do opisywania pozycji. Działa on w prosty sposób a mianowicie od tego w jakiej pozycji się znajduje ustawia 1 na odpowiednich wyjściach tj. ( SGN, LC i PC) przypisujac kazdemu odpowiednia wartość po czym sumując ją możemy otrzymac pozycje w której znajduje się moduł. A więc wszystko prosto działa, ale chciałem bardziej sobie przyspieszyć prace z nim i postanowiłem napisać sobie małą bibliotekę którą będę go obsługiwał. <br /><br />To mamy plik nagłówkowy (mems1.h):<br />[syntax=c]/*---------------------------------------------------------------------<br /> * Biblioteka obsługuje zestaw rozszerzajacy KAmodMEMS1<br /> * pozwalajacy na odczytanie uktualnej pozycji czujnika.<br /> *<br /> *  Funkcja MEMS1_RredPos() zwraca nastepujace wartosci<br /> *0 = Do góry<br /> *4 = Do dołu (wierzchem)<br /> *1 = W lewo (Landscape)<br /> *5 = W prawo<br /> *2 = W górę (Portrait)<br /> *6 = W dół<br /> *3 = 45 stopni &quot;skos&quot;<br /> * --------------------------------------------------------------------<br /><br /> *<br /> *  Created on: 23-10-2013<br /> *      Author: Tomek<br /> */<br /><br />#ifndef MEMS1_H_<br />#define MEMS1_H_<br /><br />/*---------------------------------------------------------------------<br /> *<br /> * Podłączenia do KAmodMEMS1<br /> *<br /> * --------------------------------------------------------------------<br /> */<br />#define MEMS1_SGNPORT  C<br />#define MEMS1_SGN 0<br /><br />#define MEMS1_PCPORT  C<br />#define MEMS1_PC 1<br /><br />#define MEMS1_LCPORT  C<br />#define MEMS1_LC 2<br /><br /><br />// Makra upraszczające dostęp do portów<br />// *** PORT<br />#define PORT(x) SPORT(x)<br />#define SPORT(x) (PORT##x)<br />// *** PIN<br />#define PIN(x) SPIN(x)<br />#define SPIN(x) (PIN##x)<br />// *** DDR<br />#define DDR(x) SDDR(x)<br />#define SDDR(x) (DDR##x)<br /><br />/*---------------------------------------------------------------------<br /> *<br /> * Makra do obsługi funkcji<br /> *<br /> * --------------------------------------------------------------------<br /> */<br />// Sprawdzanie stanów wyjsc modółu<br />#define SGN_P ( PIN(MEMS1_SGNPORT) &amp; (1&lt;&lt;MEMS1_SGN))<br />#define LC_P ( PIN(MEMS1_LCPORT) &amp; (1&lt;&lt;MEMS1_LC))<br />#define PC_P ( PIN(MEMS1_PCPORT) &amp; (1&lt;&lt;MEMS1_PC))<br /><br /><br />/*---------------------------------------------------------------------<br /> *<br /> * Deklaracje funkcji<br /> *<br /> * --------------------------------------------------------------------<br /> */<br /><br />void MEMS1_Init(void);<br />int MEMS1_ReadPos(void);<br /><br />#endif /* MEMS1_H_ */[/syntax]<br /><br />Tu plik mems.c : <br />[syntax=c]/*<br /> * mems1.c<br /> *<br /> *  Created on: 23-10-2013<br /> *      Author: Tomasz Jaeschke<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;mems1.h&quot;<br /><br /><br />/*---------------------------------------------------------------------<br /> *<br /> * Inicjalizacja Modułu<br /> *<br /> * --------------------------------------------------------------------<br /> */<br />void MEMS1_Init(void)<br />{<br />// Ustwienie pinów jako wejscia<br />DDR(MEMS1_SGNPORT)&amp;= ~(1&lt;&lt;MEMS1_SGN);<br />DDR(MEMS1_PCPORT)&amp;= ~(1&lt;&lt;MEMS1_PC);<br />DDR(MEMS1_LCPORT)&amp;= ~(1&lt;&lt;MEMS1_LC);<br /><br />}<br /><br />/*---------------------------------------------------------------------<br /> *<br /> * Funkcja zczytujaca aktualny stan<br /> *<br /> * --------------------------------------------------------------------<br /> */<br />int MEMS1_ReadPos(void)<br />{<br />//w zależnosci od stanu przypisz odpowiedzni numer<br />int stan = 0;<br />if(SGN_P)<br />stan += 4;<br />if(LC_P)<br />stan += 1;<br />if(PC_P)<br />stan += 2;<br />return stan;<br />}[/syntax]<br /><br />No i prosty programik do obserwacji naszych wyników <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: 23-10-2013<br /> *      Author: Tomasz Jaeschke<br /> */<br />#include &lt;avr/io.h&gt;<br />#include &lt;avr/interrupt.h&gt;<br />#include &lt;avr/pgmspace.h&gt;<br />#include &lt;util/delay.h&gt;<br />#include &quot;lcd44780/lcd44780.h&quot;<br />#include &quot;MEMS1/mems1.h&quot;<br /><br />void pozycja ();<br /><br />int main (void) {<br /><br />MEMS1_Init();<br />lcd_init();<br />lcd_led_on();<br /><br />//sei();<br />while(1)<br />{<br />pozycja();<br />_delay_ms(400);<br /><br />}<br />}<br /><br />void pozycja ()<br />{<br />lcd_cls();<br />lcd_locate(0,0);<br />lcd_str(&quot;Stan: &quot;);<br />lcd_locate(0,6);<br />switch(MEMS1_ReadPos())<br />{<br />case 0:<br />lcd_str(&quot;Do gory&quot;);<br />break;<br />case 1:<br />lcd_str(&quot;W lewo&quot;);<br />break;<br />case 2:<br />lcd_str(&quot;W gore&quot;);<br />break;<br />case 3:<br />lcd_str(&quot;Skos 45&quot;);<br />break;<br />case 4:<br />lcd_str(&quot;Do dolu&quot;);<br />break;<br />case 5:<br />lcd_str(&quot;W prawo&quot;);<br />break;<br />case 6:<br />lcd_str(&quot;W dol&quot;);<br />break;<br />}<br />}[/syntax]<br /> <br />I parę zdjęć działającego układu:<br /><br /><a href="http://forum.atnel.pl/_obrazki/o/1309/663ebbeb98d80e20ec8226ee9606a829.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1309/663ebbeb98d80e20ec8226ee9606a829.jpg" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/1309/88842adcf645f981f6c2c0eaefe200eb.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1309/88842adcf645f981f6c2c0eaefe200eb.jpg" alt="Obrazek" /></a><a href="http://forum.atnel.pl/_obrazki/o/1309/65a8d07e28dc56479ac3075b8c0d5645.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1309/65a8d07e28dc56479ac3075b8c0d5645.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1309">TomTea</a> — 23 paź 2013, o 20:37</p><hr />
]]></content>
</entry>
</feed>