Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 3 kwi 2026, o 04:18


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 24 sty 2016, o 13:59 
Offline
Nowy

Dołączył(a): 22 sty 2016
Posty: 21
Pomógł: 1

topic4851.html



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2016, o 14:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Nie powinno się stosować w _delay_us() i _delay_ms() zmiennych. To powoduje straszne zwiększanie objętości kodu.
Zastosuj pętlę typu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


--
Pozdrawiam,
Robert

------------------------ [ Dodano po: 13 minutach ]

Temat był już opisywany w http://forum.atnel.pl/topic4840.html


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2016, o 14:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Wrzuć kod po zmianach. Coś nie tak musiałeś zrobić.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2016, o 15:19 
Offline
Użytkownik

Dołączył(a): 02 maja 2015
Posty: 100
Lokalizacja: Malbork
Pomógł: 12

Problemem nie jest tutaj delay... eclipse zjada je ze smakiem :) tylko raczej sposób pisania kodu i środowisko w którym to robisz. Przeczytaj post, który kolega michalf Ci podrzucił... wszystko powinno być jasne. Sam zaczynałem naukę właśnie z tymi kocimi praktykami zanim trafiłem na poradniki atnela i przyznaje Mirkowi rację, że niektóre poradniki czy strony to totalna pomyłka. Są tam nieraz bardzo przydatne informację ale też dużo dziwnych pomysłów. A żaden początkujący nie jest w stanie określić co ma sens, a co nie...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2016, o 15:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 mar 2014
Posty: 1475
Pomógł: 167

Cytuj:
Nie rozumiem czy tylko Eclips nie lubi _deley, bo przecież w oryginale były widziałem działanie.
Delay-e działają poprawnie i nie ma z nimi problemu, czyli możesz je używać. Lecz jak już wcześniej napisałem delay-e muszą mieć jako argument wartość stałej a nie zmiennej. Jest to dokładnie opisane przez Mirka w poście do którego wkleiłem Ci wcześniej linka:
Cytuj:
Do funkcji opóźniających typu _delay_xx() w AVR GCC przekazujemy TYLKO I WYŁĄCZNIE stałe dosłowne. Co ciekawe mogą to być wtedy nawet liczby zmiennoprzecinkowe np: 0.3


Jeżeli robisz tak jak napisałem (jak w tym cytowanym poście) to napisz / daj kod a zobaczymy co jest nie tak.

--
Pozdrawiam,
Robert



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 sty 2016, o 18:59 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

W starym WinAvr można było podstawić zmienną w miejsce argumentu funkcji delay. Skutkowało to zwiększeniem objętości kodu.

W Atmel Toolchain, funkcje delay, korzystają z innych mechanizmów niż te w WinAvr. Skutkuje to tym, że jako argument należy podać stałą dosłowną lub zmienną, której wartość jest znana na etapie kompilacji i która nie zmienia swej wartości. Wtedy kompilator za zmienną i tak podstawi stałą i delay poprawnie działa.

Podanie zmiennej, której wartość nie jest znana na etapie kompilacji powoduje zatrzymanie kompilacji i wyrzucenie błędu __builtin_avr_delay_cycles expects a compile time integer constant

Kiedyś z ciekawości to sprawdziłem i poniższy program
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

bez problemów kompiluje się w WinAvr zwiększając rozmiar wsadu do ponad 3kB.
Natomiast w Atmel Toolchain taki kod się nie kompiluje a kompilator zgłasza wyżej wymieniony błąd


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO