Forum: Mikrocontroller und Digitale Elektronik Pin toggeln lassen


von Bernd (Gast)


Lesenswert?

Hallo zusammen,

ich versuche gerade GP1(Pin3) und GP2(Pin4) eines PIC10F222 toggeln zu 
lassen. Für GP1 funktioniert es auch, aber GP2 ist immer nur low. Wenn 
ich eine LED mit Vorwiderstand zwischen Plus und den Pin Lege, leuchtet 
sie nicht, der Pin schein also gar nicht als Ausgang konfiguriert zu 
sein. Habe ich vielleicht irgendein Register vergessen?

1
#define    _XTAL_FREQ    4000000
2
3
#include    "xc.h"
4
#include    "stdint.h"
5
#include    "htc.h"
6
7
// Flash Config Word
8
#pragma config MCLRE = ON//MCLR als Reset Pin aktiv
9
#pragma config CP = OFF //Codeprotection off
10
#pragma config WDTE = OFF //Watchdog off
11
#pragma config MCPU = 1 //interner MCLR Pull Up off (Da bereits extern mit RC-Glied)
12
#pragma config IOSCFS = 0 //4MHz
13
14
void main(void)
15
{
16
    TRISGPIO = 0;
17
    OPTION = 0b00000011;
18
    while(1)
19
    {
20
        GP1=1;
21
        GP2=1;
22
        __delay_ms(100);
23
        GP1=0;
24
        GP2=0;
25
        __delay_ms(100);
26
    }
27
}

von TM F. (p_richner)


Lesenswert?

Bernd schrieb:
> Habe ich vielleicht irgendein Register vergessen?
Ich denke schon. Meines Wissens gibt es einen Befehl, der definiert, ob 
der Pin ein Ein- oder Ausgang ist. (Weiss ihn nicht mehr auswendig, da 
es schon eine zeit lang her ist, wo ich ihn gebraucht habe.)

Evtl. TRIS + Reagister

Edit: musst du für ein Ausgang das TRIS-Register nicht auf 1 pro Ausgang 
setzen?
also etwa: TRISGPIO=0b11000000

: Bearbeitet durch User
von Klausy (Gast)


Lesenswert?

Fangen die denn bei 1 an zu zählen.
Sonst müsste es evtl. OPTION = 0b00000110;

von Joe F. (easylife)


Lesenswert?

Sie fangen bei GP0 an.

von Bernd (Gast)


Lesenswert?

Problem gelöst. Mit diesen Beiden Zeilen vor der main hat es 
funktioniert:
1
    ADCON0 = 0;
2
    OSCCAL = 0;

von Volker S. (vloki)


Lesenswert?

War in deinem ersten Post ein kleiner Fehler ?

Bernd schrieb:
> Für GP1 funktioniert es auch, aber GP2 ist immer nur low.

Genau umgekehrt ?

von Bernd K. (movin)


Lesenswert?

TM FW schrieb:
> Edit: musst du für ein Ausgang das TRIS-Register nicht auf 1 pro Ausgang
> setzen?
> also etwa: TRISGPIO=0b11000000

Beim PIC ist Ausgang 0 (out) und Eingang 1 (input). Besser zu merken als 
bei anderen µC.


mfg
anderer bernd

von schnuremaus (Gast)


Lesenswert?

Hallo,

PortPin xy ^= 1;

schönen Abend.

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.