long délai utilisant un programmateur

J

Jack / / Ani

Guest
Salut à tous,

Toute idée de comment créer long délai moyen de débordement minuterie 16f628a interruption, de sorte que CPU est libre de faire autre tâche?J'ai besoin d'une fonction écrite dans le CSC PIC pour le même?

Merci

 
Programme de la minuterie pour interrompre à sa recharge des valeurs plus longues, puis à la routine de service d'interruption, incrémenter une variable, si la variable correspond à votre délai souhaité, puis excute votre sous-routine souhaitée.

 
Timeout Boolean; / / Drapeau.Si c'est vrai, ce que vous voulez après l'expiration du délai.
statique int8 gtimer0_overflow;

# Int_timer0
timer0_isr ()
(
if (- gtimer0_overflow == 0)
Timeout = TRUE;
)Dans votre code principal, vous devez installer le timer0, initialiser le gtimer0_overflow variable globale.Par exemple,setup_timer0 (RTCC_INTERNAL | RTCC_DIV_256)
Timeout = FALSE;
gtimer0_overflow = 3; / / la variable de contrôle de délai d'attente de longueur
enable_interrupts (int_timer0)
enable_interrupts (GLOBAL)

while (! Timeout); / / ne rien faire si Timeout = FALSEL'exemple de configuration-dessus d'un délai de 10 sec pour PIC18 MCU, 20MHz oscillateur.Notez que Timer0 est de 16 bits pour PIC18.

 
Merci à tous, je veux un des ports broche de sortie pour aller élevé pour 10sec, puis passez 10secs bas et continuer à répéter ce genre.

Toute aide .....

 
# Int_timer0
timer0_isr ()
(
if (- gtimer0_overflow == 0)
(
Timeout = TRUE;
output_toggle (PIN_D1);

)Ce sera son tour PIN_D1 on / off pendant 10 secondes.

 
lguancho Salut,

Merci beaucoup pour votre réponse utile.Output_toggle est utile fonction très ici, mais malheureusement il n'est pas mentionné dans le fichier d'aide PIC CCS!J ai un doute à gauche,

Est-ce que la sortie peut être élevée ou faible pour la première fois, lors de l'utilisation output_toggle () et comment puis-je changer?

Comment avez-vous calculé délai pour un cycle de débordement de minuterie simple?

Merci encore

 
Premièrement, vous pouvez initialiser la broche de sortie à haute ou basse
comme

output_high (PIN_D1), puis vous activez le timer1 interruptions.Lorsque timer1 débordements, PIN_D1 sera faible.

Calcul Delay:

20MHz/4/256 = 19531.25Hz => Timer1 une augmentation tous les sec 1/19531.25 = 51.2us

Timer1 débordement si elle reachs 65536 = 65536X51.2us> = 3.3sec

Définissez la variable de débordement à 3, le retard ie = 3x3.3 ~ 10 sec.

 

Welcome to EDABoard.com

Sponsor

Back
Top