Forum: Mikrocontroller und Digitale Elektronik PIC16F1825 will nicht so, wie ich will


von andy (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe folgedes Problem, ich habe hier ein Board mit einem PIC16F1825 
Die Funktion der Hardware ist folgende, auf dem Pin RC5 ein 100Hz PWM 
ausgeben und der Pin RA2 ist als Capture eingestellt. Die Pins RC0 und 
RA4 steuern jeweils eine Status-LED an. Das Problem, was ich habe, wenn 
ich den Timer 1 fürs Capture konfiguriere (initTimer1();), dann geht der 
Pin RA4 nicht mehr, kommentiere ich die Funktion aus, dann gehts wieder. 
Das gleiche Verhalten ist auch für den Pin RA5 zu beobachten. Die 
restlichen Pins des Ports A RA0 und RA1 gehen ohne Probleme (USART), RA3 
ist /MCLR. Der Pin RC0 (und andere freie RC-Pins) geht auch immer.

Ich habe mittlerweile alles mögliche probiert. Der Quellcode ist aufs 
Nötigste zusammengestrichen und ich finde den Fehler nicht.

Fällt irgedjemand was auf, was ich vergessen habe?

Danke im Voraus.

von andy (Gast)


Lesenswert?

Sorry, was wichtiges vergessen

Der Compiler ist: HI-TECH C Compiler for PIC10/12/16 MCUs (PRO Mode) 
V9.83

P.S. main.c wurde 2 mal eingefügt, war so nicht gedacht

von andy (Gast)


Lesenswert?

Hat denn niemand eine Idee???

von Kein Nane (Gast)


Lesenswert?

T1OSCEN  = 1;//Timer1 Oszillator aktivieren

Wieso das? Damit schaltest du einen Uhrenquarz an T1OSO/T1OSI ein. Kein 
Wunder, das RA4/RA% danach nicht mehr als Port zu gebrauchen ist.

von Andreas H. (ahz)


Lesenswert?

andy schrieb:
> PIC16F1825 will nicht so, wie ich will

Ein ähnliches Problem habe ich mit meiner Frau auch (naja, manchmal ;-)

> Fällt irgedjemand was auf, was ich vergessen habe?
Nur mal ins blaue geraten (absolut keine Zeit momentan, sry):

Mit Deiner AFCON1/2 Einstellung legst Du T1G auf den RA4. Wenn Du dann 
den Timer1 aktivierst übernimmt er den Pin, oder ?

Grüße
Andreas

von andy (Gast)


Lesenswert?

>T1OSCEN  = 1;//Timer1 Oszillator aktivieren

>Wieso das? Damit schaltest du einen Uhrenquarz an T1OSO/T1OSI ein. Kein
>Wunder, das RA4/RA% danach nicht mehr als Port zu gebrauchen ist.

Du hast recht, genau das war das Problem. Jetzt fällts mir wie die 
Schuppen von den Augen, hätte ich mir das Blockdiagramm genauer 
angeschaut, hätte ich es auch gesehen, aber nein, das läuft wie immer, 
man verrennt sich.

Danke für den Tip.

>Mit Deiner AFCON1/2 Einstellung legst Du T1G auf den RA4. Wenn Du dann
>den Timer1 aktivierst übernimmt er den Pin, oder ?

Nicht ganz, man muss dann auch die Funktion im Timer aktivieren.
Der Reset-Wert der beiden Register ist eh 0x00, das war reine 
Probiererei nach dem Motto "vielleicht bringts was" :-)

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.