www.mikrocontroller.net

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


Autor: Niklas D. (niklas1812)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wie SSPIBUF oder SSPICON1 nicht kennt.

Mach das I in den Namen weg.

Autor: Niklas D. (niklas1812)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.