H
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