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



Teraz jest 28 kwi 2024, o 06:01


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 
Autor Wiadomość
PostNapisane: 30 gru 2013, o 21:15 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 mar 2013
Posty: 26
Pomógł: 0

Witam, bawię się ostatnio kostką ledową którą zawsze chciałem sobie wykonać a nigdy nie było czasu :D
Problem mój polega na tym iż chciałbym w pewnych efektach aby jedna z diód była wybierana losowo.

Porobiłem definicje dla preprocesora w stylu:

#define LED1_PIN (1<<PB1) itd.

Ułożyłem 9-elementową tablicę z tych wartości i chciałbym aby dało się losować dowolny jej element.
Eclipse zgłasza mi tutaj błąd że funkcja random posiada zbyt wiele argumentów. Szczerze niezbyt wiem o co chodzi.
Czy jest jakieś prostszy sposób wyjścia z tego problemu??



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

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

a co mają te definicje preprocesora z tablicą i random ?

Może pokaż co zmajstrowałeś w swoim kodzie dotąd ?

_________________
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: 30 gru 2013, o 23:51 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Jest to wróżbiarstwo z mojej strony, ale myślę że mniej więcej wiem o co Kol. chodzi :)
Jeżeli dla funkcji random zostało podane te 9 elementów tablicy (9 arg. funkcji) to faktycznie kompilator może tego nie rozumieć :D
Idea wbudowanej funkcji nie jest taka, że podajemy jej (przykładowo) 9 kart, a ona nam zwróci jedną z nich ;)
Funkcja ta nie pobiera żadnych argumentów, a zwraca liczbę z przedziału od 0 do RAND_MAX (32767).

Pomijam fakt, że należałoby najpierw wywołać funkcję srand i zainicjalizować generator liczb pseudolosowych jakąś losową wartością (powiedzmy czasem), ale dla prostych zastosowań może to nie mieć znaczenia...

Jeśli nie chodziło o poniższy kod to musisz doprecyzować swoją wypowiedź, bo tak jak pisze Mirek, nie wiele z Twojego postu wynika...

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: 3 sty 2014, o 11:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 30 mar 2013
Posty: 26
Pomógł: 0

O tutaj za pomocą kolegi atmel udało mi się dość do żądanego efektu:) Twój szablon wyjaśnił mi zastosowanie tej funkcji :) Dzięki serdeczne, pozdrawiam.

Ja chciałem po prostu aby wartość zwraca na od razu była wartością ustawienia portu w stan wysoki. Sposób z funkcją switch bardzo mi pomógł :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2014, o 22:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 07 kwi 2013
Posty: 418
Lokalizacja: Rzeszów
Pomógł: 102

Cieszę się, że udało mi się pomóc.
Chciałem zademonstrować sam schemat działania, który wydawał mi się najbardziej przejrzysty na początek (wiem że niezbyt efektywny :/), ale efekt, który chciałbyś mieć jest możliwy do uzyskania, powiedzmy za pomocą wskaźników (tablica wskaźników na poszczególne diody i funkcja której parametrem byłby wylosowany indeks). Jednak sam użyłbym dobrodziejstwa obiektowości języka C++ i ewentualnie szablonów.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sty 2014, o 23:40 
Offline
Moderator
Avatar użytkownika

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

saper152 napisał(a):
Dzięki serdeczne, pozdrawiam


Przydałoby się kliknąć klawisz "POMÓGŁ" koledze atmel hmmm ? jak myślisz ?

_________________
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  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 6 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

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