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; } }
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.