PIC18F4550 kann PORTE und PORTD nicht beschreiben?

OP (Firma: keine) #1600915
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
>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)
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?
OP (Firma: keine)
Manuel schrieb:
> Nö, hört sich eher an als hättest Du den IC mit nem Code für nen 18f2550
> beschrieben... Prüf das mal...

ähm verstehe ich nciht was man da falsch machen könnte?
in mplab IDE ist der 18f4550 eingestellt
Gast
Was nimmst Du als Debugger? Im  Simulator hat das bei mir auch schon 
nicht funiktioniert... Sowie auch die Timer und ähnliches nicht richtig 
funktionieren.
OP (Firma: keine)
holger schrieb:
> #define LED1_TRIS      (TRISEbits.TRISE0)  // Ref E0
>
> Versuch doch mal
>
> #define LED1_TRIS      TRISEbits.TRISE0  // Ref E0

ähm bringt auch nichts könnte mir auch nicht vorstellen was das für 
einen effekt haben sollte...
OP (Firma: keine)
Manuel schrieb:
> Ich hatte auch mal Samples bei denen ein Teil der Hardware nicht
> funktioniert hatte . Waren aber QFN-Packages.

das möchte ich jetzt mal aussschließen habe kein QFN package und habe 2 
p18lf4550 zur hand bei beidn boards das gleiche problem
Gast
Na das glaub ich eher nicht :-) Wenn Du im Projekt-View bei 
Linker-Script bist, dann rechte Maustaste->Add File und unter 
C:\MCC18\bin\LKR gibts dann alles was Du brauchst.
OP (Firma: keine)
Bernd Rüter schrieb:
> Das SSP-Modul im 18F4550 wird aber nicht benutzt ?
> USB ?

wird bisher nicht benutzt...

kanns denn damit was zu tun haben?
weil ich hab lediglich keinen zugriff auf TRISD und TRISE

mensch ich bin am verzweifeln...
Gast
"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)
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)
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)
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...
Gast
>schon gemacht und Bit ist auch auf 0 leider keine Auswirkung auf mein
>TRISE
>und TRISD

Dann ist dein PIC kaputt. Wie schon gesagt:
TRISE und TRISD lassen sich immer beschreiben.
Lies sie mal aus.
OP (Firma: keine)
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
Gast
versuch mal SPP zu aktivieren und wieder deaktivieren bevor du die TRIS 
Register setzt. Würd mich wundern wenn das was ändern würde, aber hab 
mich schon öfters gewundert :)
OP (Firma: keine)
Falk Brunner schrieb:
> Kann es ein, dass du da AVR und PIC durcheinander haust?
>
> Beim PIC muss man schreiben
>
> TRISE=0;
>
> um die Pins aus Ausgang zu definieren. Genau umgekehrt zum AVR!!!
>
> MFG
> Falk

definitiv nicht... das TRIS register lässt sich weder 1 noch 0 setzen...
Gast
Hast Du es mal in Assembler versucht?
1
   clrf trisd   ; PORT D hat nur 5 Bit
2
   clrf trise
3

4
   movlw 0xAA
5
   movwf portd
6
   movlw 0x02   ; PORT E hat nur 4 bit, RE3 ist immer input
7
   movwf porte
OP (Firma: keine)
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 ;-)
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)
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)
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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.