C embedded Ritardo in un ciclo continuo, mentre

W

winses

Guest
Ciao a tutti

Ho bisogno di un aiuto. Io sono sulla strada per la progettazione di un nuovo prodotto basato sul codice LCD.The che sto usando è di C.

Ora ho un po 'in continuo (1) loop per un'operazione RTC nel codice principale.

Ma ho bisogno di un ritardo di 2 o 3 secondi in quel ciclo (1), mentre per alcuni operation.I buzzer relative necessità di fare questo senza influire sul funzionamento RTC.

Uno può please help me .. Come posso superare problema tho.

grazie
winses

 
Il mio primo pensiero sarebbe stato: perché non è il codice di RTC scappare un timer interrupt?

Tuttavia, supponendo che hai un buon motivo per fare gli aggiornamenti RTC al di fuori di interrupt, il modo che avevo questo approccio è quello di includere un timer software all'interno del ciclo RTC in modo che ogni volta che avete bisogno per generare l'intervallo di 2-3 secondi , invece di fermare il ciclo per tutto questo tempo, si esegue il timer software in parallelo con l'RTC e, solo quando questo timer ha raggiunto il valore richiesto, allora si potrebbe eseguire qualsiasi azione è necessario eseguire dopo il ritardo.

Pseudo-codice di esempio:
Codice:unsigned char | int | delay_timeout lungo; / / selezionare il tipo di variabile in base al valore di timeout massimo richiesto ...delay_timeout = 0;

mentre

(

do_rtc_stuff ();/ / Quando è necessario per generare il ritardo buzzer, impostare delay_timeout alla non adeguata da zero ...

if (ritardo è obbligatorio)

(

= delay_timeout [numero di zecche in ritardo richiesto];

)if (delay_timeout)

(

if (- delay_timeout == 0)

(

do_buzzer_stuff (); / / questa funzione / blocco di codice necessario per eseguire al più presto ...

)

)

)

 

Welcome to EDABoard.com

Sponsor

Back
Top