Forum: Mikrocontroller und Digitale Elektronik PORTA RA0 bis RA3 auf input setzen


von Zeidler (Gast)


Lesenswert?

Hallo,
Das Programm auf den PIC16F630 läuft soweit.
Nun wollte ich das Signal auf den Eingang RA0 legen. Geht leider nicht.
Auch an RA1 + RA2 Fehlanzeige. Nur an RA4 + RA5 funktioniert das. Diese 
beiden PIN sind über das Configbit auf I/O gesetzt da ich den Int. OSC 
benutze. RA3 ist disabled auch über Configbit. Mus ich in diesem PIC 
noch ein spezielles Register setzen damit ich die A0 bis A3 auf Input 
setzen kann.

Danke für eure hilfe.

Hier noch die Settings der pin's


//**********Define**********************************************
#define LEDl            PORTC.RC0     //LED low  liegt an Port RC0
#define LEDh            PORTC.RC2     //Led high liegt an Port RC2
#define SIGNAL          PORTA.RA4     //SIGNAL liegt an Port RA4
#define meml            PORTC.RC4     //Memory = schalter an VSS
#define memh            PORTC.RC5     //Memory = schalter an VSS

//**********************Prototype*******************************
void auswertung(void);

//**********************GlobalVariable**************************
int count;
int werth;
int wertl;




void main(void) {           // Hauptprogramm
     TRISC = 0x30;          // set PORTC 0-3=output, 4+5=input
     PORTC = 0x30;          // set PORTC 0-3 0V

von Felix A. (davinciclaude)


Lesenswert?

Sind die Pins evtl beim POR als Analogeingänge konfiguriert?

von Zeidler (Gast)


Lesenswert?

Nein. Der 16F630 hat keinen A/D Wandler, Somit gibt es auch kein ANSEL 
Register

KHZ

von Volker S. (vloki)


Lesenswert?

Warum postest du nicht den Code der die Eingänge konfigurieren soll? 
(Tippfehler???)

von Thomas E. (picalic)


Lesenswert?

Zeidler schrieb:
> Nein. Der 16F630 hat keinen A/D Wandler, Somit gibt es auch kein ANSEL
> Register

Das zwar nicht, wohl hat er aber einen Comparator, weshalb nach einem 
Reset die Pins ebenfalls als "analog" konfiguriert sind.
Setze die drei Steuerbits (CM2:CM0) im COMCON-Register auf 1, dann sind 
die Portpins digital.

von Volker S. (vloki)


Lesenswert?

Thomas E. schrieb:
> Das zwar nicht, wohl hat er aber einen Comparator,

Kennst du den, oder hast du in das Datenblatt bei Port A geschaut ;-)

@KHZ - es steht gleich auf der ersten Seite zu PortA. EXAMPLE 3-1: 
INITIALIZING PORTA und die "Note" direkt darüber...

von Zeidler (Gast)


Lesenswert?

Nein das war kein Tippfehler.
Ich habe das Programm so gepostet wie das Programm Funktioniert.
Allerdings, zum setzten des PORTA braucht man keine Einstellung, da lt. 
Datenblatt der PORTA als Eingang configuriert wird. Nach POR.

Gruß KHZ

von Zeidler (Gast)


Lesenswert?

Das mit dem COMCON Register ist vermtl. der heiße Tipp.
Probiere ich mal aus und melde mich dann wieder.
Gruß KHZ4

von Zeidler (Gast)


Lesenswert?

Thomas E. schrieb:
> Setze die drei Steuerbits (CM2:CM0) im COMCON-Register auf 1, dann sind
> die Portpins digital.

Das war des Pudels Kern.

Vielen Dank

Volker S. schrieb:
> @KHZ - es steht gleich auf der ersten Seite zu PortA. EXAMPLE 3-1:
> INITIALIZING PORTA und die "Note" direkt darüber...

Das habe ich zwar gelesen, habe dem aber kkeine Bedeutung beigemessen.
Aber jetzt klappt alles.

von Thomas E. (picalic)


Lesenswert?

Volker S. schrieb:
> Kennst du den, oder hast du in das Datenblatt bei Port A geschaut ;-)

Beides - der 16F630 wird auch vom alten "picalic" unterstützt, aber da 
das schon eine Weile her ist, habe ich auch nochmal ins Datenblatt 
geschaut - will ja hier schließlich keine alternativen Fakten 
verbreiten! ;)

von Volker S. (vloki)


Lesenswert?

Die "Notes" am Anfang der Kapitel sind immer von Bedeutung!
(Ich kannte den PIC auch nicht und habe erst nach dem Hinweis von Thomas 
E nachgeschaut, ob da nicht ein entsprechender Hinweis ist ;-)

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.