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



Teraz jest 8 kwi 2026, o 07:18


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 3 ] 
Autor Wiadomość
PostNapisane: 12 lut 2014, o 21:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

Witam mam problem :)

Zapisuje do zmiennych pomiar częstotliwości który jest max około 12000Hz
Wszystko sumuje w zmiennej i nie ważne jaką wielkość ustawie dla wszystkich zmiennych zawsze po przekroczeniu 32k wyświetla mi się liczba z minusem.
zaznaczam że tak się dzieje tylko po przekroczeniu 32000.

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


funkcja w której dokonuje pomiaru i zsumowania liczb w zmiennych:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Przykładowe wartość w zmiennych gdy dzieje się dany problem.

r_p: 12000
g_p: 11577
b_p: 12659

w s_pomiar powinna być wartość 36236
a jest np -29415

nie ważne jaką wielkość dam zmiennym i tak jest taki sam problem. Nawet gdy robię coś takiego
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


przez myśl mi przeszło że może to wina funkcji wyświetlającej wynik na LCD
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


korzystam z bibliotek Pana Mirka.

Dziękuje za uwagę i pozdrawiam

PS procek to atmega644PA



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lut 2014, o 21:42 
Offline
Użytkownik

Dołączył(a): 17 sty 2013
Posty: 327
Lokalizacja: Białystok
Pomógł: 14

DidekxD napisał(a):
przez myśl mi przeszło że może to wina funkcji wyświetlającej wynik na LCD
Składnia: [ Pobierz ] [ Ukryj ]
język c
lcd_int(s_pomiar);
GeSHi


Jak sama nazwa wskazuje wyświetla na ekranie wartość typu int, więc stawiam, że tutaj się kaszani. Spróbuj zmienić w funkcji itoa na ltoa



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lut 2014, o 22:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 gru 2011
Posty: 110
Lokalizacja: Dolnyśląsk
Pomógł: 0

Mscichu napisał(a):
Jak sama nazwa wskazuje wyświetla na ekranie wartość typu int, więc stawiam, że tutaj się kaszani. Spróbuj zmienić w funkcji itoa na ltoa


zgodnie z informacjami na tej stronie

http://pic.dhe.ibm.com/infocenter/zos/v ... 2Fltoa.htm

Pomogła zmiana na 'utoa'

Dzięki za nakierowanie :) już myślałem że jakieś cyrki się dzieją :p a tu Pan Mirek pułapkę zastawił.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 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