logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Losowy port - Czy jest funkcja która pozwoli mi wysłac napięcie na losowy port?

Kabaś 02 Sty 2017 19:46 1050 9
REKLAMA
  • #1 16168096
    Kabaś
    Poziom 2  
    Programuje atmege i potrzebuję, żeby po dostaniu sygnału z PA1, zaczynała nieskończoną pętlę, która wysyła na 500 ms napięcie na losowy port PCx co 3 sekundy. Czy jest jakaś funkcja która umożliwi losowanie portu?
  • REKLAMA
  • #3 16168874
    krru
    Poziom 33  
    Tyle, że w Atmedze liczba losowa (a nawet pseudolosowa) to nie jest trywialny problem.
  • REKLAMA
  • Pomocny post
    #4 16168911
    piotrek0207
    Poziom 20  
    Można wykorzystać programowy rejestr przesuwny ze sprzężeniem zwrotnym. Problem będzie z uzyskaniem losowego ziarna, a ponieważ ziarno będzie małe sekwencja będzie się szybko powtarzała. Ewentualnie zewnętrzny oscylator pierścieniowy na bramkach NOT:
    https://web.jfet.org/hw-rng.html

    W powyższym układzie pominąłem tranzystor generujący szum, a jedynie połączyłem wyjście ostatniej bramki z wejściem. Wyniki były ciekawe.
  • REKLAMA
  • #5 16170169
    Kabaś
    Poziom 2  
    szymon122 napisał:
    Liczba pseudolosowa która będzie wybierała port.
    a nie musze najpierw ustawić portu jako parametru funkcji?
  • Pomocny post
    #6 16170533
    piotrek0207
    Poziom 20  
    uint8_t numerportu funk_wyb_portu(uint8_t liczba_los){
    numerportu=liczba_los mod liczba_portow;

    return numerportu}
  • REKLAMA
  • #8 16171036
    excray
    Poziom 41  
    To wygenerowania losowego ziarna można wykorzystać przetwornik ADC. Puszczamy go na pełnej prędkości, dzięki czemu najmłodsze bity obarczone są dużym szumem i pobieramy 8-32 wyniki. Nasze ziarno składamy w ten sposób, że przesuwamy naszą zmienną w lewo a na najmłodszej pozycji zmiennej umieszczamy najmłodszy bit z pomiaru. I tak 8-32 razy.
  • #9 16171052
    dondu
    Moderator na urlopie...
    excray napisał:
    To wygenerowania losowego ziarna można wykorzystać przetwornik ADC. Puszczamy go na pełnej prędkości, dzięki czemu najmłodsze bity obarczone są dużym szumem i pobieramy 8-32 wyniki. Nasze ziarno składamy w ten sposób, że przesuwamy naszą zmienną w lewo a na najmłodszej pozycji zmiennej umieszczamy najmłodszy bit z pomiaru. I tak 8-32 razy.

    Przykład w linku w poprzednim moim poście.
  • #10 16171075
    excray
    Poziom 41  
    Rzeczywiście. Przejrzałem pobieżnie artykuł ale linków nie sprawdzałem.
REKLAMA