PIC18F-timer für Minuten und Stunden

#include<p18f452.h>
void T0_init(); 
void main()
{
    TRISC=0;        //Configure PortB as output Port.
    LATC=0x01;
    T0CON=0x07;     //Prescaler= 1:256, 16-bit mode, Internal Clock
    T0_init();
    while(1)
    {
            //Initialize Timer0
            LATC=0x00;
            T0_init();      //Delay for 1 sec
            LATC=0x01;
            T0_init();     //Again delay for 1 sec
    }
}

void T0_init()
{
    int a=0;

    //while(a<2)   //{
    TMR0H=0xF0;    //Values calculated for 1 second delay with 4MHz crystal
    TMR0L=0xBD;    //4/4MHz =1us=1us*prescaler=256us=1sec/256u=0xF42-(FFFF)=F0BD
    T0CONbits.TMR0ON=1;         //Timer0 On
    while(INTCONbits.TMR0IF==0);        //Wait until TMR0IF gets flagged
    T0CONbits.TMR0ON=0;                 //Timer0 Off
    INTCONbits.TMR0IF=0;                //Clear Timer0 interrupt flag
    //  a++;
    // }
}

Es ist sehr genau Verzögerung und es tut seine Arbeit, aber ich will mehr Verzögerungen wie Stunden oder Minuten. Also , was zu tun ist für längere Verzögerungen. Ich habe mit einem Zähler, der inkrementiert auf alle gekennzeichnet, aber es funktioniert nicht.

  • Jeder Körper zu Hause ich warte auf Antworten keine Antworten??
  • Ich bin mir nicht sicher, aber es ist möglich, dass Sie zum aktivieren der interrupt zuerst durch Einstellung TMR0IE=1.
  • Ist int a the counter probiert? Wenn ja, müssen Sie es erklären, 'static'.
  • Machen Sie einen Zähler-variable oder wickeln Sie Ihre delay-Funktion in einem for Schleife (oder zwei, oder drei) ist wirklich nicht schwer. Probieren Sie es aus.
  • vielen Dank für ur Sorge, aber ich muss mit timer in diesem.
  • Statisch bedeutet, dass ein Wert nicht zerstört werden oder ist es etwas anderes?
  • Ja, ein variable gibt es für die Lebensdauer des Programms. Ihre variable int a nur zugewiesen (nur besteht), wenn die Funktion " void T0_init()' wird aufgerufen.
  • Ja, und brauchen nur noch einen in dieser Funktion 🙂

InformationsquelleAutor Wasif Khan | 2014-11-19
Schreibe einen Kommentar