Ich habe ien Konfiguration überschrieben.
1 | void setupUart(void){
|
2 | //pins auf input setzten, Pic Configuriert sich die pins nach bedarf für USART
|
3 | asm("BANKSEL TRISC");
|
4 | asm("MOVLW 0xD8"); //Tris ports auf inputstellen RX TX und SDA SCL
|
5 | asm("MOVWF TRISC");
|
6 | // asm("BSF TRISC,7"); !!!HIER DER FEHLER!! standvorher drine
|
7 | // asm("BSF TRISC,6");
|
8 |
|
9 | uartConfig = USART_RX_INT_ON & USART_TX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_BRGH_HIGH;
|
10 | baud = 103; // Baudrate 9600 = 51 (8Mhz), 103(16mhz)= 9615
|
11 |
|
12 | //Interrupt
|
13 | RCIF = 0; //RX pin flag auf 0 setzten (reset)
|
14 | RCIP = 0; //Keine hohe Priorität für den interrupt
|
15 | RCIE = 1; //Einschalten für RX Intereuppt
|
16 | PEIE = 1; //Pheripheral interuppt erlauebn (Uart ist ein Pheripharal)
|
17 | }
|
1 | void initI2C(void){
|
2 | //======================= Rausgenommen da hier eine änderung des TRISC stattgefunden hat.
|
3 | // asm("BANKSEL TRISC");
|
4 | // asm("MOVLW 0x18"); // SCL (RC3) und SDA (RC4) Auf inputstellen
|
5 | // asm("MOVWF TRISC");
|
6 |
|
7 | asm("BANKSEL SSPCON1");
|
8 | asm("MOVLW 0x28"); // Master Mode Clock einstellung (Master mode clock = FOSC/(4 * (SSPADD + 1)))
|
9 | asm("MOVWF SSPCON1"); //& SCL &SDA als serialport bestimmen
|
10 |
|
11 | asm("BANKSEL SSPSTAT"); //Slew mode dissable
|
12 | asm("BSF SSPSTAT,7");
|
13 |
|
14 | //Baudrate von I2C einstellen auf 100khz
|
15 | asm ("MOVLW 0x27"); // (FOSC/(4*xKhz))-1 = (4Mhz/(4*100Khz))-1 = 9 (8mhz = 19) (16mhz= 0x27)
|
16 | asm ("BANKSEL SSPADD");
|
17 | asm ("MOVWF SSPADD");
|
18 |
|
19 | asm("BANKSEL SSPCON2");// ack in master mode
|
20 | asm("bcf SSPCON2,5");
|
21 | }
|
ich ahbe in 2 Funktionen eine Änderung am INput des TRISC vorgenommen
als erste lege ich Die USART config fest wo ich die RX und TX pin auf
input stelle(R6 & RC7 = 0xC0)
das gleiche muss icha cuuh bei der initialisierung von I2C machen dabi
habe ich aber andere pin (RC3 & RC4 = 0x18)
Also musste ich RC6, RC7, RC3 und RC4 setzen und das ist = 0xD8
EIn blöder programmier fehler und sehr unübersichtlich das cih alles in
verschiedenen .c Datein haben.
Gruß
Tim