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



Teraz jest 9 kwi 2026, o 08:17


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 19 ] 
Autor Wiadomość
PostNapisane: 23 maja 2015, o 08:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 502
Lokalizacja: Siedlce
Pomógł: 9

Witam. Chcę wstawić do tablicy sam znak kropki i wyskakuje mi warning zawsze jak użyję "SEG_DP " dodawałem już inne znaki i nie było żadnych problemów coś z typami nie rozumiem ?
poniżej skreen
Obrazek

dodam że jak kliknę drugi raz kompilację to błąd znika ( już ktoś mi pisał że tak jest w eclipsie że kompilator ostrzega za pierwszym razem a za drugim już kompiluje )

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 08:49 
Offline
Użytkownik
Avatar użytkownika

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

Usuń przecinek po 0xFF

Namazane ze smarta.

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



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 08:56 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 502
Lokalizacja: Siedlce
Pomógł: 9

Usunąłem to nic nie daje

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 09:05 
Offline
Użytkownik

Dołączył(a): 06 maja 2014
Posty: 415
Lokalizacja: Kraków
Pomógł: 26

A próbowałeś wrzucić nazwę błędu do translatora?

"duża liczba całkowita niejawnie obcinane do typu unsigned" - posprawdzaj typy danych, jakich używasz przy deklaracji poszczególnych segmentów - może tam jest jakiś drobny błąd.

Czy po zmianie nazwy SEG_DP na jakąś inną problem znika? Jeśli tak, to ewidentnie jakiś problem kompilatora - po prostu podmień wtedy tą nazwę na stałe i się nie przejmuj.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 09:25 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 502
Lokalizacja: Siedlce
Pomógł: 9

krzysssztof napisał(a):
Czy po zmianie nazwy SEG_DP na jakąś inną problem znika? Jeśli tak, to ewidentnie jakiś problem kompilatora - po prostu podmień wtedy tą nazwę na stałe i się nie przejmuj.


Też myślę że to wina kompilatora bo tylko jak dodaje "SEG_DP" ma miejsce taka sytuacja ale jak napisałem wcześniej jak skompiluuuje ponownie to wszytko znika,a jak wcisnę project->clean i znowu build to błąd znowu się pojawia
z typami raczej jest okej w końcu to projekt z bluebooka ;)

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 09:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

Ja bym wyczyścił ilość argumentów tablicy(puste - wartość domyślna - decyduje kompilator o wielkości tablicy).



Ostatnio edytowano 23 maja 2015, o 10:04 przez Wirnick, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 09:34 
Offline
Użytkownik

Dołączył(a): 21 mar 2015
Posty: 25
Pomógł: 3

Pokaż jak masz zdefiniowane SEG_DP.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 09:38 
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

Ostrzeżeń należy się pozbywać. Błędna nazwa przerwania to też ostrzeżenie, a przez to cały program nie będzie działał. Tutaj problemem jest domyślna promocja do int. Po zanegowaniu najstarsze bity są jedynkami i stąd ostrzeżenie, bo dane te są tracone. Jak doda się rzutowanie ostrzeżenie zniknie:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Autor postu otrzymał pochwałę

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 09:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 502
Lokalizacja: Siedlce
Pomógł: 9

mmacura napisał(a):
Pokaż jak masz zdefiniowane SEG_DP.



Kod:
// definicje bitów dla poszczególnych segmentów LED
#define SEG_A (1<<0)
#define SEG_B (1<<1)
#define SEG_C (1<<2)
#define SEG_D (1<<3)
#define SEG_E (1<<4)
#define SEG_F (1<<5)
#define SEG_G (1<<6)
#define SEG_DP (1<<7)




ALE podłączyłem i działa mi to poprawnie z tego co widzę to wyświetlanie działa poprawnie :)



Jeszcze zapytam czy wiecie jak wyświetlić cyfrę z kropką bo buduje woltomierz i chcę wyświetlać jedną cyfrę z przecinkiem(kropką) i nie mam pomysłu jak to zapisać
Kod:
cy = 11;//11 to numer indeksu kodu tablicy oznaczający kropkę

tak jak zrobię to wyświetli mi się sama kropa bez żadnego segmentu więc jak to zrobić żeby wyświetliła się kropka razem z dowolną cyfrą zapewne jakieś obliczenia, maskowanie ?

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 10:36 
Offline
Moderator
Avatar użytkownika

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

RadekB86 napisał(a):
ALE podłączyłem i działa mi to poprawnie z tego co widzę to wyświetlanie działa poprawnie

poczytaj sobie to:
http://atnel.pl/domyslna-promocja-do-typu-int.html
ale dokładnie

I weź pod uwagę to co pisał wyżej kolega Krauser, bo dalej robiąc na czuja albo wymyślając że to wina kompilatora to szybko będziesz miał wiele kolejnych baboli w swoich programach i będziesz rwał sobie włosy z głowy dlaczego nie działa?


Autor postu otrzymał pochwałę

_________________
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: 23 maja 2015, o 10:45 
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

RadekB86 napisał(a):
Jeszcze zapytam czy wiecie jak wyświetlić cyfrę z kropką bo buduje woltomierz i chcę wyświetlać jedną cyfrę z przecinkiem(kropką) i nie mam pomysłu jak to zapisać

Przykład:
Modyfikacja 03Multi_LED z "niebieskiej" książki

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 11:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 502
Lokalizacja: Siedlce
Pomógł: 9

mirekk36 napisał(a):
RadekB86 napisał(a):
ALE podłączyłem i działa mi to poprawnie z tego co widzę to wyświetlanie działa poprawnie

poczytaj sobie to:
http://atnel.pl/domyslna-promocja-do-typu-int.html
ale dokładnie

I weź pod uwagę to co pisał wyżej kolega Krauser, bo dalej robiąc na czuja albo wymyślając że to wina kompilatora to szybko będziesz miał wiele kolejnych baboli w swoich programach i będziesz rwał sobie włosy z głowy dlaczego nie działa?



AA czyli wpisując SEG_DP ja niejako wybrałem 1<<7 czyli przekroczyłem zakres zmiennej tablicowej uint8_t która zamyka się na 255 czyli dołożyłem stałą 0b10000000 czyli 128 + (pozostałe znaki w tablicy) więc kompilator mi zaprotestował ,dobrze rozumiem ?
Jak ją zmieniłem na uint16_t już nie protestuje :)

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 11:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

Wracając do //definicje bitów dla poszczególnych segmentów LED.
Ostrzeżenie występuje, gdy "#define SEG_DP (1<<7)" zmienimy na "#define SEG_A (1<<7)".
Wydaje mi się, że problemem jest int8_t. Chcemy zmienić znak na "-" liczba siedmiobitowa. :?:



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 11:48 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 502
Lokalizacja: Siedlce
Pomógł: 9

Wirnick napisał(a):
Wydaje mi się, że problemem jest int8_t. Chcemy zmienić znak na "-" liczba siedmiobitowa. :?:

tak właśnie już do tego doszedłem no problem ;)

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 13:26 
Offline
Użytkownik
Avatar użytkownika

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

Co do wyświetlania kropki to ja na szybkiego rozwiązałem to sobie w ten sposób topic7744.html#p87600



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 maja 2015, o 17:34 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

@jacekk232. Uważam, że biblioteka d_led jest świetna bez zmian założenia - klon P.Mirka ma podać tylko cyfry z liczby czterocyfrowej.
Nie powiem(chyba, że ktoś będzie zainteresowany) - mój klon może podać liczby BIN(ADCW) wyświetlane w DEC lub HEX - to są wyzwania. No cóż przeskoczyłem do USART i TWI, a na gaszenie zer nieznaczących i stawianie przecinka po jednościach brakuje czasu.
Liczę na Radka! Oczywiście Twój sposób Jacku jest dobry.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 maja 2015, o 10:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 502
Lokalizacja: Siedlce
Pomógł: 9

Wirnick napisał(a):
Liczę na Radka! Oczywiście Twój sposób Jacku jest dobry.


A więc ja zastosowałem taki sposób poniższą instrukcje wklejamy w obsługę przerwań oczywiście z biblioteki Mirka i wybieramy odpowiednią kropkę która nas interesuje według komentarzy
Kod:
//if(anoda==1) PORTB &=~SEG_DP; // kropka na 4 cywsze
//if(anoda==2) PORTB &=~SEG_DP;  //kropka na 1 cywsze
//if(anoda==4) PORTB &=~SEG_DP; // kropka na 2 cywsze
if(anoda==8) PORTB &=~SEG_DP; // kropka na 3 cywsze


co o tym sądzicie ? dla mnie najważniejsze że osiągnąłem zamierzony efekt i to programowy a nie elektryczny bo przecież każdy mógł by powiedzieć że w jednym wyświetlaczu można zewrzeć nóżkę do masy ;)

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 19 cze 2015, o 06:26 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

RadekB86 napisał(a):
A więc ja zastosowałem taki sposób poniższą instrukcje wklejamy w obsługę przerwań oczywiście z biblioteki Mirka i wybieramy odpowiednią kropkę która nas interesuje według komentarzy
co o tym sądzicie ?
Dobre :)
Ja zrobiłem to tak:
1 - w bibliotece Mirka zmieniłem tylko ustawienia sprzętowe.
2 - tablicę cyfry[] powiększyłem o cyfry z kropką.
3 - dodałem nową bibliotekę Monitor_WLED utworzoną na podstawi kodu
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Ostatnio edytowano 5 lip 2015, o 10:43 przez Wirnick, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 2 lip 2015, o 21:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 31 mar 2015
Posty: 310
Pomógł: 18

Rozpracowując problem kropki na wyświetlaczu led, powstał monitor AVR. Uzupełniony powyższy kod o liczby oktalne, daje możliwości podglądu wartości każdego rodzaju danej w procesorze 8 bitowym.



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

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 12 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:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO