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



Teraz jest 28 mar 2024, o 20:33


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 26 ] 
Autor Wiadomość
PostNapisane: 25 sie 2017, o 16:21 
Offline
Użytkownik

Dołączył(a): 25 sie 2017
Posty: 129
Pomógł: 0

Witajcie, ostatnio zacząłem naukę programowania w języku c z książki tzw "blubuka" i chcę zrobić taki nieduży program aby na wyświetlaczy 7seg. losowały się liczby, znaczy żeby raz się wylosowały np 4,7,1,0 i dopiero kiedy nacisnę switcha to wtedy nastąpi reset i ponowne losowanie. Przesyłam wam mój kod znaczy próby napisania :). Liczę na pomoc podpowiedzi itd aaa zaznaczam że nawet mi to nie odpaliło, nie wiem dlaczego. Bym zapomniał robię na płytce startowej od Mirka rev. 1.04

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.



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 25 sie 2017, o 17:37 przez Eposas, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sie 2017, o 16:29 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Kody wklejamy na forum uzywająć znacznika syntax=c jest przycisk proszę poprawić
wtedy łatwiej bedzie udzielić pomocy ..

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sie 2017, o 17:38 
Offline
Użytkownik

Dołączył(a): 25 sie 2017
Posty: 129
Pomógł: 0

Faktycznie nie wiedziałem że tu takie cuda można robić, poprawione i bardziej przejrzyste pozdro dla wszystkich. :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sie 2017, o 18:43 
Offline
Użytkownik

Dołączył(a): 07 cze 2016
Posty: 563
Pomógł: 143

Ten kod, którego autorem jest Mirosław Kardaś, to bym jednak nie publikował na forum z oczywistych (mam nadzieję) względów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sie 2017, o 19:14 
Offline
Moderator
Avatar użytkownika

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

andrews napisał(a):
Ten kod, którego autorem jest Mirosław Kardaś, to bym jednak nie publikował na forum z oczywistych (mam nadzieję) względów.

No tak nawet tego nie zauważyłem, dzięki ... nieco okroiłem ;)

_________________
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: 25 sie 2017, o 20:13 
Offline
Użytkownik

Dołączył(a): 25 sie 2017
Posty: 129
Pomógł: 0

Wiem wiem, mój błąd, ale ja już byłem zdesperowany bo nie chciało mi odpalić to dałem led c ctr ctr v i trochę zmieniłem ale autorze zapomniałem ;), no ale dalej nie wiem nawet jakiej funkcji użyć albo co robić aby losować zmienne cyfry z tablicy



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sie 2017, o 20:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 wrz 2013
Posty: 74
Lokalizacja: Sierakowice/Gdańsk
Pomógł: 9

Eposas napisał(a):
(rand() * 10) % 1

Wynikiem tego działania będzie zawsze 0. Wykonujesz operację '%' modulo. W wyniku otrzymujesz resztę z dzielenia przez 1.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sie 2017, o 20:24 
Offline
Użytkownik

Dołączył(a): 25 sie 2017
Posty: 129
Pomógł: 0

acha, dobra więc co proponujesz



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 sie 2017, o 20:39 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 15 wrz 2013
Posty: 74
Lokalizacja: Sierakowice/Gdańsk
Pomógł: 9

Jeżeli funkcja rand zwraca losową liczbę z jakiegoś zakresu np. 0-255, to żeby otrzymać pseudolosową liczbę z zakresu 0-9 możesz wykonać takie działanie:
rand() % 10
Chyba już jasne jaki będzie wynik. :)
W powyższym przykładzie (jeżeli rand zwraca od 0 do 255) cyfry 0-5 będą nieco częściej wypadać niż cyfry 6-9.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 11:07 
Offline
Użytkownik

Dołączył(a): 25 sie 2017
Posty: 129
Pomógł: 0

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

Sorry za brak odpowiedzi ale nie miałem czasu, wracjąc do problemu dalej nie działa :) przypomnę tylko o co mi chodzi chcę aby na wyświetlaczu led pokazało mi wylosowane cyfry od 0-9 z tablicy. A jeśli ktoś widzi błędy w moim kodzie to niech pisze bo nawet nie chce się odpalić.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 11:10 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

Eposas napisał(a):
nawet nie chce się odpalić
Ale co to znaczy, że nie chce się odpalić? Kompiluje się? Wgrywa się do procka? Wyświetla się cokolwiek na wyświetlaczach?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 11:29 
Offline
Moderator
Avatar użytkownika

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

Eposas napisał(a):
A jeśli ktoś widzi błędy w moim kodzie to niech pisze bo nawet nie chce się odpalić.

A jeśli postarałbyś się lepiej opisywać problem to byłoby znacznie lepiej ci coś podpowiedzieć - a nie tak jak napisał wyżej kolega - co to ma oznaczać "nie chce się odpalić" ? .. no jak tak można zadawać pytanie panie kochany ? ;)

_________________
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: 28 sie 2017, o 11:33 
Offline
Użytkownik

Dołączył(a): 25 sie 2017
Posty: 129
Pomógł: 0

kompiluje się wszystko (brak błędów) tylko nic nie pokazuje na wyświetlaczu, i właśnie nie wiem o co chodzi czy w kodzie mam coś pokichane czy co. :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 11:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

A jak podłączyłeś wyświetlacze? Pod odpowiednie wyprowadzenia procka?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 11:57 
Offline
Użytkownik

Dołączył(a): 25 sie 2017
Posty: 129
Pomógł: 0

Jakby to powiedzieć na początku robiłem wszystko po swojemu czyli na płytce stykowej i nie działało, zakupiłem płytkę startową i też nic mimo że program Pana Mirka działa, i wtedy skopiowałem wszystkie podłączenia z Pana projektu na swój, dlatego komentarze mogą się nie zgadzać bardzo.Wysyłam zdj podłączenia.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 11:58 
Offline
Użytkownik

Dołączył(a): 25 lip 2013
Posty: 2561
Pomógł: 126

Zdjęcia wklejamy na forum.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 12:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

Eposas napisał(a):
Wysyłam zdj podłączenia
Wyślij jeszcze raz. Wg tego poradnika: topic44.html
Próbowałeś wyświetlić cokolwiek? Nie używając funkcji rand()?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 12:36 
Offline
Użytkownik

Dołączył(a): 25 sie 2017
Posty: 129
Pomógł: 0

Nie chce mi sie wgrać nie jak dam obrazek, ale opisze jak mam podłączone, płytka startowa najnowsza i do anody od led mam podlączone do portB 0,1,2,3,4



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 13:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

A segmenty też masz podłączone? W miejscach zaznaczonych ramką i strzałką na screenie
Obrazek



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 13:20 
Offline
Użytkownik

Dołączył(a): 25 sie 2017
Posty: 129
Pomógł: 0

Tak zapomniałem o tym też napisać, i oczywiście anody od 0-3 :), wcześniej pisałem że jak wgrywam projekt z ksiazki Mirka to działa normalnie więc nikłe szanse żeby coś źle było podłączone choć wszystko możliwe. Mi się wydaje że wina leży w kodzie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 13:27 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

Brakuje mi jeszcze jednego: jak działa funkcja rand()?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 13:38 
Offline
Użytkownik

Dołączył(a): 25 sie 2017
Posty: 129
Pomógł: 0

jak wyczytałem i kolega jeden mowił to polega na losowaniu pseudolosowych liczb z jakiegoś zakresu, a ja chciałem losowac te liczby z tablicy

------------------------ [ Dodano po: 15 minutach ]

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: 28 sie 2017, o 13:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

Ja pytam, jak działa Twoja funkcja rand(). W pliku main.c w 14. linijce w pierwszym listningu pierwszego posta masz
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
czyli deklaracja funkcji rand(). A nie ma definicji tej funkcji. Więc jest to pusta funkcja?

EDIT:

Usuń tą linijkę i spróbuj jeszcze raz.
Jeżeli chcesz liczbę z zakresu 0 - 9, daj w kolejnych linijkach
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 28 sie 2017, o 14:00 przez Marhef, łącznie edytowano 1 raz

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 13:58 
Offline
Użytkownik

Dołączył(a): 25 sie 2017
Posty: 129
Pomógł: 0

no właśnie jak czytałem na forach to nie mieli ani deklaracji int rand, tylko w jednym przypadku to było więc zastosowałem z myślą że pomoże.

------------------------ [ Dodano po: 2 minutach ]

Dalej nic nie działa, wyświetlacz nie włączył się nawet

------------------------ [ Dodano po: 6 minutach ]

Ja już jestem głupi :), dobra idę do pracy dlatego nie będę mógł odpisywać ale jak coś jeszcze znajdziecie to będę wdzięczny :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 sie 2017, o 16:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 26 sty 2016
Posty: 1146
Lokalizacja: Kraków
Pomógł: 93

I Tobie ten kod się skompilował?! Dobry jesteś :P
Znalazłem problem. Losowe wartości przypisujesz do zmiennych cy1, cy2, cy3 i cy4. Resztę załatwia oryginalna bluebookowa biblioteka.
Jest tylko jeden problem - każdorazowo, po resecie, wyświetla te same wartości. Gdzieś w czeluściach forumowych lochów był temat z próbą zrobienia generatora bardziej losowych liczb. Poszukaj, może będzie bardziej nieprzewidywalnie.


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 wrz 2017, o 15:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 kwi 2013
Posty: 67
Lokalizacja: Rzeszów
Pomógł: 0

Proponuję zrobić generator losowych liczb za pomocą przetwornika ADC wbudowanego w mikrokontroler :) Albo zwiększaj w przerwaniu zmienną o 1 i po naciśnięciu przycisku wyświetlaj ją w głównym programie wysyłając na 7 seg :)



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

Strefa czasowa: UTC + 1


Kto przegląda forum

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