PIC18F4550 kann PORTE und PORTD nicht beschreiben?

OP (Firma: keine) #1600915
Lesenswert?

Hallo,

hätte mal wieder ne Frage zur Programmierung vom PIC

und zwar möchte ich vom PIC18LF4550
PORTE & PORTD  bzw. LATE und LATD beschreiben leider lassen sich die 
zugehörigen TRISREGISTER nicht beschreiben. egal was ich mache die 
register ändern sich nicht.
Analogpins hab ich im ADCON1 Register schon deaktiviert.

meine Vermutung ist, dass man das SSP Modul irgendwie abschalten muss. 
finde im Datenblatt aber nciht die entsprechenden Register.

kann mir jemand helfen?
Grüße

Stephan
Gast #1600921
Lesenswert?

>PORTE & PORTD  bzw. LATE und LATD beschreiben leider lassen sich die
>zugehörigen TRISREGISTER nicht beschreiben. egal was ich mache die
>register ändern sich nicht.

Die Tris Register können immer beschrieben werden.
Dein Code ist falsch.
OP (Firma: keine) #1600943
Lesenswert?

sorry hier mein Code bei allen anderen registern funktionierts.
1
#define LED1_TRIS      (TRISEbits.TRISE0)  // Ref E0
2
#define LED1_IO        (LATEbits.LATE0)
3
#define LED2_TRIS      (TRISEbits.TRISE1)  // Ref E1
4
#define LED2_IO        (LATEbits.LATE1)
5
#define LED3_TRIS      (TRISEbits.TRISE2)  // Ref E2
6
#define LED3_IO        (LATEbits.LATE2)
7

8
  ADCON1 = 0b1111;    //SET all Analogchannel D I/O
9
  LED1_TRIS = 1;      //Make LED PINS as INPUTPINS
10
  LED2_TRIS = 1;      //Make LED PINS as INPUTPINS
11
  LED3_TRIS = 0;      //Make LED PINS as OUTPUTPINS

Leider ändert sich im TRISE Register nichts.
auch
LED3_IO = 1;
hat keinen effekt auf die Register.....

sonst noch jemand nen vorschlag?
Gast #1601012
Lesenswert?

"PORTA PORTB PORTC funktionieren.... nur die leds auf porte wollen nicht
angehen..."

ich kenn den PIC nicht aber nur so ne banale Frage: bist du sicher, dass 
PORTE überhaupt sourcen kann und nicht bloß sinken?
OP (Firma: keine) #1601020
Lesenswert?

MegaGünther schrieb:
> "PORTA PORTB PORTC funktionieren.... nur die leds auf porte wollen nicht
> angehen..."
>
> ich kenn den PIC nicht aber nur so ne banale Frage: bist du sicher, dass
> PORTE überhaupt sourcen kann und nicht bloß sinken?

ja ich bin mir sicher..
--> auch wenn es nicht der fall wäre
PORTE0:PORTE2 müssten zumindest als Output und oder Eingang geschaltet 
werden können. --> das steht definitiv im Datenblatt

übrigens PORTD geht auch nicht. gleiches Problem wie mit PORTE
OP (Firma: keine) #1601031
Lesenswert?

MegaGünther schrieb:
> bleibt zwar immer das selbe aber hast du schon mal versucht, das
> Register direkt zu beschreiben:
>
> TRISE=0b111;
>
ja klar habe alles durchprobiert.
bin mittlerweile schon 3 tage dran... bin heute nochmals ausgiebig das 
Datenblatt durchgegangen und im Internet rumgesucht aber nichts hat 
geholfen.

ich suche immernoch ne möglichkeit das SSP Modul zu deaktivieren....
OP (Firma: keine) #1601042
Lesenswert?

Michael H. schrieb:
> also es liegt meiner meinung nach definitiv am SPP aka PSP
>
> ich würde hier weitersuchen, irgendwie aktivierst du es wohl aus
> versehen

danke der Meinung bin ich auch....

Im prinzip müssten die Register
CMCON;
SPPCON;
SPPCFG;

dafür verantwortlich sein.
werde aber aus dem Datenblatt nicht schlau wie diese zu konfigurieren 
sind...
OP (Firma: keine) #1601072
Lesenswert?

Michael H. schrieb:
> aja vor deinen TRIS-aktionen bitte :)

logisch

holger schrieb:
> Dann ist dein PIC kaputt. Wie schon gesagt:
> TRISE und TRISD lassen sich immer beschreiben.
> Lies sie mal aus.

okilidokili

ich wechsel ihn aus.... wer hier den thread noch weiter verfolgt... 
schätze ich brauch 15- 20 min ;-), wobei ichs fast nicht fassen kann hab 
2 boards mit dem selben prozessor drauf und beide gehen nicht
OP (Firma: keine) #1601148
Lesenswert?

stephan schrieb:
> Hast Du es mal in Assembler versucht?
>
>    clrf trisd   ; PORT D hat nur 5 Bit
>    clrf trise
>
>    movlw 0xAA
>    movwf portd
>    movlw 0x02   ; PORT E hat nur 4 bit, RE3 ist immer input
>    movwf porte

nein habs in assembler noch nicht versucht... --> kann kein Assembler! 
das dürfte das Problem nun wirklich nicht sein oder doch?
dass PorTd und porte nur 4 bzw 5 bits haben ist mir bewusst.

danke trotzdem mal für eure bisherige hilfe werd mir erstmal nen 
wurstsalat machen ;-)
#1601162
Lesenswert?

Standartmäßig sind die Ports ja Inputs... Kannste denn wenigstens die 
Pegel von PORTEbits.RE1 z.B. lesen? Oder macht er da auch mucken?

Hab im Übrigen auch nen 4550 da. Wenn Du mir Deinen Code/Hex 
schickst/hochlädtst schau ich morgen gerne mal nach!

Blödsinn, vertan... ist der 2550 aber lad dennoch mal den Quelltext 
hoch... Vll kann ich was mit dem 16f877 rausbekommen...
OP (Firma: keine) #1601521
Lesenswert?

1
#define LED1_TRIS      TRISEbits.TRISE0  // Ref E0
2
#define LED1_IO        LATEbits.LATE0
3
#define LED2_TRIS      TRISEbits.TRISE1  // Ref E1
4
#define LED2_IO        LATEbits.LATE1
5
#define LED3_TRIS      TRISEbits.TRISE2  // Ref E2
6
#define LED3_IO        LATEbits.LATE2
7

8
void init_power_outputs(void){
9
  ADCON1 = 0b00001111;  //SET all Analogchannel to Digital I/O
10
  CMCON = 0b00000111;
11
  SPPCONbits.SPPEN = 0;
12
  LED1_TRIS = 0;      //Make LED PINS as OUTPUTPINS
13
  LED2_TRIS = 0;      //Make LED PINS as OUTPUTPINS
14
  LED3_TRIS = 0;      //Make LED PINS as OUTPUTPINS
15
  LED1_IO = 0;      //Switch OFF LED
16
  LED2_IO = 0;      //Switch OFF LED
17
  LED3_IO = 0;      //Switch OFF LED
18

19
}
20

21
int main(){
22
  init_power_outputs();
23
  LED1_IO = 1;      //Switch On LED
24
  LED2_IO = 1;      //Switch On LED
25
  LED3_IO = 1;      //Switch On LED
26
while(1);
27

28
}

hier mein Code in abgekürzter Form... soll ja bloß die blöde LED angehen
OP (Firma: keine) #1601596
Lesenswert?

Jungs Problem gelöst.
Jungs Problem gelöst.
Jungs Problem gelöst.
Jungs Problem gelöst.

YEEHAW.... ..... mensch

ich programmiere den PIC18LF4550 über den dedicaded Programmierport.
Wenn man laut Datenblatt den PIN NC/ICPORTS nicht auf VDD zieht. wird 
der PIC18 als 28 pinniges Device emuliert. bei mir hing der in der Luft


besten dank den Helfern.....

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren