Forum: Mikrocontroller und Digitale Elektronik Countdown mit 16f877A - 20 MHz


von Mark K. (spliff)


Lesenswert?

Hallo

Ich möchte mit einem PIC 16f877A mit einem Takt von 20MHz einen 
Countdown laufen lassen (1 Stunde) und diesen auf einem LCD 2x16 mit 
HD44780 darstellen.
Hab beim Googlen aber keine Unterlagen gefunden (C++).
Jetzt wollte ich fragen:

~ Gibt es überhaupt schon eine fertige Vorlage dafür ?

~ Und ist der "nop" befehl wirklich genau 1ms lang, egal welche Takt ich 
habe?

mfg
Mark

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

>Und ist der "nop" befehl wirklich genau 1ms lang, egal welche Takt ich
>habe?

Der "nop"-Befehl ist bestimmt NICHT 1ms lang. "NOP" steht für "no 
operation" und gibt dem Prozessor für genau einen Instruction-Cycle den 
Befehl nichts zu tun.

Für Zeitaufgaben solltest du schon einen der Timer verwenden.

Schöne Grüße,
Alex

von holger (Gast)


Lesenswert?

>Hab beim Googlen aber keine Unterlagen gefunden (C++).

PICs programmiert man nicht in C++. Wenn schon dann C.

>~ Und ist der "nop" befehl wirklich genau 1ms lang, egal welche Takt ich
>habe?

Der nop Befehl ist einen Maschinenzyklus lang.
Bei 20MHz: 20MHz/4 -> 5MHz -> 0.2us.

von Mark K. (spliff)


Lesenswert?

> Für Zeitaufgaben solltest du schon einen der Timer verwenden.

und wie verwend ich einen Timer

von holger (Gast)


Lesenswert?

>und wie verwend ich einen Timer

Steht im Datenblatt. Das gibt es kostenlos (hey,hey)
bei Microchip. Oder vieleicht mal www.sprut.de lesen.

von Alex B. (Firma: Ucore Fotografie www.ucore.de) (alex22) Benutzerseite


Lesenswert?

>und wie verwend ich einen Timer

Hallo Mark,

ohne arrogant klingen zu wollen o.ä.: die Verwendung eines Timers ist 
wirklich eine Grundlage. So etwas kann man nicht in 5 Worten erklären.
Es gibt allerdings, wie schon erwähnt, ein sehr gutes PIC Tutorial auf 
www.sprut.de

Wenn während des Durcharbeitens des Tutorials spezielle Fragen auftreten 
kannst du ja gerne nochmal danach fragen.
Schöne Grüße,
Alex

von Thomas M. (thomas1123) Benutzerseite


Lesenswert?

als denkanstoss

nimm den timer1
bei 1:1 vorteiler

20^6  4  (2^16) = ~76,3 timerüberläufe pro sekunde

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.