Forum: Mikrocontroller und Digitale Elektronik PIC 18F2550 SD-Karte


von Niklas D. (niklas1812)


Lesenswert?

Hallo,
ich bin bezüglich C für PICs ein echter Neuling.
Ich wollte lediglich eine Möglichkeit haben Ergebnisse des PICs 
computerfreundlich zu speichern (Sd-Karte).
Also habe ich mir das E-Book "SD Card Projects using the PIC 
microcontroller" geholt. Verstehe ich (sprachlich) alles ziemich gut.
Jetzt wollte ich eine einfache "Schreibübung" nachprogrammieren.
Der PIC erstellt eine Datei auf der SD-Karte und füllt sie mit Testtext.
Ich nutze MPLAB und C18 zusammen mit Microchip Application Libraries.
Klappt alles, lediglich meckert er (Compiler) das er die 
Registerdefinitionen:

        // Registers for the SPI module you want to use
        #define SPICON1             SSPICON1
        #define SPISTAT             SSPISTAT
        #define SPIBUF              SSPIBUF
        #define SPISTAT_RBF         SSPISTATbits.BF
        #define SPICON1bits         SSPICON1bits
        #define SPISTATbits         SSPISTATbits

wie SSPIBUF oder SSPICON1 nicht kennt.

Lasse ich die betroffene Datei SD-SPI.c weg, meckert der Linker
"MPLINK 4.38, Linker
Copyright (c) 1998-2010 Microchip Technology Inc.
Error - could not find definition of symbol 'MDD_SDSPI_InitIO' in file 
'./FSIO.o'.
Errors    : 1"

Brauch ich noch irgendwelche Dateien oder so?
Ich habe nämlich keine Ahnung was ich ändern muss :-(.
Vielen Dank für eure Hilfe,
Niklas.

von holger (Gast)


Lesenswert?

>wie SSPIBUF oder SSPICON1 nicht kennt.

Mach das I in den Namen weg.

von Niklas D. (niklas1812)


Lesenswert?

Vielen Dank.
Jetzt mäkelt er nur nich an:


        #define SPICLOCK            TRISCbits.TRISC3
        #define SPIIN               TRISCbits.TRISC4
        #define SPIOUT              TRISCbits.TRISC5
mit


Error [1205] unknown member 'TRISC4' in '__tag_69'
und
type mismatch in assignment

für die o.g. Ports herum.
Niklas

von holger (Gast)


Lesenswert?

>Jetzt mäkelt er nur nich an:


>        #define SPICLOCK            TRISCbits.TRISC3

RC3 bzw. TRISC3 gibt es bei dem PIC doch gar nicht.

>        #define SPIIN               TRISCbits.TRISC4
>        #define SPIOUT              TRISCbits.TRISC5

RC4 ist laut Datenblatt auch als Input verwendbar,
aber bei meiner uralten C18 Version ist TRISC4 nicht
definiert. Vermutlich weil das USB Interface da drauf sitzt.
Das gleiche gilt für RC5. Ausgang kann der gar nicht werden.

Das SPI Interface sitzt übrigends auf RB0, RB1 und RC7;)
Das kannst du nicht anschliessen wie es dir gerade in den
Kram passt.

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.