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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2016-04-19T06:22:27+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=15120&amp;mode</id>
<entry>
<author><name><![CDATA[Bartek123]]></name></author>
<updated>2016-04-19T06:20:29+01:00</updated>
<published>2016-04-19T06:20:29+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158875#p158875</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158875#p158875"/>
<title type="html"><![CDATA[Re: Początkujący, mam chyba problem z prostymi typami danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158875#p158875"><![CDATA[
Nawet jak wstawiasz wyrywki to także dajesz syntax. Jak to co piszesz jest w jakimś języku programowania i jest tego więcej jak 2linijki wstawiaj w syntax.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10617">Bartek123</a> — 19 kwi 2016, o 06:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[analizator]]></name></author>
<updated>2016-04-19T06:16:15+01:00</updated>
<published>2016-04-19T06:16:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158874#p158874</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158874#p158874"/>
<title type="html"><![CDATA[Re: Początkujący, mam chyba problem z prostymi typami danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158874#p158874"><![CDATA[
Przeczytałem o wklejaniu kody ale w ostatnim moim poście nie wklejałem prawdziwego kodu, tylko dwa nawiasy klamrowe i takie tam pierdoły. Oczywiście, będę się stosował w razie wklejania &quot;prawdziwego&quot; kodu.<br /><br />Przepraszam, zastosowałem złą kolejność czytania. Najpierw odruchowo poszedłem do książki i zacząłem szukać tego &quot;UL' a dopiero potem przeczytałem treść z linku, gdzie było napisane, że w książce tego nie ma. Nie wiedziałem, że należy zastosować odwrotną kolejność: najpierw link, a potem... już bym nie sięgał do książki.<br /><br />Sądziłem, że w książce jest wszystko. Może przydało by się wydanie 3'cie poprawione i jeszcze bardziej uzupełnione niż poprzednie? Może nawet złożone z 2'ch tomów? Ta zielona książka to jeszcze co innego ale mówię o niebieskiej, jak się nie mieści wszystko w jednym tomie (trzymanie 2kg w ręku też nie jest wygodne), to zawsze można podzielić na 2 tomy, każdy po ...powiedzmy, no nie wiem, 1000 stron? Jak się kiedyś pojawi to kupię.<br /><br />(... po kilku minutach analizowania poprzednich postów....)<br /><br />Aaa, chodzi o to abym się cofną i wyedytował poprzednią treść i zmienił to co już wcześniej napisałem - ten kod. Nie chodziło wyłącznie o nowe wpisy. Już poprawiam.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13653">analizator</a> — 19 kwi 2016, o 06:16</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-04-17T08:21:30+01:00</updated>
<published>2016-04-17T08:21:30+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158715#p158715</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158715#p158715"/>
<title type="html"><![CDATA[Re: Początkujący, mam chyba problem z prostymi typami danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158715#p158715"><![CDATA[
<div class="quotetitle">analizator napisał(a):</div><div class="quotecontent"><br />Aaaa, domyślna promocja do int. A ja czytam książkę (jestem na stronie 280) i nie widziałem opisu tej promocji do int. Hm, czyli zapewne jest to opisane gdzieś dalej i jeszcze nie dotarłem na tą stronę.<br /></div><br />Przecież podałem tobie LINK wyżej gdzie możesz o tym przeczytać - bo akurat w książce tego nie ma<br /><br /><div class="quotetitle">analizator napisał(a):</div><div class="quotecontent"><br />W kontekście treści z niebieskiej książki zachwalającej C - owszem C jest bardzo bardzo dobre, ale składnia Pascala jest prostsza do nauczenia a po skompilowaniu wychodzi mniej więcej na to samo, przynajmniej na PC.<br /></div><br />Wiesz co? jak od już 25 lat programuję na PC w Pascal/Delphi i kiedyś w ogóle nie mogłem zrozumieć języka C. A dzisiaj ? .... dzisiaj to sobie nie wyobrażam życia bez takich języków jak C/C++ ..... Dobrze więc rozumiem ludzi, którzy przyzwyczajeni są nogami i rękami szczególnie do Pascala .... to pod tym kątem pisałem też Bluebooka żeby im było łatwiej przejść na C tak jak i mnie się to udało - chociaż dopiero za chyba siódmym razem <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: 1 minucie ]</span></strong><br /><br /><div class="quotetitle"><b>Quote:</b></div><div class="quotecontent"><br />No to się wyżaliłem<br /></div><br /><br />ale tego to nie przeczytałeś i nie poprawiłeś o co prosiłem w pierwszym poście <br /><span style="color: #FF0000">[ przede wszystkim to proszę prawidłowo umieszczać kody na forum - tu <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --> przecież jest instrukcja jak to robić, OK ? - mirekk36 ]</span><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 17 kwi 2016, o 08:21</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[analizator]]></name></author>
<updated>2016-04-17T06:59:35+01:00</updated>
<published>2016-04-17T06:59:35+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158713#p158713</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158713#p158713"/>
<title type="html"><![CDATA[Re: Początkujący, mam chyba problem z prostymi typami danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158713#p158713"><![CDATA[
Dzięki za odpowiedź. Aaaa, domyślna promocja do int. A ja czytam książkę (jestem na stronie 280) i nie widziałem opisu tej promocji do int. Hm, czyli zapewne jest to opisane gdzieś dalej i jeszcze nie dotarłem na tą stronę.<br /><br />Eeeeh, C, C. Trochę kiedyś pisałem w C, generuje bardzo szybki, mały kod i na tyle pozwala programiście, że aż za bardzo. Jak trzeba to piszę w C ale szczerze to wolę Pascala bo prowadzi programistę za rączkę i nie pozwala na domyślną konwersję typów danych, sprawdza przepełnienie buforów (tablice, struktury) i składnia języka jest bardziej zbliżona do naturalnego, mówionego języka angielskiego (nie trzeba pamiętać tych znaczków=operatorów), np.: if (..) Then (..), albo zamiast &quot;|&quot; piszemy po ludzku &quot;or&quot;, albo zamiast &quot;{, }&quot; jest naturalne &quot;begin, end&quot;. I denerwuje mnie to, że C pozwala na skróty myślowe bo po roku przerwy zapominam o co chodzi, np.: i++; W Pascalu musi być i := i+1 i każdy, kto nawet nigdy nie pisał w Pascalu wie wtedy o co chodzi.<br /><br />W kontekście treści z niebieskiej książki zachwalającej C - owszem C jest bardzo bardzo dobre, ale składnia Pascala jest prostsza do nauczenia a po skompilowaniu wychodzi mniej więcej na to samo, przynajmniej na PC. A w AVR nie wiem nawet czy są kompilatory Pascala.<br /><br />No to się wyżaliłem <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=13653">analizator</a> — 17 kwi 2016, o 06:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2016-04-14T07:37:13+01:00</updated>
<published>2016-04-14T07:37:13+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158503#p158503</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158503#p158503"/>
<title type="html"><![CDATA[Re: Początkujący, mam chyba problem z prostymi typami danych]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158503#p158503"><![CDATA[
<div class="quotetitle">analizator napisał(a):</div><div class="quotecontent"><br />I wtedy kompilator dopiero zwrócił mi (nawet nie błąd) ostrzeżenie, że w tym działaniu nastąpi przepełnienie typu. Do licha, jak to możliwe? Wszak wynikiem tego działania jest zaledwie 2 000 000 a ten typ danych (4 bajty unsigned) mieści liczbę nieco ponad 4 miliardy.<br /></div><br />Ale ty nie doczytałeś sobie o tzw &quot;domyślnej promocji do int&quot; ... a warto:<br /><!-- m --><a class="postlink" href="http://atnel.pl/domyslna-promocja-do-typu-int.html" >http://atnel.pl/domyslna-promocja-do-typu-int.html</a><!-- m --><br /><br />wtedy byś zrozumiał, że wystarczy to zapisać tak:<br /><br />[syntax=c]DelayFlashing_us = 1000UL * 2000UL;[/syntax]<br /><br />i obliczenia przejdą poprawnie<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 1 minucie ]</span></strong><br /><br /><div class="quotetitle">analizator napisał(a):</div><div class="quotecontent"><br />Zastosowałem typy uint16_t i teraz soft działa dobrze.<br /></div><br />A widzisz ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> bo to właśnie ma bezpośredni związek z tym co napisałem wyżej - &quot;domyślna promocja do int czyli do typu 16-bitowego&quot;<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 4 minutach ]</span></strong><br /><br /><div class="quotetitle">analizator napisał(a):</div><div class="quotecontent"><br />To jak to jest w końcu, czy te „średniowieczne” mikrokontrolery nie obsługują nawet typów 4 bajtowych? Kompilator niby obsługuje te typy, w książce niebieskiej są przedstawione jako zdatne do użytku, a w realu nie działają?<br /></div><br />Niestety to co tu wypisujesz to średniowiecze ... bo zamiast się zastanowić i pomyśleć ... &quot;kurczę pewnie o czymś nie wiem - warto dopytać&quot; ... to wyciągasz jakieś sobie banialuki z głowy ... <br /><br />Polecam ci tę książkę i to zdecydowanie: <br /><br /><!-- m --><a class="postlink" href="http://atnel.pl/mikrokontrolery-avr-jezyk-c.html" >http://atnel.pl/mikrokontrolery-avr-jezyk-c.html</a><!-- m --><br /><br />Z tego co piszesz to ją niby masz .... ale widać, że jak część osób przeleciałeś jak burza po wybranych rozdziałach uznając, że nie ma co czytać całości no i wychodzi co wychodzi .... A ja w tej książce piszę i podaję przykłady jak radzić sobie z obliczeniami zmiennoprzecinkowymi bez typów FLOAT, bo można. A jak się uprzesz już na obliczenia zmiennoprzecinkowe to <br /><br />1. zaraz się zdziwisz i zaczniesz narzekać, że STRASZNIE wzrosło zużycie FLASH<br />2. że obliczenia zaczynają wolniej działać niż ty się spodziewałeś<br /><br />a zajrzyj że sobie na mój blog: <!-- m --><a class="postlink" href="http://mirekk36.blogspot.com/2013/04/eclipse-nie-dziaa-mi-printf-dla-float.html" >http://mirekk36.blogspot.com/2013/04/ec ... float.html</a><!-- m --> i zobacz jak to się robi żebyś mógł na własne oczy zobaczyć, że działają obliczenia na typach zmiennoprzecinkowych w AVR<br /><br />Książka ale po przeczytaniu całości wiele ci wyjaśni o tym jak podejść do programowania mikrontrolerów właśnie - szczególnie gdy jesteś przyzwyczajony do programowania obiektowego na PC i nie rozumiesz na tym etapie jak np w takim małym procku zorganizować sobie Zdarzeń (EVENTs), Timerów programowych, czy funkcji zwrotnych (Callback) - a można i to spokojnie .... i ta książka właśnie też o tym traktuje i wprowadza czytelnika w taki sposób programowania ...<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 11 minutach ]</span></strong><br /><br /><div class="quotetitle">analizator napisał(a):</div><div class="quotecontent"><br />A są w ogóle jakieś ATTiny, które normalnie (jak np.: choćby te stare Pentium) obsługują obliczenia zmiennoprzecinkowe i tak dalej? Przepraszam ale jestem programistą PC’towym i tu mi brakuje jakby to powiedzieć<br /></div><br />No to właśnie IDEALNIE widać, że jesteś programistą PC'towowym ... a tacy zwykle się załamują gdy nagle ktoś im wyjmie obliczenia zmiennoprzecinkowe - to jakby im wyjąć dywanik spod nóg. Gdy tymczasem na takich małych 8-bitowych prockach wręcz warto unikać jak ognia obliczeń na typach zmiennoprzecinkowych. Ale UWAGA! <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... nie oznacza to że nie da się mieć obliczeń w wyniku których trzeba przedstawić liczby zmiennoprzecinkowe bo się da! i to bez typów float i double a TYLKO w oparciu o typy całkowite <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> ... hmmm dziwne to pewnie dla ciebie co? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... a da się .... i to dość prosto .... <br /><br />Widzisz ? Wszystko się prawie da - tylko trzeba zrozumieć ideę jak podejść do programowania na małych prockach ... więc jeszcze raz powtórzę po to jest książka BLUEBOOK ... bo w niej masz także pokazane przykłady jak bez zmiennoprzecinkowych obliczeń (które oczywiście są dostępne .... choć ty chyba nawet o tym nie wiesz) .... można uzyskać wyniki zmiennoprzecinkowe w oparciu o obliczenia na typach całkowitych...<br /><br />To dziwne, zresztą troszkę, że zabierając się za procki i AVR GCC nawet nie zapoznałeś się z podstawowymi typami dostępnymi w tym kompilatorze dla tych procków.... A od tego zwykle się zaczyna.<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 16 minutach ]</span></strong><br /><br /><div class="quotetitle">analizator napisał(a):</div><div class="quotecontent"><br />kilku fajnych rzeczy poczynając od BIOS’u z obsługą FAT16 np.: do kart SD, 10MB RAM’u, trybu chronionego, i tak dalej.<br /></div><br />Pomyśl o skali .... bo schodzisz z GIGANTYCZNEGO systemu np Windows czy Linux na PC czyli na 64 bitowych procesorach wielordzeniowych i wielowątkowych na samo dno ..... do świata mikroskopijnych zwierzątek 8-bitowych ... i co ? chcesz im zapakować na plecy 10 MB RAMu ? <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> .... Panie panie ... haaalo, puk puuuk .... tu procki np ATtiny2313 mają tylko 128 bajtów RAM ! a ATtiny13 tylko 64 bajty RAM a są i takie bez RAM !!! ... i co? i da radę .... <br /><br />Da radę i obsłużyć kartę pamięci z systemem FAT32 !, da radę obsłużyć EThernet !!! .... i mnóstwo innych ciekawych rzeczy .... pomyśl jakie to są dopiero ciekawe wyzwania ... żeby tego dokonać na takich mikrusach a nie iść na łatwiznę i robić to pod kontrolą systemu Windows czy Linux <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> — 14 kwi 2016, o 07:37</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[analizator]]></name></author>
<updated>2016-04-19T06:22:27+01:00</updated>
<published>2016-04-14T07:28:33+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158502#p158502</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158502#p158502"/>
<title type="html"><![CDATA[Początkujący, mam chyba problem z prostymi typami danych.]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=15120&amp;p=158502#p158502"><![CDATA[
Witam. To mój pierwszy post na tym forum. Nauka AVR to droga przez mękę, zwłaszcza jak się na co dzień pisze w Delphi, .NET.<br /><br />uC = ATTiny25<br />Piszę bardzo, bardzo, prosty program do sterowania błyskaniem lampą stroboskopową. Dosłownie 4 zmienne po kilka bajtów. Moją filozofią było to, aby pętla główna kręciła się jak najszybciej i ja między czasie sprawdzał bym sobie kilka różnych innych rzeczy przy tak zwanej okazji, np.: stany klawiszy. Dlatego w pętli głównej zastosowałem delay() w mikrosekundach a nie w milisekundach. Chciałem sprawdzać klawiaturę jak najszybciej, bo brakuje mi tu dedykowanego zdarzenia od klawiatury. Czyli zrobiłem tak:<br /><br /><span style="color: #FF0000">[ przede wszystkim to proszę prawidłowo umieszczać kody na forum - tu <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic7402.html" >topic7402.html</a><!-- l --> przecież jest instrukcja jak to robić, OK ? - mirekk36 ]</span><br /><br />(...)<br />[syntax=c]// Główna pętla programu<br /> while(1) {<br />  LoopCounter++;<br />  _delay_us(1); // super duper szybka pętla = 1 mikrosekunda.<br /><br />  // Błyskanie lampami<br />  if (LoopCounter &gt;= DelayFlashing_us) {<br />    (...) kod programu<br />    LoopCounter = 0;<br />  } // if, błyskanie<br /><br />  // Monitorowanie klawiatury.<br />  if (IsKeyDownPortB(FLASH_SPEED_KEY_PIN)) {<br />   (...) kod programu<br />   DelayFlashing_us = tablica_milisekundy&#91;indeks_kolejny&#93; * 1000; // zmiana szybkości migania stroboskopu. Tablica przechowuje wartości w milisekundach więc mnożę przez 1000.<br />   LoopCounter = 0;<br />  } // if  - monitorowanie klawiatury<br /><br /> }// while[/syntax]<br /><br />oczywiście w takiej sytuacji aby uzyskać opóźnienie = 1s to zmienna &quot;LoopCounter&quot; oraz zmienna &quot;DelayFlashing_us&quot; muszą być typu uint32_t czyli unsigned integer 4 bajtowe.<br />No i dobrze, niech będą takiego typu, kompilator mi to puścił, a programator wgrał soft w uC - bez błędów.<br /><br />Jednak program świrował. Aż w końcu do testów umieściłem w kodzie taką linijkę:<br /><br />DelayFlashing_us = 1000 * 2000;<br /><br />I wtedy kompilator dopiero zwrócił mi (nawet nie błąd) ostrzeżenie, że w tym działaniu nastąpi przepełnienie typu. Do licha, jak to możliwe? Wszak wynikiem tego działania jest zaledwie 2 000 000 a ten typ danych (4 bajty unsigned) mieści liczbę nieco ponad 4 miliardy.<br /><br />Przerobiłem program (powyższy kod) z mikrosekund na milisekundy i teraz pętla jest o 1000 razy wolniejsza. Zastosowałem typy uint16_t i teraz soft działa dobrze.<br /><br />To jak to jest w końcu, czy te „średniowieczne” mikrokontrolery nie obsługują nawet typów 4 bajtowych? Kompilator niby obsługuje te typy, w książce niebieskiej są przedstawione jako zdatne do użytku, a w realu nie działają? <br /><br />A są w ogóle jakieś ATTiny, które normalnie (jak np.: choćby te stare Pentium) obsługują obliczenia zmiennoprzecinkowe i tak dalej? Przepraszam ale jestem programistą PC’towym i tu mi brakuje jakby to powiedzieć … <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":-)" title="Szczęśliwy" /> ... kilku fajnych rzeczy poczynając od BIOS’u z obsługą FAT16 np.: do kart SD, 10MB RAM’u, trybu chronionego, i tak dalej.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=13653">analizator</a> — 14 kwi 2016, o 07:28</p><hr />
]]></content>
</entry>
</feed>