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



Teraz jest 20 cze 2026, o 19:42


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 31 ]  Przejdź na stronę 1, 2  Następna strona
Autor Wiadomość
PostNapisane: 10 lis 2015, o 22:46 
Offline
Użytkownik

Dołączył(a): 09 kwi 2015
Posty: 44
Pomógł: 0

Witam, jak przeprowadzić losowanie liczb najlepiej 0 i 1 na Atmedze32? Ostrzegam że opcja z ADC niestety nie wchodzi w grę. Są jakieś funkcje która wylosuje mi taką liczbę ? a jak nie to czy da się to obejść?



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

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

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

Tylko że troszkę zajmuje miejsca.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 lis 2015, o 23:53 
Offline
Użytkownik

Dołączył(a): 09 kwi 2015
Posty: 44
Pomógł: 0

troszkę tzn?

i jak wykonać losowanie 2 liczb? wystarczy rand(1) i losować będzie albo 0 albo 1?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2015, o 00:08 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
To jest pamięciożerne, ale spróbuj
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

i porównaj o ile spuchł Ci kod.


Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2015, o 00:09 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Akurat mam otwarty projekt na XMega to użycie podstawienia i = rand() dorzuca mi 326 bajtów

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2015, o 00:56 
Offline
Użytkownik

Dołączył(a): 09 kwi 2015
Posty: 44
Pomógł: 0

A jakiegoś lżejszego sposobu nie ma ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2015, o 04:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 cze 2013
Posty: 988
Lokalizacja: Byram, MS 39272
Pomógł: 55

Możesz napisać swój własny generator liczb pseudolosowych
http://fatcat.ftj.agh.edu.pl/~chwiej/mn/generatory.pdf

_________________
Pomysły na podpis - wyślij SMSa +1 769 243 0011



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2015, o 12:00 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 wrz 2012
Posty: 73
Pomógł: 2

Timer 16 bit, losuj z zakresu 0-65535. parzysta wartość OCR to 0, nieparzysta 1. Aczkolwiek jeśli losować będzdiesz w równych odstępach czasu to losowością tego nie można nazwać ;) Czy możesz powiedzieć, dlaczego ADC odpada?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2015, o 17:38 
Offline
Użytkownik

Dołączył(a): 09 kwi 2015
Posty: 44
Pomógł: 0

ponieważ nie mam dostępu do tego pinu płytka zrobiona itd. :) Ale dziękuje za funkcje rand :) działa bardzo dobrze nawet :) tylko kolega Podał rand()%1 a do losowania 0 lub 1 potrzebujemy rand()%2 :) A i dodawanie biblioteki nie było konieczne :)


mam pytanie czy ktoś kiedykolwiek obsługiwał magnetyczny czujnik otwarcia na AVR? bo w sumie nie wiem jak to ugryźć :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2015, o 17:43 
Offline
Użytkownik

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

masterix napisał(a):
mam pytanie czy ktoś kiedykolwiek obsługiwał magnetyczny czujnik otwarcia na AVR? bo w sumie nie wiem jak to ugryźć


jaki ?? są z halem , kontaktronem ...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2015, o 17:54 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
masterix napisał(a):
do losowania 0 lub 1 potrzebujemy rand()%2

...oczywiście - MAX+1 - przepraszam za pomyłkę.
O braku potrzeby #include <stdlib.h> nie wiedziałem.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 11 lis 2015, o 18:22 
Offline
Użytkownik

Dołączył(a): 09 kwi 2015
Posty: 44
Pomógł: 0

http://allegro.pl/mini-kontaktron-czolo ... 42649.html

dokładnie taki :) czyli KONTAKTRON



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 10:47 
Offline
Użytkownik

Dołączył(a): 20 lip 2015
Posty: 83
Pomógł: 6

Działa tak jak zwykły button :) Zwarte/rozwarte. Chyba filozofii nie ma żadnej w tym.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 11:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

Jeśli adc odpada to może masz jakiś inny wolny pin? Robisz prosty generator szumu na zaporowo spolaryzowanym złączu i czytając po kolei bity z tego portu i składając ich do kupy masz dowolnej długości PRAWDZIWĄ losową liczbę.

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 12:26 
Offline
Użytkownik

Dołączył(a): 09 kwi 2015
Posty: 44
Pomógł: 0

aaaaa no skoro mówisz że jak zwykły buton to będę coś działał.

Sylwek dzięki za rade ale ten watek już rozwiązany funkcja rand()



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 13:21 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

masterix napisał(a):
Sylwek dzięki za rade ale ten watek już rozwiązany funkcja rand()



hmm... coś mi mówi, że ta losowość będzie za każdym razem taka sama po włączeniu procka korzystając z tej funkcji, ale może się mylę... ;)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 13:32 
Offline
Użytkownik

Dołączył(a): 09 kwi 2015
Posty: 44
Pomógł: 0

testowałem żeby wyświetlało mi liczby na wyświetlaczu jakie wylosowało i nie było za każdym razem tak samo :) w sennie po uruchomieniu procka :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 13:42 
Offline
Moderator
Avatar użytkownika

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

SylwekK napisał(a):
ale może się mylę...

Nie mylisz się ;)

_________________
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: 12 lis 2015, o 14:01 
Offline
Użytkownik

Dołączył(a): 09 kwi 2015
Posty: 44
Pomógł: 0

Ok może i się powtarza :) tylko ze ja losuje co sekundę wykorzystując timer :) wiec w zależności od tego jak długo użytkownik będzie uzbrajał ładunek będzie inna wartość :)

A co do czujnika otwarcia, mam pytanko, próbuje go zaprogramować jak buton :) jest pewien problem ;)

ustawiłem sobie że gdy jest stan wysoki na tym pinie procesora to świeci mi kontrolka jak niski to włącza mi się buzzer.

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


Problem w tym ze mimo ze warunek jest w pętli głównej działa tylko raz.. tzn ze jeżeli magnes jest oddalony świeci kontrolka jak przybliżę włącza się brzęczyk i potem mogę sobie tym machać a on i tak ciągle brzęczy,

Pomysły jak to obejść?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 14:26 
Offline
Użytkownik

Dołączył(a): 20 lip 2015
Posty: 83
Pomógł: 6

Trochę ciężko wróżyć z samych definów itp :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 14:33 
Offline
Użytkownik

Dołączył(a): 09 kwi 2015
Posty: 44
Pomógł: 0

już tłumaczę :)

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


i KRAW_POD inicjiuje na początku main() :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 14:55 
Offline
Użytkownik

Dołączył(a): 20 lip 2015
Posty: 83
Pomógł: 6

Czy przypadkiem definicja KRWA nie powinna wygladac tak?

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


swoją chyba nadpisujesz wartość rejestru PORTC :) Dodatkowo taki if (jak twój pierwszy) chyba sprawdzi czy masz stan niski, nie wysoki

Trochę masz pogmatwany też kod, spróbuj może zrobić tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


zmienna kraw_stan jest nie potrzebna. Sam jestem początkujący, ale na moją logikę wydaje mi się że powinno pomóc :P


Autor postu otrzymał pochwałę


Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 16:18 
Offline
Użytkownik

Dołączył(a): 09 kwi 2015
Posty: 44
Pomógł: 0

Dziekuje bardzo :) rzeczywiście pomogło :P kurde czasami się zastanawiam dlaczego nie widze takich kurde błędów :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 16:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

masterix napisał(a):
kurde czasami się zastanawiam dlaczego nie widze takich kurde błędów

...bo czasem kurde wystarczy "świeże oko" które popatrzy pod innym kątem. ...kurde :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 19:24 
Offline
Użytkownik

Dołączył(a): 09 kwi 2015
Posty: 44
Pomógł: 0

A też i racja :P A ma ktoś może pomysł jak tak sobie gadamy jak np. przyspieszyć minutnik ? Bo jeżeli z przerwania np. co 0.5 sekundy to blokuje sobie główną pętle while.. gdzie mam klawiaturę i nie mogę nic w tym czasie zrobić.. I też tak się zastanawiam co z tym zrobić..



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 20:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

No panie, chyba czas najwyższy powiedzieć definitywne "do widzenia" takim szkodnikom jak "_delay()" i przejść na timery programowe, a rozwiązanie samo się nasunie ;)

_________________
http://www.sylwekkuna.com



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 20:01 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
masterix napisał(a):
Bo jeżeli z przerwania np. co 0.5 sekundy to blokuje sobie główną pętle while.. gdzie mam klawiaturę i nie mogę nic w tym czasie zrobić..

Coś chyba nie nadążam - przerwanie blokuje Ci klawiaturę, a te _delay_ms(200) już nie?
Z resztą jak to mówi przysłowiowa wróżka nad legendarnymi fusami: nie mam z czego wróżyć.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 20:27 
Offline
Użytkownik

Dołączył(a): 09 kwi 2015
Posty: 44
Pomógł: 0

czyli delay usunąć a opóźnienia wszystko na timerze, tak ?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 20:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Ja np.: potrzebowałem takiego "tykacza" do flagi i coś_tam do mrugania , więc dołożyłem do timera odliczającego sekundy takie coś:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Z resztą wszystko tylko nie _delay'e.

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 12 lis 2015, o 20:44 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 paź 2013
Posty: 1988
Lokalizacja: Lipsko
Pomógł: 125

masterix napisał(a):
czyli delay usunąć a opóźnienia wszystko na timerze, tak ?

Tak. Zwróć uwagę, że jeśli, np. przerwania dekrementują timer programowy co 100ms to musisz początkowo wpisać wartość 10 za każdym razem gdy chcesz odliczyć 1s. Jeśłi teraz zmienisz tą wartość na 5 to będziesz miał odliczanie co 0,5s. Istotną rzeczą w tym wszystkim jest to, że kompletnie nie zmieni Ci się czas wykonywania pętli głównej.

_________________
http://www.sylwekkuna.com



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: 31 ]  Przejdź na stronę 1, 2  Następna strona

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


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