TI spezifische Befehle zB .half

Gast #3295841
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?
Gast #3295903
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.
Gast #3295934
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.
Gast #3295938
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.
Gast #3295985
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.
Gast #3295986
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.