12F629 Timer0

Gast #329369
Lesenswert?
• ▲
▼
Hallo Leute.

Ich muss mit dem PIC12F629 alle 200us einen Interrupt erzeugen. Ich
habe auch schon Interrupts im Abstand von 20us zusammengebaracht,
schaffe es aber nicht, diesen Abstand auszudehnen. Das müsste doch mit
dem Prescaler funktionieren, oder? Hab ich auch schon Probiert, hat
aber nicht funktioniert.

Bitte helft mir

Mfg Flo
Gast #329372
Lesenswert?
• ▲
▼
4017? Nicht schlecht, 16 Pins zusätzlich zu einem 8-Pinner nur wegen den
200us... :-)
Wenn wir mal von den internen 4MHz ausgehen, mit denen der PIC gerne
mal läuft, dann guggst Du erst mal, wie Du Deinen Prescaler einstellen
musst. Der Timer wird mit 1MHz getaktet, 200us willst, d.h. Du darfst
den Prescaler auf 1:1 stellen. Jetzt kommt das wichtige: Innerhalb der
Interrupt-Service-Routine musst Du den Timer selber neu laden, damit
der Interrupt nicht alle 256us kommt sondern früher. Beachten musst Du
weiterhin, wieviele Takte schon abgearbeitet wurden: Hier ein
Beispiel:

; ****** Interrupt-Service ********************************

           org     4

                                  ; 4
           movwf   IntW           ; 1  ; Register retten!
           movf    STATUS,W       ; 1
           movwf   IntStat        ; 1
           movlw   200-9          ; 1  ; Timer nachladen
           movwf   RTCC           ; 1
                                  ;---
                                  ; 9

           bcf     INTCON,RTIF    ; Interrupt zurücksetzen
Gast #329374
Lesenswert?
• ▲
▼
Sorry hatte länger keine Zeit zum posten.
Hab meinen Fehler schon gefunden (trotzdem danke!!!). Die Interrupts
hauen jetzt hin. Jetzt hab ich aber schon ein neues Problem.
Wie würdet ihr eine Pulsweitenmodulation ohne CCP durchführen. Kann ich
dazu den zweiten Timer (Timer1) benutzen? Dann müsste ich doch 2 ISR
machen, oder? Geht das überhaupt?

mfg Flo

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.