www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Uhr zeituhr problem pic


Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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;

}

}

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat keiner eine Antwort ?

Autor: Severino R. (severino)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
thomas wrote:
> hat keiner eine Antwort ?

Bingo = Volltreffer! ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.