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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.