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



Teraz jest 1 wrz 2025, o 15:45


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 2 ] 
Autor Wiadomość
PostNapisane: 18 kwi 2014, o 21:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2013
Posty: 104
Pomógł: 0

Witam.
Napisałem sobie taki programik i nie do końca działa tak jak chciałem.

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Zmienna TCNT1 jest 16 bitowa, czyli powinna mieć wartośc 0-65535. Tak? A u mnie na lcd pojawiają się jakieś dziwne liczby, nawet ujemne. Ile czasu zajmuje przepełnienie licznika?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 kwi 2014, o 21:55 
Offline
Nowy

Dołączył(a): 16 kwi 2014
Posty: 6
Pomógł: 1

Specyfikator %d jaki użyłeś w parametrze funkcji sprintf informuje ją, że ma traktować (i sformatować) wartość TCNT1 jako liczbę dziesiętną ze znakiem (signed decimal integer). Wówczas w 16-bitach nie zmieścisz zakresu 0-65535. Gdy najstarszy bit ma wartość "1" całość jest traktowana jako liczba ujemna. Zamiast tego użyj "%u" (unsigned int).



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: 2 ] 

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