Tut mir außerdem Leid, sollte mein Code unerfahren wirken, denn das
bin ich auch.
Keine Selbstverzwergung! Lass dich hier nicht unoetig runtermachen,
es gibt hier auch viele die vergessen haben wie sie selber angefangen
haben.
Mein Wissen mit Programmieren insgesamt, besteht aus einem C Kurs in
dem mir die wichtigsten Commands erklärt wurden und ein halbes Jahr
später wurden mir ein paar Datasheets und Manuels vor die Füße gelegt
und gesagt, dass ich das jetzt hinbekommen soll.
Dagegen ist auch nix zu sagen. So haben wir im Prinzip alle angefangen.
Problem ist halt das du es gewohnt bist im Internet nachzuschlagen und
da findet sich heute halt nur noch Leute die mit Libaries programmieren.
Arbeite dich von unten nach oben durch! Also pruefe erstmal ob
sowas sowas funktioniert:
void ClockLow(){
GPIOC->ODR &= ~(1<<5); //PC5 Low
}
Pruefe ob dein Compiler dich hier nicht warnt und schalte mal
alle Warnungen ein. Es wundert mich z.b das du nicht angeben
musst das diese Funktion sich nicht beschwert das da kein void
drin steht.
Wenn das funktioniert dann machst du das mit allen deinen Unterfunktionen,
du musst dir also sicher sein das du funktionieren.
Dann arbeitest du dich nach oben.
Schreibst dir also z.b sowas hier:
void test1(void)
{
ClockLow();
ClockHigh();
}
Und schaust mal mit dem Oszi was da raus kommst.
Dann fuegst du ein Wait/delay ein und testet ob das Timing
deinen Erwartungen entspricht.
Dann schreibst du dir eine Funktion welche das SPI komplett fuer
einen uebergebenen 8Bit Wert haendelt. Die wird wieder einzeln
getestet. Aber hier kann es sinn machen auch mal ueber den
Einsatz des Debuggers nachzudenken und z.B Variablen und
Abbruchbedingungen auszugeben. z.B falls dein Code mal nur 7 oder
9 Datenbits ausgibt. Du musst also pruefen ob das was du glaubst
das eine Programmzeile bewirkt mit der Realitaet uebereinstimmt!
So arbeitest du dich langsam von unten nach oben.
Dann ist das schon zu schaffen. Eigentlich ist das was du da machst
naemlich eine Aufgabe die mindestens die Haelfte der Leute hier die
erstmal nur Arduinokram aus dem Internet klauen auch mal machen sollten. .-)
Vanye