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



Teraz jest 28 kwi 2024, o 03:14


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 15 sty 2014, o 23:28 
Offline
Nowy

Dołączył(a): 15 sty 2014
Posty: 13
Pomógł: 0

Witam serdecznie. Mam nietypowy problem , mianowicie : Napisałem pewien prosty programik z użyciem PCINT-ów ATtiny 2313 i kod przez pewną zmienną zajmuje bardzo dużo pamięci.
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Gdy zmienna czas nie zostaje zainicjalizowana wartością w main to program zajmuje ponad 3 800b, natomiast po przypisaniu jej dowolnej wartości kod chudnie aż do ok. 200b . Dlaczego tak się dzieje ....???? :shock:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2014, o 23:31 
Offline
Użytkownik

Dołączył(a): 24 sty 2012
Posty: 1469
Pomógł: 56

źle używasz _delay_ms()
Musisz tam wpisać konkretną liczbę

_________________
Jestem początkujący i moje porady mogą być błędne



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2014, o 23:32 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27227
Lokalizacja: Szczecin
Pomógł: 1041

slawek1992 napisał(a):
_delay_ms(czas);


Dokładnie jak mówi kolega wyżej - wpisz tutaj zamiast czas np 1000 i zobaczysz że dziwna waga kodu zniknie ;)

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2014, o 23:42 
Offline
Nowy

Dołączył(a): 15 sty 2014
Posty: 13
Pomógł: 0

Faktycznie. Dlaczego nie można w ten sposób inicjować delaya ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2014, o 23:47 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 17 sie 2013
Posty: 3797
Lokalizacja: Grudziądz
Pomógł: 143

Poszukaj na forum mirek o tym pisal i to dokladnie

Wysłane z telefonu

_________________
Usługi druku przestrzennego - www.drumik.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 15 sty 2014, o 23:49 
Offline
Użytkownik
Avatar użytkownika

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

Bo argumentem funkcji delay jest liczba zmiennoprzecinkowa double. Ale jeśli podstawisz tam stałą to wszystkie obliczenia są wykonywane przez preprocesor na etapie kompilacji.
Ale jak do funkcji podstawisz zmienną to kompilator nie wie jaką będzie miała wartość i wtedy do projektu dołącza biblioteki do obsługi liczb zmiennoprzecinkowych, które zajmują dużo pamięci programu.



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 1 gość


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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO