Hardware Multiplikation Fehler

OP #2979254
Lesenswert?

Hallo zusammen.
Um 4 LEDs zu dimmen möchte ich die Werte Value1-4 für eine PWM(TimerA0 
und TimerA1 Cont Mode bis 65535-1) multiplizieren. Value1-4 können im 
Wertebereich von 0-250 sein. daher möchte ich diese Multiplizieren, um 
ihn an den Zählzyklus der TimerA0 und TimerA1 anzupassen.
Ich hoffe ihr versteht was ich meine.
Funktioniert wie es soll:
1
  TA0CCR1 = Value[1]*262;
2
  TA0CCR2 = Value[2];
3
  TA1CCR1 = Value[3];
4
  TA1CCR2 = Value[4];
Fehlermeldung:
1
  TA0CCR1 = Value[1]*262;
2
  TA0CCR2 = Value[2]*262; //zusätzlich
3
  TA1CCR1 = Value[3]*262; //eingetragene
4
  TA1CCR2 = Value[4]*262; //Multiplikationen


Das Problem was ich habe ist, dass mir CCS5 bei einer PWM alles super 
compiliert und es auch normal funktiert. Sobald aber 2-4 
Multiplikationen eingefügt werden, kommt die Fehlermeldung:
#10010 errors encountered during linking; "program.out" not built
#10099-D program will not fit into

Desweiteren steht neben der Zeile mit der Multiplikation:
#1533-D (ULP6.1) Detected use of multiplication on a device that has no 
hardware multiplier

Ich verstehe da nicht, dass es bei einer Multiplikation funktioniert, 
aber bei mehreren nicht mehr. Kann mir da jmd helfen?

uC: MSP430G2153


LG und nochn frohes Neues ;)
OP #2980468
Lesenswert?

Hallo Läubi,
vielen Dank für den Tipp.
Scheinbar liegt es tatsächlih daran. Kaum habe ich mal 4 Zeilen aus dem 
Code genommen, wird compiliert.

Nur so als kleine Nebenfrage, ob jemand da schon Erfahrung gemacht hat:
Kann es tatsächlich sein, dass die Lizensierung (Code Size limited) 
schon erreicht ist bzw. ausgeschöpft, nach ca. 200 Zeilen Code?

Weil dann ist die Überlegung eine volle Lizens zu kaufen.

Lg
Gast #2980503
Lesenswert?

>TA0CCR1 = Value[1]*262;

Versuch doch mal folgendes:
1
  uint16_t u16Src = Value[1];
2
  uint16_t u16Res = 0;
3

4
  u16Res += (u16Src << 8 );  // 262 = 256 + 4 + 2
5
  u16Res += (u16Src << 2 );
6
  u16Res +=  u16Src;
7
  u16Res +=  u16Src;
8

9
  TA0CCR1 = u16Res;

Vielleicht macht der Compiler das ohne Multiplikation

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren