Forum: Mikrocontroller und Digitale Elektronik Uhr zeituhr problem pic


von thomas (Gast)


Lesenswert?

hallo, ich habe ein problem ,
ich arbeite mit dem pic und möchte ich eine Zeituhr realisieren ,

: Zeituhr über Timer 1 interrupt , Sekunde und die Variablen
// Sekunde, Minute und Stunde werden neu berechnet und an der 
LCD-Anzeige ausgegeben.
habe ich den Quarz für den Timer 1 32768khz

 timer1 zählt bis 65536 dann löst ein interrup aus
ich habe ein counter varieble definiert die sich höch inkrementiert wenn 
ein interrupt ausgelöst wird wie unten im programmteil zu sehen ist
mein problem ist , wie oft soll dies interrupt stattfinden damit ich 
eine sekunde habe
unten habe ich dieses wert mit 125 initialisiert was nicht stimmt , kann 
mir jemand klären wie ich dies rechne ?
ich habe versucht so zu finden
1/32768khz = 0.03051*10E-6 das ist danndie periode für oszi
timer zählt bis 65536 dann löst einen interrupt dann ist die periode 
bis einer interrupt stattfinden 65536*0.03051*10E-6 =0.002 also muss 
500mal interrupt passieren damit ich 1 sekunde habe oder ?
also counter==500 muss sein oder
void high_prior_InterruptHandler(void)
{
  // Timer 1 Interrupt-Service Routine
counter++;

if(counter==125)
{
counter=0;
Sekunde++;
}

if(Sekunde==60)
{
Sekunde==0;
Minute++;
}

if(Minute==60)
{
Stunde++;
Minute=0;
}

if(Stunde==24)
{
Stunde=0;

}

}

von Severino R. (severino)


Lesenswert?

thomas wrote:

> habe ich den Quarz für den Timer 1 32768khz

Sicher, dass der Quarz nicht 32768 Hz hat?

Dann wären nämlich:
> 1/32768 Hz != 0.03051*10E-6

und Deine Rechnung stimmt nicht mehr.

von thomas (Gast)


Lesenswert?

ich weiss nicht genau da in der Aufgabe bei uns einmal 32768khz
 und einmal 32768 hz steht , es kann sein ,dass ist ein fehler ,aber 
wenn es 32768 hz dann jedes interrupt braucht 2 sekunde oder ?

von Severino R. (severino)


Lesenswert?

thomas wrote:
> ich weiss nicht genau da in der Aufgabe bei uns einmal 32768khz
>  und einmal 32768 hz steht , es kann sein ,dass ist ein fehler ,aber
> wenn es 32768 hz dann jedes interrupt braucht 2 sekunde oder ?

Bingo!

von thomas (Gast)


Lesenswert?

hat keiner eine Antwort ?

von Severino R. (severino)


Lesenswert?

thomas wrote:
> hat keiner eine Antwort ?

Bingo = Volltreffer! ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.