Home Forum MICROCONTROLLORI calcolo delay

Questo argomento contiene 5 risposte, ha 3 partecipanti, ed è stato aggiornato da  OPGUIDO 2 anni, 9 mesi fa.

Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
  • Autore
    Articoli
  • #58586

    OPGUIDO
    Membro

    Ciao, mi spiegate in modo semplice come si calcola una frequenza col Delay?
    Es. voglio far lampeggiare un led a 450Hz e uno a 1200Hz su un PIC 18F4550 con un quarzo esterno da 4MHz.

    #70861

    Emanuele
    Keymaster

    La soluzione piu semplice è utilizzare 2 timer (se ne hai liberi)

    Imposti i due timer per generare un interrupt ciascuno alle frequenze desiderate e poi, sotto interrupt fai il toggle del pin collegato al relativo led.

    Ovviamente T=1/f ed un duty cycle 50% = T/2

    #70871

    Una curiosità, ma un led lampeggiante a quelle frequenze per fare cosa ?

    #70873

    OPGUIDO
    Membro

    Ancora una curiosità, i timer funzionano solo se abilitati agli interrupt? Se non è cosi mi porti un esempio in C.
    Grazie 14

    #70874

    Emanuele
    Keymaster

    I Timer dei PIC sono dei registri che si incrementano secondo un prescale o postscaler programmabile. Possono essere a 8 o 16bit. In alcuni PIC anche a 32bit con l’unione di 2 timer. La loro funzione è unicamente di settare un bit (flag) quando vanno in overflow e quindi ricominciare a contare da 0.

    Questo bit può essere sia monitorato in polling che abilitato a generare un interrupt.
    Quindi o lo vai a controllare tu periodicamente oppure aspetti che ti chiama lui (isr)
    Ovviamente lo devi azzerare una volta letto, ovviamente è piu comodo usarlo sotto isr (interrupt service routine)

    Hai letto questo?

    http://it.emcelettronica.com/picmicro-cult-gli-interrupt

    #70879

    OPGUIDO
    Membro

    Grazie, ora ho le idee piu chiare.

Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)

Devi aver eseguito l’accesso per poter rispondere a questa discussione.