ich beschäftige mich gerade mit dem LT6813. Dazu gibts ein EVAL Board.
Für die schnelle Inbetriebnahme wollte ich auf den Code von LT zurückgreifen, der für den LINDUINO geschrieben ist. Eine Art Arduino von LT.
cell_asicBMS_IC[TOTAL_IC];//!< Global Battery Variable
Angeblich ein 2D Array, aber damit komme ich nicht klar. Welchen Typ hast das Array? uint8_t? char? Ich nutzt die CubeIDE von ST, aber selbst der Arduino Compiler kann damit nichts anfangen.
Nehmen wir an, ich will den Funktionsblock ab Zeile 277 aufrufen, wie müsste ich dafür "BMS_IC" übergeben? Wie sieht das Konstrukt aus, welches ich in die Funktion übergeben kann? Wie sieht dessen Initialisierung aus?
1
error=LTC6813_rdcv(SEL_ALL_REG,TOTAL_IC,BMS_IC);// Set to read back all cell voltage registers
Ich habe schon herausgefunden das man "TOTAL_IC" über ein #define setzen muss statt als "const uint8_t" aber selbst dann komm ich nicht auf einen grünen Zweig.
EDIT: Das lesen von einem Byte via SPI klappt schon, inklusive korrekter Prüfsumme.
Angeblich ein 2D Array, aber damit komme ich nicht klar. Welchen Typ
hast das Array? uint8_t? char? Ich nutzt die CubeIDE von ST, aber selbst
der Arduino Compiler kann damit nichts anfangen.
Was heißt "kann damit nichts anfangen"? Und wie sieht der Code konkret aus, mit dem du es versucht hast?
Nehmen wir an, ich will den Funktionsblock ab Zeile 277 aufrufen, wie
müsste ich dafür "BMS_IC" übergeben?
Das kommt auf die Funktion an. Die ist in diesem Code nirgends definiert.
Ja, wie ein Programmierer, der C gelernt hat, und jetzt mit Arduino arbeitet.
So sieht das ganze Programm aus.
bzw. halbherzig übertragen Software, Richtung Arduino.
Nicht hübsch, aber wird wohl tun...
Insbesondere eins, das nicht Platz für die struct, sondern nur für einen Zeiger darauf bereitstellt. Immerhin wurde aber gepüft, ob die Allokation erfolgreich war.
Das finde ich sehr schade, weil das Buch übersichtlich aufgebaut und gut verständlich ist. Das Buch gibt es schon so viele Jahre, da wäre genug Zeit gewesen, Fehler zu korrigieren. Ich habe da mal einen (anderen) Fehler gemeldet, aber meine Anfrage blieb unbeantwortet.