Forum: Mikrocontroller und Digitale Elektronik System Timer und Interrupt Fehler


von Joey T. (j0sef)


Lesenswert?

Hallo zusammen,

ich beschäftige mich derzeit mit dem TriCore TC1797 von Infineon. Dazu 
nutze ich Tasking VX Toolset V3.1 und DAvE. Geflasht wird über einen 
LAUTERBACH Debugger und TRACE32.

Ich möchte eine einfache Systemtimer Funktion mit Interruptauslösung 
programmieren, jedoch will es einfach nicht funktionieren. Habe das 
Ganze wie in den APPNotes konfiguriert über DAvE und erweitert in 
Tasking, jedoch ohne Erfolg. Die Fehlermeldungen, die immer kommen sind 
ein wenig suspekt für mich.


void INTERRUPT (STM_INT0) STM_viSRN0(void)
{
  // USER CODE BEGIN (SRN0,2)

  // USER CODE END

  if(STM_ICR.B.CMP0IR == 1)   // if compare match of CMP0 is pending
  {
    // USER CODE BEGIN (SRN0,3)
IO_vTogglePin(IO_P7_0);
IO_vTogglePin(IO_P7_1);
STM_CMP0 += 45000000;      <---- Fehlerzeile
    // USER CODE END

    STM_ISRR.B.CMP0IRR = 1;  // clear request bit of CMP0

//...
}

Und hier die Fehlermeldungen:

ctc E241: invalid conversion from "union" to "signed_packb"
ctc E241: invalid conversion from "´signed_packb" to "union"
ctc E241: invalid conversion from "signed int" to "signed_packb"

Es gibt auch so ein tolles Feature bei Tasking, dass man Rechtsklick auf 
eine Variable oder Funktion macht und dann auswählt "to Declaration" 
aber  bei dieser Variablen macht er dies nicht. Außerdem verwunderlich 
ist, dass diese Variable ein paar Zeilen zuvor schon einmal so
=>  STM_CMP0.U     = 0x00000001;   // load compare register 0

verwendet wird.

Alles ein bisschen fragwürdig aus meiner Sicht. Wenn Ihr noch mehr Infos 
braucht, dann sagt mir bescheid.

Gruß,

Josef

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
Noch kein Account? Hier anmelden.