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



Teraz jest 7 kwi 2026, o 10:57


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 14 ] 
Autor Wiadomość
PostNapisane: 18 gru 2013, o 09:22 
Offline
Nowy

Dołączył(a): 18 gru 2013
Posty: 10
Pomógł: 0

Próbuję wyświetlić integer na wyświetlaczu. W tym celu konieczna jest konwersja na string.
Niestety obie linie wyświetlają liczbę do 32767, a potem od -32768 w górę. Z tego co wiem to jest wielkość shorta a nie inta. Jak to rozwiązać?
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 18 gru 2013, o 09:31 
Offline
Moderator
Avatar użytkownika

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

Ja proponuję jednak zacząć zabawę z C od książki

http://atnel.pl/mikrokontrolery-avr-jezyk-c.html

a tu dla uproszczenia podpowiem żebyś zainteresował się wbudowaną funkcją itoa(), która pomoże ci w rozwiązaniu twojego kłopotu.

_________________
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: 18 gru 2013, o 18:22 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

W AVRGCC int to short int i ma 16-bitów. Jak chcesz większe liczby to sięgnij po long int i funkcje ltoa, a w sprintf wstaw %ld.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2013, o 09:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 maja 2013
Posty: 175
Lokalizacja: Kraków
Pomógł: 9

Witam,
w ogóle to odradzam używanie itoa i sprintf. Niepotrzebnie zajmują zasoby procesora.
Polecam napisanie własnych bibliotek, które będą służyć latami a zostanie miejsca na
inne bardziej zaawansowane funkcje.

_________________
Rozwój i utrzymywanie Oprogramowania



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2013, o 10:30 
Offline
Moderator
Avatar użytkownika

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

0livaw napisał(a):
w ogóle to odradzam używanie itoa i sprintf. Niepotrzebnie zajmują zasoby procesora.


Samo itoa może już nie zajmuje tyle co sprintf, ale generalnie też dobra końcepcja jak to się mówi - bo własną prostszą funkcję da się napisać i jak kolega mówi będzie mniejszy kłopot z miejscem w procku ...

_________________
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: 20 gru 2013, o 10:56 

Pomógł: 0

A ci mniej kumaci, między innymi jak ja ;). Mogą podpatrzeć jak to jest zrobione w bibliotekach np. tu http://cboard.cprogramming.com/linux-pr ... -atoi.html
I wrzucić tylko potrzebne funkcje.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2013, o 11:23 
Offline
Użytkownik

Dołączył(a): 20 wrz 2013
Posty: 647
Zbananowany użytkownik

Pomógł: 101

.

_________________
+++++[>++++<-]>[>++++++<-]>.---------.+++.



Ostatnio edytowano 6 lis 2015, o 14:19 przez xor, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2013, o 11:57 

Pomógł: 0

No też jestem tego zdania, że czasem dla tych 2kb nie warto się spinać ;).
Jak zawsze, wszystko zależy od zastosowań. Jak ktoś wymiana w pisaniu softu, potrafi przetestować pod każdym względem taki twór to tak. Osobiście wolę jednak dać oryginalnego itoa itp. Niż rzeźbić to od nowa.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2013, o 12:02 
Offline
Moderator
Avatar użytkownika

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

No ja też bardziej na myśli miałem to żeby czasem napisać swoją ew krótszą wersję sprintf'a a nie itoa. Bo sprintf oczywiście jest fajny, dobrze rozbudowane formatowanie - ale właśnie nie zawsze wszystko potrzebne ....

_________________
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: 20 gru 2013, o 12:46 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 maja 2013
Posty: 175
Lokalizacja: Kraków
Pomógł: 9

To teraz mi powiedzcie, jak używając printf, itoa itp. gotowych, zmieścić program do ATTINY 4313
który jest pilotem sterującym w tym projekcie:
http://www.e-tronix.eu/21,sterowanie-radiowe.html

W tym przypadku ATTINY4313 jest odpowiedzialny za:
- wyświetlacz LCD4x16,
- transmisję radiową,
- obsługę klawiatury - 6 przycisków,
- przetwornik PCF8591, na I2C,
- expander PCF8574, też na I2C.

Program napisany w C, w Atmel Studio.

_________________
Rozwój i utrzymywanie Oprogramowania



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2013, o 12:58 

Pomógł: 0

No wziąłeś maluszka to kombinuj, czy ja gdzieś napisałem, że to się nadaje do wszystkiego. Ot po prostu nie mam czasu rzeźbić, wolę dać większy procek z większym flashem, niż dzielić włos na czworo walcząc o każdy bajt flasha czy ramu.

PS. po za tym podałem linka w sumie z gotowym rozwiązaniem. Wystarczy tylko wrzucić do projektu tylko te funkcje których się używa.



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2013, o 13:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 maja 2013
Posty: 175
Lokalizacja: Kraków
Pomógł: 9

rezasurmar napisał(a):
No wziąłeś maluszka to kombinuj, czy ja gdzieś napisałem, że to się nadaje do wszystkiego. Ot po prostu nie mam czasu rzeźbić, wolę dać większy procek z większym flashem, niż dzielić włos na czworo walcząc o każdy bajt flasha czy ramu.


Niestety, ale nie zawsze jest taka komfortowa sytuacja, że możemy sobie zastosować mikrokontroler z duuuuuuużą ilością pamięci,
i wtedy trzeba "dzielić włos na czworo".

_________________
Rozwój i utrzymywanie Oprogramowania



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 gru 2013, o 13:23 

Pomógł: 0

No to wtedy własnie przydaje się umiejętność wyrwania jednej czy kilku funkcji z całej biblioteki ;).



Góra
  
cytowanie selektywne  Cytuj  
PostNapisane: 22 gru 2013, o 18:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 08 maja 2013
Posty: 175
Lokalizacja: Kraków
Pomógł: 9

squeez napisał(a):

Wiesz wydaje mi się, że na takie projekty to i Chuck Norris nie pomoże.
Tzn nie twierdzę że to nie wejdzie na 4kb tego procka ale po co sobie strzelać w kolano? rozumie że masz już gotową płytkę (urządzenie) i teraz je modyfikujesz? bo jeśli ktoś zrobił takie założenia na początku projektu to teraz musi się mocno pocić i rwać włosy spod pach.

Inna kwestia że ten procesor ma tylko 256b SRAM i jeśli chcesz w nim to wszystko zaimplementować (zakładając że zmieści się we flash) to mogą być problemy ze stosem.
Wszystko zależy od tego jak dobrze znasz C oraz jak dobrym jesteś programistą, jak mawia Mirek w swoich poradnikach programistów są tysiące i tyle samo rozwiązań danego problemu, tylko, że niektórzy maja "polo" i fantazję i potrafią rożne sztuczki.

Sam często czytam czyjś kod i aż mnie trafia, że sam nie wpadłem na jakieś rozwiązanie, które jest kilka razy bardziej optymalne niż moje, no ale właśnie trzeba mieć "fantazję" :D

PS. zapytam też inaczej, jak napiszesz swój kod to ile zajmuje (tzn ile musisz go "odchodzić").


Wcale nie uważam się za super programistę, wręcz przeciwnie. A w całej dyskusji chciałem tylko zaznaczyć że czasami warto napisać wlasne procedurki.

Pisanie własnych procedur to przyzwyczajenie z czasów '51 i pisania w asemblerze, kiedy to do operacji na liczbach większych niż 8-bitowych, trzeba było pisać własne procedurki. Ten kto pisał w asm na '51 to wie o czym mówię.

Nie miałem przypdaku że program się nie mieścił i nie zdażyło mi się odchudzanie programu

_________________
Rozwój i utrzymywanie Oprogramowania



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

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