Pic18f i2c AS5600 Hilfe Benötigt

OP #7468152
Lesenswert?

Moin,

...ich stehe grade maximal aufn Schlauch und brauche mal ein Gedankenstoss. Ich hatte das alles schonmal funktionierend aber leider ist die Datei verschwunden ò_Ò. Ich möchte derzeit erstmal nur den RAW Angle ausm AS5600 auslesen mit meinen PIC18f. Code übern MCC generiert weil ich weiß, dass es mal funktioniert hat.

Aber es kommt nur komsiches Zeug bei raus. Ausgeben lasse ich es aufn einen kleinen OLED Display. Lese ich nur ein 1 byte aus, springt der Wert wild hin und her.

Da der RAW Angle laut Tabelle auf 8bit aufgteilt ist, dachte ich, lese ich 1Byte aus dem register...

Derzeit sieht es so aus

1
 uint16_t data;     
2
    while(1){
3
        
4
        data = i2c_read1ByteRegister(0x36,0x0D);      
5
        
6
        Oled_FillArea(2, 23, 93, 62, PIXEL_0);
7
        sprintf(b, "%01d",data );        
8
        Oled_Text(b, 30, 30);
9
        __delay_ms(1000);
10
    }

Das sind die zwei MCC Funktionen

1
uint8_t I2C1_Read1ByteRegister(i2c1_address_t address, uint8_t reg)
2
{
3
    uint8_t returnValue = 0x00;
4
    
5
    while(!I2C1_Open(address)); // sit here until we get the bus..
6
    I2C1_SetDataCompleteCallback(rd1RegCompleteHandler,&returnValue);
7
    I2C1_SetBuffer(&reg,1);
8
    I2C1_SetAddressNackCallback(NULL,NULL); //NACK polling?
9
    I2C1_MasterWrite();
10
    while(I2C1_BUSY == I2C1_Close()); // sit here until finished.
11
    
12
    return returnValue;
13
}
14

15
uint16_t I2C1_Read2ByteRegister(i2c1_address_t address, uint8_t reg)
16
{
17
    uint16_t returnValue =0x00; // returnValue is little endian
18

19
    while(!I2C1_Open(address)); // sit here until we get the bus..
20
    I2C1_SetDataCompleteCallback(rd2RegCompleteHandler,&returnValue);
21
    I2C1_SetBuffer(&reg,1);
22
    I2C1_SetAddressNackCallback(NULL,NULL); //NACK polling?
23
    I2C1_MasterWrite();
24
    while(I2C1_BUSY == I2C1_Close()); // sit here until finished.
25
  
26
    return (returnValue << 8 | returnValue >> 8);

Was mache ich grade grundlegend flasch (außer den MCC zu benutzen...) ?

Angehängte Dateien:

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