Error: invalid type argument of 'unary *' (have 'int')

Gast #1590897
Lesenswert?

Hi,

mein C ist schon ein wenig eingerostet, und mit der Fehlermeldung des 
Compiler fang ich leider überhaupt nichts an...
Die genaue Fehlermeldung die ich bekomme ist folgende:
../ADC_PWM1.c:87: error: invalid type argument of 'unary *' (have 'int')

Mein Code ist (der komplette Code ist im Anhang):

#include <avr/io.h>
#include <stdint.h>
#include <avr/interrupt.h>

#define KP      0x02;
#define KI_TA   0x02;

int main(void)
{
  int8_t Regelabweichung;
  int8_t Regelwert_8;
  int8_t Summe_Regelabweichung_8;
  int32_t Regelwert_32;
  int16_t Summe_Regelabweichung_16;

  Regelabweichung    = 0;
  Regelwert_8    = 0;
  Summe_Regelabweichung_8 = 0;
  Regelwert_32    = 0;
  Summe_Regelabweichung_16= 0;

  while(1)
  {
  //[...] Bearbeiten der Variablen
  Regelwert_32 = KP * Regelabweichung + KI_TA * Summe_Regelabweichung_8; 
//FEHLER
  }
  return 0;
}

Kann mir jemand sagen was der Compiler Fehler bedeutet und wie ich den 
Fehler beheben kann?!

MfG
Tobias
Angehängte Dateien:
Moderator Persönliche Seite #1590907
Lesenswert?

Der gepostete Quellcode hat gar keine 87 (relevanten) Zeilen, sondern
nur 30, außerdem ist der auskommentierte Kram gar nicht beendet
worden...  Tipp: #if 0 ... #endif benutzen statt eines großen
Kommentars, um temporär ein Stück Code auszublenden.

Dein Fehler wird aber sofort offensichtlich, wenn man den Sourcecode
mal einfach durch den Präprozessor schickt:
1
  Regelwert_32 = 0x02; * Regelabweichung + 0x02; * Summe_Regelabweichung_8;

Als Hausaufgabe bekommst du jetzt herauszufinden, wo die
überflüssigen Semikolons herkommen. ;-)
Gast #1590928
Lesenswert?

Wie geht das:
"Dein Fehler wird aber sofort offensichtlich, wenn man den Sourcecode
mal einfach durch den Präprozessor schickt:"
bzw. wo kann ich die Ausgabe des Präprozessors lesen, denk dass kann ich 
evtl. noch öfter brauchen.
Gast #1590963
Lesenswert?

Anfänger_Tobias schrieb:
> das Problem mit der Fehlermeldung ist bereits behoben, es geht darum,
> dass ich gern die Präprozessordatei erzeugen möchte.
Habe ich mitbekommen. ;-)

Du hast aber geschrieben, dass das nicht funktioniert, ohne den Aufruf 
und der Fehlermeldung wird man dir nur schwer helfen können. Das 
Betriebssystem könnte ebenfalls hilfreich sein.

Darum habe ich ja auch folgendes zitiert:
Anfänger_Tobias schrieb:
> Hm, das wird bei mir nicht erzeugt.

;-)
Gast #1590965
Lesenswert?

Anfänger_Tobias schrieb:
> das Problem mit der Fehlermeldung ist bereits behoben, es geht darum,
> dass ich gern die Präprozessordatei erzeugen möchte.

Dessen Ausgabe bekommst Du wie schon beschrieben mit '-E' (gcc, ..wer 
noch?), Details liefert wie immer das RTFM [1] (behelfsweise das STFW 
[2]). Beim gcc wird dass dann - wie schon beschrieben - z.B. zu
1
$ gcc -Wall -E file.c | less
alternativ
1
$ avr-gcc -Wall -mmcu=$blubber -E file.c | less
:-)

HTH und HF

[1] aus der Man-page zu gcc:
1
-E  Stop after the preprocessing stage; do not run the compiler proper.
2
    The output is in the form of preprocessed source code, which is
3
    sent to the standard output.
[2] 
http://www.google.de/search?hl=de&q=gcc+preprocessor+output&btnG=Suche&meta=

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