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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2013-12-29T15:30:24+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=4467&amp;mode</id>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-12-29T15:30:24+01:00</updated>
<published>2013-12-29T15:30:24+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62739#p62739</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62739#p62739"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62739#p62739"><![CDATA[
po to jest C żeby nie trzeba było znać żadnych tam wskaźników tzn cyfr/bezpośrednich adresów komórek .... no przecież w poradniku jest pokazane że operujesz już tylko na strukturze .... i jak trzeba to ją zapisujesz lub robisz update a jak trzeba to ją odczytujesz<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 29 gru 2013, o 15:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-12-29T14:59:09+01:00</updated>
<published>2013-12-29T14:59:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62727#p62727</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62727#p62727"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62727#p62727"><![CDATA[
Obejrzałem ponad 2 godziny poradnik. W związku z tym mam dodatkowe pytania. Jeśli chce zapisać jakieś dane w eepromie, to tworzę strukturę w programie i mogę potem zapisywać dane z tej struktury w pamięci eeprom za pomocą wymienionych funkcji. Potem po zapisie, przy starcie programu, mogę sprawdzać zawartość zapisanej struktury w eeromie, czy jest nie jest czasem pusta (ale któryś element nie jest pusty. za pomocą funkcji &quot;check and load defaults&quot;, a także czytać zapisanej struktury w eepromie za pomocą innej funkcji.<br />W funcjach zapisu są adresy komórek (wskaźniki) w pamięci ram i pamięci eeprom. Czy muszę je znać, czy prostu je deklaruję pod odpowiednimi nazwami?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 29 gru 2013, o 14:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-12-28T21:00:23+01:00</updated>
<published>2013-12-28T21:00:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62631#p62631</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62631#p62631"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62631#p62631"><![CDATA[
Dzięki kolego Mirku, za cenne rady, chętnie obejrzę poradnik i nawrócę się na właściwą drogę.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 31 minutach ]</span></strong><br /><br />Czy chodziło o ten poradnik &quot;AVR-EEPROM Struktury&quot;? <!-- m --><a class="postlink" href="http://mirekk36.blogspot.co.uk/2012/11/avr-eeprom-struktury-poradnik-do-ksiazek.html" >http://mirekk36.blogspot.co.uk/2012/11/ ... iazek.html</a><!-- m --><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 28 gru 2013, o 21:00</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-12-28T13:09:55+01:00</updated>
<published>2013-12-28T13:09:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62561#p62561</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62561#p62561"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62561#p62561"><![CDATA[
<div class="quotetitle">rysiekm55 napisał(a):</div><div class="quotecontent"><br />W pamięci EEPROM utworzyłem zmienną tablicową, do której zapisuję oraz odczytuję z niej z użyciem funkcji eeprom_write_byte() i eeprom_read_byte().<br />Mam pytanie, nie wiem jak włączyć opcję zapisu danych do pamięci EEPROM w czasie programowania, obecnie zapisuje dane tylko pamięci programu?<br /><br />------------------------ [ Dodano po: 23 minutach ]<br /><br />Już znalazłem i zrobiłem, należało we właściwościach programatora w zakładce Flash/EEPROM zaznaczyć opcję &quot;Upload EEPROM Image from build&quot;<br /></div><br /><br />No to niestety idziesz od początku złą drogą ... i się zakałapućkasz na przyszłość ... szczególnie z tym co napisałeś na końcu że ładujesz od razu zawartość do eeproma po kompilacji ....<br /><br />zobacz przecież na moim blogu masz w tym zakresie fajny poradnik - na prawdę warto go obejrzeć i wykorzystać w praktyce a zobaczysz jak się to powinno robić i jaką drogą iść ... bo zapisywanie pojedynczych zmiennych eeprom_write_byte() ... każdej z osobna czy ich odczyt to hmmm taka droga troszkę z Bascoma i szybko okaże się strzałem w kolano, ok obejrzyj to :<br /><br /><!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2012/11/avr-eeprom-struktury-poradnik-do-ksiazek.html" >http://mirekk36.blogspot.com/2012/11/av ... iazek.html</a><!-- m --><br /><br />gorąco polecam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 28 gru 2013, o 13:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-12-28T10:36:17+01:00</updated>
<published>2013-12-28T10:36:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62544#p62544</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62544#p62544"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=62544#p62544"><![CDATA[
Po wielu dniach bojów w końcu doszedłem do końca w pisaniu programu do przedwzmacniacza audio z udziałem kości TDA8425, o którym kiedyś wspominałem. Program ma jeszcze pewnie wiele błędów logicznych, jak na razie udało mi usunąć te wszystkie wykrywane przez kompilator. W programie jest wykorzystana obsługa LCD oraz programowa obsługa I2C. Z tym drugim miałem wiele problemów, żeby właściwie zastosować ją do sterowania kości TDA. Zastosowałem tez zapis do wewnętrznej pamięci EEPROM (pierwotnie była pamięć zewnętrzna komunikująca się przez I2C)<br />W pamięci EEPROM utworzyłem zmienną tablicową, do której zapisuję oraz odczytuję z niej z użyciem funkcji eeprom_write_byte() i eeprom_read_byte().<br />Mam pytanie, nie wiem jak włączyć opcję zapisu danych do pamięci EEPROM w czasie programowania, obecnie zapisuje dane tylko pamięci programu?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 23 minutach ]</span></strong><br /><br />Już znalazłem i zrobiłem, należało we właściwościach programatora w zakładce Flash/EEPROM zaznaczyć opcję &quot;Upload EEPROM Image from build&quot;<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 28 gru 2013, o 10:36</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-24T22:12:58+01:00</updated>
<published>2013-11-24T22:12:58+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58433#p58433</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58433#p58433"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58433#p58433"><![CDATA[
Dzięki Mirek. <br />Doszedłem co było przyczyną, że tak źle mi przesuwało znaki w 2 dolnych liniach, w kodzie z książki dla 3 i 4 wiersza były inne adresy pierwszych znaków niż dla wiersza 1 i 2, a powinny być dokładnie te same. <br />Dla mojego wyświetlacza 4x40 adresy dla 1 i 3 linii mieszczą się między 0x00 i 0x27, a dla linii 2 i 4 adresy znaków są w przedziale od 0x40 i 0x67<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 24 lis 2013, o 22:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-24T18:56:39+01:00</updated>
<published>2013-11-24T18:56:39+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58408#p58408</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58408#p58408"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58408#p58408"><![CDATA[
O! i poszło <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=54">mirekk36</a> — 24 lis 2013, o 18:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-24T18:55:20+01:00</updated>
<published>2013-11-24T18:55:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58406#p58406</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58406#p58406"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58406#p58406"><![CDATA[
<a href="http://forum.atnel.pl/_obrazki/o/1756/b04c95f43df6dd1db3cc6e2e49669c10.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1756/b04c95f43df6dd1db3cc6e2e49669c10.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 24 lis 2013, o 18:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-24T15:02:55+01:00</updated>
<published>2013-11-24T15:02:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58376#p58376</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58376#p58376"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58376#p58376"><![CDATA[
Zastosowałem kod kolegi jwalentek z wyżej wspomnianego wątku, jedynie w części inicjacyjnej lcd dodałem kod dla trybu 8 bitowego ustawianie linii E2 (zmieniłem pierwotne E i E1 na E1 i E2), a także dodałem kod odczytu baitu na podobnej zasadzie jak zapisu, uzależniając od zmiennej e, z użyciem switcha, dla wartości e=1 ustawiając linię E1 i dla e=2 linię E2.<br />Wyświetlacz działa na wszystkich wierszach, tylko mam mały problem z ustawianiem kursora np dla wiersza 3 i 4, gdy wpisuję np lcd_locate(3,0) kursor ustawia sie od połowy wyświetlacza. Może należy zmienić gdzieś adresowanie?<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 14 minutach ]</span></strong><br /><br />Gdy wpiszę lcd_locate(3, -16) to zaczyna od początku linii. To samo dzieje sie dla linii 3. Można to zmienić w funkcji locate, dla linii 3 i 4 poprzez wcześniejsze wpisanie do x liczby -16, ale może jest jakiś inny ciekawszy pomysł?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 24 lis 2013, o 15:02</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-24T15:07:02+01:00</updated>
<published>2013-11-23T22:06:23+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58319#p58319</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58319#p58319"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=58319#p58319"><![CDATA[
Witam ponownie tutaj po małej przerwie, ale miałem inne sprawy do zrobienia. Dziś uruchomiłem swój drugi zestaw uruchomieniowy AVT3505 z Atmega162. Podłączyłem do niego wyświetlacz 4x40 i dołączyłem drugą linię E nazywając ją E1. Dla tej drugiej linii wprowadziłem dodatkowe linie kodu, np w funcjach przesyłania półbaita i całego bajta, użyłem warunku sprawdzającego w której linii jest aktualnie znak, jeśli są 2 dwie pierwsze linie, to jest sterowana oryginalna linia E, jeśli zaś jest w wierszach 3 i 4, to sterowana jest linia E1. <br />Zaś w funkcji inicjacyjnej skopiowałem linie kodu z sygnałem E i zmieniając E na E1:Według mnie teoretycznie powinno działać, ale niestety działają tylko dwie linie wyświetlacza, dwie pozostałe pozostają z ciemnymi kropkami, co wydaje, że ta część wyświetlacza nie została nawet zainicjowana.<br /><br />Sprawdziłem, nie działał, ale wymieniłem na drugi i teraz się inicjuje się druga część wyświetlacza.<br />Dziś przeglądałem forum i znalazłem, że ten temat był już rozgryzany na początku roku, w tym wątku <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic2276.html" >topic2276.html</a><!-- l -->, i jeden z kolegów już napisał przerobiony kod do obsługi takiego wyświetlacza, muszę przestudiować i zastosować u siebie. <br />Pozdrawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 23 lis 2013, o 22:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-15T21:08:55+01:00</updated>
<published>2013-11-15T21:08:55+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=57014#p57014</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=57014#p57014"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=57014#p57014"><![CDATA[
Dziękuję Mirku za tak dokładne wyjaśnienie. Podziwiam Cię, że opisując to tak dokładnie poświęcasz tyle swojego cennego czasu dla mnie, który tylko kupił od Ciebie książkę i czasami udziela się tutaj na Twoim forum, które uważam za jedno z najlepszych w tej dziedzinie, wydaje mi się, że nawet lepsze od znanego anglojęzycznego AVRfreak.<br />Wracając do meritum sprawy, wcześniej domyślałem się, ale nie byłem w 100% pewny, że chodzi o ten adres &quot;zerowy&quot;, który dla stringów jest zarezerwowany do zakończenia go.<br />W ten weekend zamierzam sie pobawić się przemalowywaniem adresów znaków, a także wypróbuję większy wyświetlacz 4x40, tym razem na większym procku (potrzebna dodatkowa druga linia E)<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 15 lis 2013, o 21:08</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-15T07:23:42+01:00</updated>
<published>2013-11-15T07:23:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56929#p56929</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56929#p56929"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56929#p56929"><![CDATA[
<div class="quotetitle">rysiekm55 napisał(a):</div><div class="quotecontent"><br />a nie można było użyć bezpośrednio kodów 0x00-0x07 do wywoływania własnych znaków.<br /></div><br /><br />ależ można <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> jak najbardziej ... ale myślę, że pominąłeś w opisie w książce WAŻNY MAŁY SZCZEGÓŁ. Najpierw jednak dwa słowa wyjaśnienia.<br /><br />1. przykład ten ma pokazać jakiś sposób (jeden z wielu) na w ogóle przemapowywanie znaków w locie<br />2. przykład ten ma pomagać w unikaniu przerywania stringów <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />skupmy się na pkt.2<br /><br />wyobraźmy sobie że nie ma tego przemapowania i posługujemy się kodami znaków od 0 do 7 OK ?<br /><br />czyli prosty przykład - definiujesz sobie np pod znakiem o kodzie 0 (zero) literkę 'ą'<br /><br />no i teraz chcesz wyświetlić napis &quot;kącik&quot;<br /><br />jak to zrobić - no proszę np tak:<br /><br />[syntax=c]lcd_str( &quot;k\x00cik&quot; );[/syntax]<br /><br />wiesz chyba że \x00 to zapis HEX wewnątrz stringa kodu znaku ... ale widzisz chyba że to kod znaku = 0 tak ?<br /><br />więc co to za string ? zastanowiłeś się ? pamiętasz jak działa string w C ? - string zawsze kończy się zerem .... a zatem typowa pętla wysyłająca string czy to na LCD czy na UART czy gdziekolwiek jak się zachowa ?<br /><br />[syntax=c]void lcd_str( char * s ) {<br />   while( *s ) lcd_char( *s++ );<br />}[/syntax]<br /><br />jeśli rozumiesz działanie tej pętli to chyba widzisz że zatrzyma się ona na końcu stringa - jego koniec to znak 0 a zatem zamiast napisu &quot;kącik&quot; na swoim LCD zobaczysz napis<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />&quot;k&quot;<br /></div><br /><br />i to wszystko <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> zrób sobie najlepiej test na własnym LCD - ja zwykle gdy mi coś nie może zaskoczyć w głowie - to zaraz robię test na żywca ... wystarczy tylko wyłączyć tą konwersję znaków 0x80-0x87 na 0x00-0x07<br /><br />Owszem możesz powiedzieć - ale przecież nie muszę tak wyświetlać znaku 'ą' pod kodem = 0 - mogę to zrobić tak:<br /><br />[syntax=c]lcd_str( &quot;k&quot; );<br />lcd_char( 0 );<br />lcd_str( &quot;cik&quot; );[/syntax]<br /><br />możesz - jak lubisz <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> sprawdź jednak ile to zajmie pamięci flash i pomyśl tylko ile musiałbyś się nakombinować chcąc wtedy wpisać np takie dwa wyrazy:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />&quot;żółtą gęślą&quot;<br /></div><br /><br /><img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /><br /><br />a tymczasem dodają jeszcze konwersję np na WIN1250 - ja mogę sobie napisać wręcz tak:<br /><br />[syntax=c]lcd_str( &quot;żółtą gęślą&quot; );[/syntax]<br /><br />bezpośrednio w kodzie swojego programu .... to jest NAJWYGODNIEJSZE i będzie działać <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... owszem to też ma swoje wady ale nie o tym teraz mowa - czasem się BARDZO BARDZO przydaje<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 15 lis 2013, o 07:23</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-15T07:07:54+01:00</updated>
<published>2013-11-15T07:07:54+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56928#p56928</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56928#p56928"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56928#p56928"><![CDATA[
Wciąż nie mogę zrozumieć, dlaczego była konieczność przemalowania kodów  0x80-0x87 na kody 0x00-0x07, a nie można było użyć bezpośrednio kodów 0x00-0x07 do wywoływania własnych znaków.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 15 lis 2013, o 07:07</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-12T23:19:20+01:00</updated>
<published>2013-11-12T23:19:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56625#p56625</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56625#p56625"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56625#p56625"><![CDATA[
Dziękuję, spróbuję to zrobić jak napisałeś. Pozdrawiam<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 12 lis 2013, o 23:19</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-12T20:54:51+01:00</updated>
<published>2013-11-12T20:54:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56591#p56591</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56591#p56591"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56591#p56591"><![CDATA[
No a zobacz przykład z przemalowaniem kodów 0x80-0x87 na kody 0x00-0x07 <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... po to dałem ten przykład - i na podobnej zasadzie można zrobić z kodami WIN1250<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 12 lis 2013, o 20:54</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-12T20:25:49+01:00</updated>
<published>2013-11-12T20:25:49+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56579#p56579</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56579#p56579"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56579#p56579"><![CDATA[
Jeszcze pozostaję przy ćwiczeniu o LCD, gdyż chciałbym dokładnie przestudiować i zrozumieć wszystkie funkcje obsługujące LCD zawarte w pliku lcd44780.c. W książce jest napisane, że można napisać procedurę, za pomocą której uzyskuje się przemalowanie kodów dla standardu np WIN1250.<br />Czy można dowiedzieć się coś więcej jak dałoby to zrobić?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 12 lis 2013, o 20:25</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-10T22:05:52+01:00</updated>
<published>2013-11-10T22:05:52+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56244#p56244</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56244#p56244"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56244#p56244"><![CDATA[
<div class="quotetitle">rysiekm55 napisał(a):</div><div class="quotecontent"><br />przepraszam Mirek, ale ukradłem pomysł z twojego programatora<br /></div><br /><br />Wiesz, gdybym ja skrzętnie ukrywał schematy swoich modułów jak to robią niejednokrotnie niektórzy producenci - to mógłbyś tak powiedzieć <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> ... a ja właśnie specjalnie je udostępniam bo wolę aby ludzie korzystali ze sprawdzonych rozwiązań i cieszę, się że się przydało <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: kilkunastu sekundach ]</span></strong><br /><br />a, no i dzięki za pozdrowienia z LCD z fotki <img src="https://forum.atnel.pl/images/smilies/icon_lol.gif" alt=":lol:" title="Śmieje się" /> - SUPER!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 10 lis 2013, o 22:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-10T21:24:29+01:00</updated>
<published>2013-11-10T21:24:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56229#p56229</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56229#p56229"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56229#p56229"><![CDATA[
W końcu działa zadanie z LCD! Potwierdza to dołączona fotka. Testowałem to na płytce audio procesora, do którego w najbliższej przyszłości chciałbym napisać oprogramowanie, o czym już wcześniej wspominałem.<br />Wcześniej udało mi usprawnić mój programator. Dobudowałem w nim możliwość zasilania programowanej płytki (przepraszam Mirek, ale ukradłem pomysł z twojego programatora), dodatkowo rozdzieliłem zasilanie procka programatora i reszty dokładając dodatkowe kondensatory filtrujące.<br /><a href="http://forum.atnel.pl/_obrazki/o/1756/5a8cf20c7d482b0dd95de5821e243f33.jpg"  class="postlink"><img src="http://forum.atnel.pl/_obrazki/o/thumb/1756/5a8cf20c7d482b0dd95de5821e243f33.jpg" alt="Obrazek" /></a><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 10 lis 2013, o 21:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-10T17:24:50+01:00</updated>
<published>2013-11-10T17:24:50+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56160#p56160</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56160#p56160"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56160#p56160"><![CDATA[
<div class="quotetitle">acid3 napisał(a):</div><div class="quotecontent"><br />W pliku lcd44780.h musisz ustawić - [syntax=c]#define USE_RW 0[/syntax]<br /></div> Dzięki kolego. To było wyraźnie napisane, chyba byłem ślepy, że nie zauważyłem tego.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 10 lis 2013, o 17:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[acid3]]></name></author>
<updated>2013-11-10T16:55:35+01:00</updated>
<published>2013-11-10T16:55:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56157#p56157</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56157#p56157"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56157#p56157"><![CDATA[
W pliku lcd44780.h musisz ustawić - [syntax=c]#define USE_RW 0[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=944">acid3</a> — 10 lis 2013, o 16:55</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-10T16:51:02+01:00</updated>
<published>2013-11-10T16:51:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56156#p56156</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56156#p56156"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56156#p56156"><![CDATA[
Od paru dni rozgryzam ćwiczenie dotyczące obsługi LCD. W pliku nagłówkowym zdefiniowałem, które porty mikrokontrolera mają być podłączone do linii LCD. Mam malutki problem, płytka na której zamierzam ćwiczyć ma linię RW nie podłączoną, czy w takiej sytuacji będzie działać kod z tej lekcji, czy muszę coś w nim zmieniać?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 10 lis 2013, o 16:51</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-10T00:03:36+01:00</updated>
<published>2013-11-10T00:03:36+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56057#p56057</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56057#p56057"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56057#p56057"><![CDATA[
Cieszę się, że sprawa się ostatecznie wyjaśniła. Akurat tego drugiego błędu nie zauważyłem, ponieważ, gdy robię ćwiczenia z książki, to nie robię na dokładnych kopiach projektów, ale tworzę swoje własne projekty z plikami pod tymi nazwami,a potem wklejam kod w plików oryginałów, dzięki temu mam większą kontrolę nad tym co robię.<br /><br />Rzeczywiście ten uaktualniony sposób z maską anody jest znacznie bardziej czytelny.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 10 lis 2013, o 00:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Mipsa]]></name></author>
<updated>2013-11-09T23:38:51+01:00</updated>
<published>2013-11-09T23:38:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56055#p56055</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56055#p56055"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56055#p56055"><![CDATA[
No ok . Ja popatrzyłem szybko do mnie do książki(pierwsze wydanie) i u mnie tego błędu nie znalazłem(chyba już dziś za dużo soczku jabłkowego wypiłem)  i przez to napisałem o tej negacji myślałem że po prostu pomyliłeś wiersze w książce.  <br />Albo już po prostu nie wiem co pisze hehe<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1824">Mipsa</a> — 9 lis 2013, o 23:38</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2013-11-09T23:18:59+01:00</updated>
<published>2013-11-09T23:18:59+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56054#p56054</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56054#p56054"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56054#p56054"><![CDATA[
<div class="quotetitle">rysiekm55 napisał(a):</div><div class="quotecontent"><br />Końcówka powinna być odwrotna: 0x0F i tak też było w erracie do ćwiczeń tej książki.<br />Poza tym, ja nie mówiłem o błędzie w książce, ale na płycie dvd<br /></div><br /><br />No faktycznie biorąc pod uwagę tę linię:<br /><br />[syntax=c]ANODY_PORT = (ANODY_PORT &amp; 0xF0) | (~licznik &amp; 0x0F);[/syntax]<br /><br />to rzeczywiście na wejściu do przerwania wygaszenie 4 wyświetlaczy powinno wyglądać tak:<br /><br />[syntax=c]ANODY_PORT = (ANODY_PORT &amp; 0x0F);[/syntax]<br /><br />a nie tak:<br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br /><span style="color: #FF0000"><em>ANODY_PORT = (ANODY_PORT &amp; 0xF0);</em></span><br /></div><br /><br />Jest jednak nadal na stronie <br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/uaktualnienia-programow-do-dvd.html" >http://atnel.pl/uaktualnienia-programow-do-dvd.html</a><!-- m --><br /><br />dostępne uaktualnienie z erratą do kodów do DVD ... czyli owszem przedostał się ten błąd na DVD ponownie do nowego wydania książki. Gorzej - przedostał się jeszcze inny bo okazuje się, że akurat cały projekt 03_Multi_LED ma załączony profil DEBUG i przez to wielu czytelników całkowicie początkujących ma kłopot z jego pierwszą kompilacją ..... (a sam nie wiem jak to się stało) .... nie mniej jednak jestem tylko człowiekiem a nie robotem.<br /><br />Ale dziękuję za zwrócenie uwagi.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 9 minutach ]</span></strong><br /><br />Dlatego teraz już ląduje uaktualnienie tego przykładu tym razem w taki sposób, począwszy od zdefiniowania MASKI w pliku d_led.h<br /><br />[syntax=c]// definicje portów i pinów wyświetlacza używanych dla ułatwienia w programie jako stałe preprocesora<br />#define LED_DATA PORTA// port z podłączonymi segmentami<br />#defineLED_DATA_DIR DDRA// rejestr kierunku portu katod wyświetlaczy<br />#define ANODY_PORT PORTC// port z podłączonymi anodami- 4 bity najmłodsze<br />#define ANODY_DIR DDRC// rejestr kierunku portu anod wyświetlaczy<br /><br /><br />#define CA1 (1&lt;&lt;PC0)// CA1 oznacza bit nr.0 portu C<br />#define CA2 (1&lt;&lt;PC1)// CA2 oznacza bit nr.1 portu C<br />#define CA3 (1&lt;&lt;PC2)// CA3 oznacza bit nr.2 portu C<br />#define CA4 (1&lt;&lt;PC3)// CA4 oznacza bit nr.3 portu C<br /><br />#define MASKA_ANODY (CA1|CA2|CA3|CA4) // MASKA WSPÓLNYCH ANOD (lub katod)[/syntax]<br /><br />a w procedurze obsługi przerwania będzie tak:<br /><br /><br />[syntax=c]ANODY_PORT = (ANODY_PORT | MASKA_ANODY);// wygaszenie wszystkich wyświetlaczy<br /><br />if(licznik==1) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy1&#93; );// gdy zapalony wyśw.1 podaj stan zmiennej c1<br />else if(licznik==2) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy2&#93; );// gdy zapalony wyśw.2 podaj stan zmiennej c2<br />else if(licznik==4) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy3&#93; );// gdy zapalony wyśw.3 podaj stan zmiennej c3<br />else if(licznik==8) LED_DATA = pgm_read_byte( &amp;cyfry&#91;cy4&#93; );// gdy zapalony wyśw.4 podaj stan zmiennej c4<br /><br />ANODY_PORT = (ANODY_PORT &amp; ~MASKA_ANODY) | (~licznik &amp; MASKA_ANODY);// cykliczne przełączanie kolejnej anody w każdym przerwaniu[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 9 lis 2013, o 23:18</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[rysiekm55]]></name></author>
<updated>2013-11-09T23:09:25+01:00</updated>
<published>2013-11-09T23:09:25+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56053#p56053</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56053#p56053"/>
<title type="html"><![CDATA[Re: Mój początek w programowaniu w C]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=4467&amp;p=56053#p56053"><![CDATA[
<div class="quotetitle">Mipsa napisał(a):</div><div class="quotecontent"><br />F0 = 0b11110000<br />0F = 0b00001111<br />Wszystko zależy od tego jakim stanem portu sterujesz anoda.<br />A co do błędu który opisujesz. Proponuje dokładnie przeczytać ten fragment książki i się nad nim zastanowić.<br />Jest tam mowa o negacji bitów i ciut wyżej jest to wytłumaczone.<br /></div><br />Wyżej bardzo dokładnie wyjaśniłem, jak jest sterowana anoda i tak w książce jest napisane, że anody są sterowane przez tranzystory pnp. Zatem jeśli z portu sterowana jest baza tranzystora, i na niej wystąpi &quot;zero&quot;, to tranzystor przewodzi i podaje +5V na anodę wyświetlacza, nieprawdaż? Więc zero na porcie, nie wygasza wyświetlacz, ale zasila go.<br />Nie rozumiem, co masz na myśli o negacji bitów. Tutaj jest napisana linia kodu, w której nie mówi się o żadnej negacji. Wydaje mi się, że mylisz sprawę zmiennej licznik, która jest rzeczywiście negowana, ale tutaj nie ma mowy o niej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=1756">rysiekm55</a> — 9 lis 2013, o 23:09</p><hr />
]]></content>
</entry>
</feed>