PIC24FJ32GA002 und I2C Routine

OP #688692
Lesenswert?

Habe jetzt so initialisiert,
passiert nichts am Bus!!! nicht einmal die Start-sequenz.
Habe die I/O auch richtig initialisiert, PullUps sind auch vorhanden.
Configuration, alles ist mehrmals überprüft.
Ich glaube das das an Compiler liegt (benutze dsPICC 6.0 von HiTech
 + MPLAB letzte update)
1
  // I2C Initialisieren...
2

3
    I2C1CON = 0;
4
    I2C1CONbits.SCLREL = 1;
5
    I2C1CONbits.I2CEN = 1;  
6
    I2C1CONbits.IPMIEN = 0;
7
    I2C1BRG = 39;
8
    MI2C1IE = 0;
9
    SI2C1IE = 0;
10
while(1){
11

12
    I2C1CONbits.SEN = 1;    // set start condition
13
    while (I2C1CON & 0x1F)
14
  ;
15
  DelayMs(1);
16
    I2C1TRN = 200;    // initiate transmission
17
    while (I2C1STATbits.TRSTAT)  // wait until completed
18
  ;
19
    I2C1CONbits.PEN = 1;    // set stop condition
20
    while (I2C1CON & 0x1F)
21
  ;
22
InitLCD();
23
ClearLCD();
24
}
Gast #688707
Lesenswert?

Hallo zusammen,

ich habe zurzeit das gleiche Problem mit em PIC18F458. Ich arbeite mit 
MPLAB 7.6 .

Kann es sein, dass MPLAB en I2C Bus gar nicht richtig simulieren kann?

Bei mir passiert auch am Testboard nichts... weder eine Start Sequenz 
noch ein Interrupt obwohl ich alle Register befüllt habe.

HELP!

Gruß
Michael
Gast #689801
Lesenswert?

Also ich hab ein Signal auf den Bus bekommen.
Ich hab bevor ich mit dem Senden beginne einfach mal ein Stop Bit 
erzeugt... danach hats dann funktioniert....

kann mir jmd mal den logischen Ablauf einer Nachrichtensendung 
beschreiben? auf welche Register muss ich acht geben und reagieren? evtl 
ein C-Code Beispiel wäre cool..

Gruß
Michael

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren