Hi, ich schaue mir gerade einen Code von einem TI Mikrocontroller an (TMS320). Ich finde teils noch Codestücke, die ich mir aus dem Kontext erschließen muss. Wie etwa den .bit-Befehl. Jetzt habe ich wieder ein Codesample, worin ich den .half-Befehl nicht verstehe: irgendwelcheRegs.speziellesRegister.half.speziellesRegister = ... (konkret: EPwm1Regs.CMPA.half.CMPA = 100) Gibt es irgendwo eine Referenz für TI-spezifische Befehle?
Das dürfte wohl eher vom Compiler abhängig sein? Wobei es grundsätzlich bestimmt einfach nur struct bzw. union Typen sind. Siehe: http://de.wikibooks.org/wiki/C-Programmierung:_Komplexe_Datentypen
Das sind keine Befehle der CPU. Das sind ganz normale C-Strukturen mit Zugriff darauf. Diese Strukturen zeigen meisten auf die IO-Register (die memory-mapped sind), und damit werden Werte gesetzt. Es gibt auch Header-Files, wo alles definiert wird. TI hat meistens Handbucher speziell für den Prozessor und das Subsystem (in diesem Fall ein PWM-Modul). Einfach mal auf den TI-Seiten suchen, da gibt es Referenz-PDFs im Überfluss. Die Kunst ist, das richtige zu finden.
OK, danke euch beiden. Ich werde dann mal schauen, ob ich ein passendes Header-File finde. Vielleicht finde ich noch andere nützliche PDFs bei TI.com. Das Datenblatt des PWM-Moduls nutze ich gerade. Mir kommt es nur so vor, als müsste man sich Teile der Code Samples selbst erschließen, zumindest wenn man noch nie mit einem TI Controller gearbeitet hat. Also ich finde da zum Beispiel nichts von .half.
Oder zum Beispiel diese Zeile:
1 | EPwm1Regs.CMPA.half.CMPA = Duty1A; // adjust duty for output EPWM1A |
Meist kann man sich zwar denken, was das bedeuten soll, aber nirgendwo in dem verflixten Datenblatt finde ich eine Definition von Duty1A bzw. Duty1B.
Alex schrieb: > Oder zum Beispiel diese Zeile: > EPwm1Regs.CMPA.half.CMPA = Duty1A; // adjust duty for output EPWM1A > Meist kann man sich zwar denken, was das bedeuten soll, aber nirgendwo > in dem verflixten Datenblatt finde ich eine Definition von Duty1A bzw. > Duty1B. Das Datenblatt ist für die Hardware. Dort sind die Register und die möglichen Werte beschrieben. Bei TI gibt es oft einen Family User Guide, der allgemeine Funktionen und Peripherie beschreibt. Aber das Datenblatt kann nicht wissen, wie du den Controller Programmierst. Ob in ASM, in C, Bitchen-Code, oder was auch immer. Du wirst also keine Erklärungen zu 08/15 C code im Datenblatt finden und auch bei keinem anderen Hersteller finden können.
Alex schrieb: > aber nirgendwo > in dem verflixten Datenblatt finde ich eine Definition von Duty1A bzw. > Duty1B. Das wird wohl daran liegen, dass Duty1A nur in deinem Programm definiert ist und nichts mit der PWM oder TI zu tun hat.
Alex schrieb: > Meist kann man sich zwar denken, was das bedeuten soll, aber nirgendwo > in dem verflixten Datenblatt finde ich eine Definition von Duty1A bzw. > Duty1B. Siehe Anhang oder https://www.ti.com/seclit/sw/sprca85/sprca85.zip
Noch mal danke an alle, ich denke morgen finde ich mich dann schon besser zurecht :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.