Forum: Compiler & IDEs Warning vom Compiler, warum?


von Ruslan K. (idrisk)


Lesenswert?

Hi Leute,

habe so ein bisschen gegrübelt, aber komme dennoch nicht auf die lösung 
des Warnings.

Folgender Codeauschnitt:
1
// Deklaration der Variablen
2
typedef struct
3
{  
4
  uint32_t id; 
5
  uint32_t idm;      
6
  bool ide;                     
7
  uint8_t length;   
8
  uint8_t data[8];  // 8 Datenbytes
9
}CAN_message;
10
11
// Can-Nachricht zum Empfangen
12
volatile CAN_message message[16]; // 15 Message Boxes
13
14
// Funktionsaufruf in der Main.c
15
dekade_setPort(message[0].data);
16
17
// Fuktion
18
bool dekade_setPort(uint8_t *data)
19
{
20
  PORTA = 255 - data[0];
21
  PORTE = 255 - data[1];
22
23
  return 1;
24
}

Die dazugehörige Warnung vom Compiler:
../main.c:63: warning: passing argument 1 of 'dekade_setPort' discards 
qualifiers from pointer target type

Was mache ich falsch? Kann mir da einer auf die Sprünge helfen?

Danke im Vorraus!

von Simon K. (simon) Benutzerseite


Lesenswert?

Versuche mal:

bool dekade_setPort(volatile uint8_t *data)

von (prx) A. K. (prx)


Lesenswert?

volatile pointer an Parameter übergeben, der kein volatile pointer ist.

von Ruslan K. (idrisk)


Lesenswert?

Hi Leute,

vielen dank für die schnelle hilfe!

Das programm hat zwar gefunzt, trotzdem sieht es schöner aus, wenn keine 
warnings auftauchen...

Großen Dank noch mal!!!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

BTW:
das hier
1
  PORTA = 255 - data[0];
2
  PORTE = 255 - data[1];
ist das selbe wie das hier
1
  PORTA = ~data[0];
2
  PORTE = ~data[1];

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.