Hilfe benötigt, um Daten in der richtigen Reihenfolge in einen Buffer zu schreiben.



  • Hallo zusammen. Ich bin am verzweifeln... vorne weg. Ich habe schon etliche Stunden mit einer KI geredet zum Thema. Es gab gute Denkansätze....ABER: lösen konnte sie mein Problem leider nicht.

    Es geht um folgendes:

    Ich möchte Daten im QUADSPI OUT Modus über die SPI Schnittstelle meines Microcontrollers schicken. Das klappt auch schon ganz gut. Die 4 Pins der Schnittstelle geben jetzt die Signale

    ich habe hier einen simplen test-buffer(testdata) befüllt um zu zeigen, wie ein gut-Beispiel aussieht:

    uint8_t testdata[10]{
        testdata[0] =   0b00010001, 
        testdata[1] =   0b01110011,
        testdata[2] =   0b00110011,
        testdata[3] =   0b00110011,
        testdata[4] =   0b00110011,
        testdata[5] =   0b00110011,
        testdata[6] =   0b00110111,
        testdata[7] =   0b00110111,
        testdata[8] =   0b00110111,
        testdata[9] =   0b00110010,
    };
    

    wenn ich diese 80 Bits nun direkt in den (VSPI tx_buffer) schreibe kommen laut Protokoll-Decoder auswertbare Daten aus den QUADSPI- Pins, nämlich die daten aus dem test-buffer:

    //                                 bit80
    //           bit4                  Paritybit
    SYNC-		11111111111111111110		//sync only low on parity bit			
    DATAX		00111111111111111111		//c2-c0=001; wert=65535,parity set		
    DATAY		00100000000001010100		//c2-c0=001; wert=42,parity not set
    NOT USED	00000000000000000000
    //           bit1                  bit77
    

    Die ersten 12 bits in dem Buffer sind aufgrund nicht ändernder Werte gleich.
    nun brauche ich jedoch eine Funktion, z.B.

    convertXY(uint16_t x, uint16_t y){
    
    
    
    spi_buffer[10] =
    }
    

    die mir aus den übergebenen Werten einen plausiblen Bitstream in den SPI-buffer zaubert. Vielleicht kann da ein alter Hase helfen.

    Wenn ich der convertXY -Funktion also die werte x=42 und y=65535 oder umgekehrt übergebe MÜSSTE dabei zwangläufig der test-buffer(testdata) als ergebnis rauskommen.

    Kann mir jemand helfen?

    Traut sich jemand?

    Danke schonmal fürs lesen
    Chris