Nochmal danke für die Antworten. Ich habe mir das Thema Mapping jetzt in
Ruhe angesehen und mal Aufgeschrieben, was ich alles tun muss. Ich
schreibe es mal hier in Detail auf. Wäre super, wenn Ihr mir bestätigen
könntet, dass ich es richtig mache um die Fehlersuche zu verkürzen. Was
ihr wissen müsst: mein SCK liegt auf Pin 44 (RB8 bzw. RP8) und SDO auf
Pin 1 (RB9 bzw RP9).
1. I/O definieren
1 | TRISBbits.TRISB8 = 0; //Pin 44 auf Ausgang
|
2 | TRISBbits.TRISB9 = 0; //Pin 1 Ausgang
|
2. Entsperren
1 | OSCCON &= 0xFF00;
|
2 | OSCCON |= 0x0046; //Unlock-Sequenz laut Datenblatt
|
3 | OSCCON |= 0x0057; //Unlock-Sequenz laut Datenblatt
|
4 | OSCCONbits.IOLOCK = 0; //Entsperren
|
3. Pin-Funktionen definieren
1 | RPOR4 = 0x0708; //RP8 = SCK, RP9 = SDO
|
4. Sperren
1 | OSCCON &= 0xFF46; //Unlock-Sequenz laut Datenblatt
|
2 | OSCCON |= 0x0057; //Unlock-Sequenz laut Datenblatt
|
3 | OSCCONbits.IOLOCK = 1; //Sperren
|
Alternativ zu Schritt 2 und 4 kann man mit dem C30 Compiler laut
Datenblatt auch das hier schreiben.
1 | __builtin_write_OSCCONL(value)
|
2 | __builtin_write_OSCCONH(value)
|
Aber was wäre hier mein value?