Hallo Forumgemeinde, ich versuche mich seit einiger Zeit mit den PIC32 anzufreunden. Als Hardware habe ich das Ethernet Starter Kit . Die Beispielprogramme von Microchip bekomme ich zum Laufen. Jetzt wollte ich einfach mal ein simples SPI-Programm erstellen. Aber schon bei so einem läppischen Projekt bin ich am verzweifeln. Mein Code sieht wie folgt aus: Mein erster Schritt war das Kopieren des Beispiel-Codes, der auf sich auf dem PIC32MX Family Reference Manual (DS61106F auf Seite 23-17) befindet. Die Initialisierung habe ich auch vorgenommen. Weiterhin habe ich das "Watch"-Fenster aktiviert und überwache SPI1CON, SPI1STAT und SPI1BUF. Ich habe festgestellt, dass das SPI1CON Register 0x00008220 bedeutet, dass der SPI in 8-Bit-Modus ist, aber der Titel sagt, dass es 16-Bit ist. Eine Idee dazu? Weiter unten ist mein Code. Ich habe kein Oszilloskop zu Hause, kann also die Signale nicht direkt überprüfen. Was will ich machen? Ich würde gerne mit meinem PIC32 eine LED ansteuern, der an einem MAX7301 angeschlossen ist. Tausend Dank für Eure Hilfe
> Weiter unten ist mein Code. Ich habe kein Oszilloskop zu Hause, kann > also die Signale nicht direkt überprüfen. #include <plib.h> #define SYS_FREQ (80000000L) #pragma config FPLLMUL = MUL_20, FPLLIDIV = DIV_2, FPLLODIV = DIV_1, FWDTEN = OFF #pragma config POSCMOD = HS, FNOSC = PRIPLL, FPBDIV = DIV_8 int j, rData; int main () { SYSTEMConfig(SYS_FREQ, SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE); // Port Initialisation and configuration AD1PCFGSET=0x4; // Set AN2 (`SS1) pin as digital TRISBbits.TRISB2=0; // Set AN2 (`SS1) as Output TRISFbits.TRISF6=0; // Set RF6 (SCK1) pin as output TRISFbits.TRISF7=1; // Set RF7 (SDI1) pin as input TRISFbits.TRISF8=0; // Set RF8 (SDO1) pin as output IEC0CLR = 0x03800000; SPI1CON = 0; rData = SPI1BUF; IFS0CLR = 0x03800000; IPC5CLR = 0x1F000000; IPC5SET = 0x0D000000; IEC0SET = 0x03800000; SPI1BRG = 0x1; SPI1STATCLR=0x40; SPI1CON=0x8220; SPI1BUF='A'; while(!SPI1STATbits.SPIRBF); for (j=0;j<10;j++);
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.