Wir haben für unseren Azubi ein Experimentier-Board für den PIC 16F84 angeschafft. Die ersten einfachen Programme funktionieren, aber wir haben ein Problem mit dem Timer 0, Beispiel von www.sprut.de Ich habe unten nur die Initialisierung eingefügt, wir lassen eine LED blinken. Das Programm reagiert nicht auf eine Änderung des Vorteilers. Die LED blinkt immer im gleichen Takt ? Init ; 250 Hz-Timer-Interrupt einstellen bsf STATUS, RP0 ; auf Bank 1 umschalten movlw B'10000100' ; internen Takt zählen, Vorteiler zum Timer0, 32:1 movwf OPTION_REG movlw D'131' ; 256-125=131 ((1MHz : 32 ): 125 = 250 Hz) bcf STATUS, RP0 ; auf Bank 0 zurückschalten movwf TMR0 bsf INTCON, T0IE ; Timer0 interrupt erlauben bsf INTCON, GIE ; Interrupt erlauben loop goto loop ; eine Endlosschleife
Die Initialisierung müsste soweit in Ordnung sein (Interrupt alle 4 ms mit 4 MHz Quarz). In welchem Takt blinkt die LED? Wie sieht der Rest des Programms aus?
Hallo John, wir haben mit dem Scope gemessen, sie blinkt mit einer Frequenz von 250 Hz. Das Originalprogramm kann ich erst nächste Woche anhängen. Bei den AVR Controllern habe ich keine Programme. Wir arbeiten jetzt mit den PIC's, weil sie für die Prüfung (Elektroniker für Geräte und Systeme) verwendet werden, im Moment ist da noch der 'alte' 16F84 im Einsatz. Es wird ein kleiner Konfigurationsfehler sein beim setzen der Register, vielleicht sind ein falsches Bit im Konfigurationsword. Gestartet haben wir mit dem PICkit2 Starter Kit, das ist aber nicht geeignet für den 16F84, sondern für die neueren Typen. Für den 16F84 habe ich dann ein Experimentier-Board K8048 von www.Velleman.be bestellt. Bis nächste Woche Andreas
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.