Forum: Mikrocontroller und Digitale Elektronik PIC18F4680 PortD lower nibble als Eingang funktioniert nicht.


von PICuser (Gast)


Lesenswert?

Hallo Zusammen,

ich nutze das EasyPic5 Entwicklerboard und teste gerade die Taster. 
Leider funktioniert PortD.0 bis PortD.3 nicht als Eingang.
Folgenden Code verwende ich für den Test:
1
void main() 
2
{
3
  ADCON0 = 0x00; // Diasable the ADC module.
4
  ADCON1 = 0x0F; // Set ADC port to digital output I/O.
5
6
  TRISB = 0x00; // Set direction of RB port to output (all Pins can be used as output).
7
  PORTB = 0x00; // Switch all pins off.
8
9
  TRISD = 0xFF; // Set portdirection to input (RD0 to RD3 not work, why?).
10
11
  do
12
  {
13
    LATB = PORTD;
14
    Delay_ms(100);
15
  } while(1);
16
}

Mit allen anderen Ports funktioniert es nur für die unteren 4 Bits von 
PortD nicht.
Was mache ich wohl falsch?

Vielen Dank,
Tim

von txg (Gast)


Lesenswert?

Ich habe das Datenblatt gerade nicht hier, deshalb kann ich nicht 100%ig 
sagen ob es daran liegt, aber schau mal nach dem Parallel Slave Port, 
ich glaube der liegt auf den Pins.

Mfg

von holger (Gast)


Lesenswert?

>Leider funktioniert PortD.0 bis PortD.3 nicht als Eingang.

Da liegen die analog Komparatoren drauf. Schau dir mal CMCON an.

CMCON = 7;

von PICuser (Gast)


Lesenswert?

holger schrieb:
> Da liegen die analog Komparatoren drauf. Schau dir mal CMCON an.
> CMCON = 7;

SUPER!!!
Vielen Dank, nun funktioniert es!
Ich frag mich nur, warum ich das im Datenblatt überlesen hab.

Grüße Tim

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.