tag:blogger.com,1999:blog-3960927205450249158.post137868032775227370..comments2024-03-28T09:15:15.977+01:00Comments on mikrokontrolery avr język c, poradniki, kursy video - eagle: Wstawki ASM w AVR GCC - część 01mirekk36http://www.blogger.com/profile/11690797724225993397noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-3960927205450249158.post-17026412768122810992014-04-06T22:55:30.665+02:002014-04-06T22:55:30.665+02:00Tu nie chodzi o wyższość jednej metody nad drugą a...Tu nie chodzi o wyższość jednej metody nad drugą albo że jedna jest lepsza a druga gorsza. Być może jeszcze nie doczytałeś w Bluebooku na temat działania samych funkcji oraz tego co i jak dzieje się z argumentami przekazywanymi przez wartość - czyli gdybyśmy przekazali do tej funkcjo po prostu samą zmienną ( rolka ). A czym różni się to od tego gdy przekazujemy argument przez wskaźnik czyli ( &rolka ).<br /><br />Tu wychodzi po prostu potrzeba założeń tego projektu. Pomyśl sobie - mamy mieć zmienną gdzieś zdefiniowaną - nie ważne czy globalną czy lokalną i to w niej będzie wciąż kręcił się w kółko bajt - zgadza się ?<br /><br />I teraz - gdybyśmy przekazali przez wartość ( rolka ) .... to dioda czy diody stałyby w miejscu :( ... dlaczego ? Ano dlatego że za każdym razem funkcja asemblerowa zmieniałaby wartość (UWAGA!) K O P I I zmiennej wewnątrz funkcji mk_roll_left(). Funkcja przy wyjściu - niszczy kopię ze stosu.<br /><br />Dlatego potrzebujemy mieć cały czas dostęp do pewnej zmiennej gdzieś tam zdefiniowanej i dlatego przekazujemy wskaźnik do niej - aby wstawka asemblerowa mogła właśnie jej zawartość zmienić po przesunięciu bitów. A gdy zakończy się funkcja mk_roll_left() ... to nic się nie stanie ;) zmienna rolka i tak będzie miała już przesuniętą zawartość.mirekk36https://www.blogger.com/profile/11690797724225993397noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-1895358018178499282014-04-06T20:47:50.603+02:002014-04-06T20:47:50.603+02:00Witam. Dopiero raczkuje w C, czytam BB, ale zadam ...Witam. Dopiero raczkuje w C, czytam BB, ale zadam pytanie może wydać się głupie i wynikające z mojej niewiedzy. Otóż, dlaczego w funkcji mk_roll_left() użyto wskaźnika *k do zmiennej rolka? Czy nie można było rolować samą zmienna rolka wewnątrz tej funkcji bez użycia wskaźnika? Przyznam że nie wiem jakie z tego tytułu wynikają różnice i w jakich przypadkach lepiej używać zmiennej a kiedy użyć wskaźnika do niej. Będę wdzięczny za odpowiedź. Dziękuję i pozdrawiam.Grzegorz L.noreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-19176686486973298482014-04-06T17:50:35.882+02:002014-04-06T17:50:35.882+02:00Witamy Mirku po dłuższej przerwie oczywiście łapki...Witamy Mirku po dłuższej przerwie oczywiście łapki w górę i czekamy na ten kremik na ciachu aby było w czym język zanurzyćEliteicomnoreply@blogger.comtag:blogger.com,1999:blog-3960927205450249158.post-62390978131144358282014-04-06T12:27:21.615+02:002014-04-06T12:27:21.615+02:00Witamy po długiej przerwie Panie Mirku.
Kurcze,faj...Witamy po długiej przerwie Panie Mirku.<br />Kurcze,fajny poradnik, tyko że w najważniejszym momencie sie skończył :-)<br />Łapki w góre i czekamy na kolejny.<br />Pozdrawiam,Piotr.Anonymoushttps://www.blogger.com/profile/15533029653189287766noreply@blogger.com