Der Compiler von CodeVisionAVR zeigt mir Fehler an.
--> id_3=((*ptransmit).id)&0x0f;
Wenn ich dies schreibe: id_3=ptransmit->id)&0x0f;
dann bringt der Compiler keine Fehler mehr.
Soviel ich weiss ist das das DEREFERENZIEREN bzw REFERENZIEREN.
Gibt es da noch eine andere schreibweise??
struct message
{
unsigned int id;
unsigned int rtr;
unsigned int dlc;
unsigned int byte[8];
};
struct message transmit,receive;
------------------------------------------------
void canmessage_write(struct message *ptransmit )
{
unsigned int id_1,id_2,id_3;
unsigned int id_1_hilf,id_2_hilf,id_3_hilf;
unsigned int trdscr_wert;
unsigned int i;
id_3=((*ptransmit).id)&0x0f;
id_2=(((*ptransmit).id)/16)&0x0f;
id_1=(((*ptransmit).id)/256)&0x0f;
id_1_hilf=id_1*32;
id_2_hilf=id_2*2;
id_3_hilf=id_3/8;
trdscr_wert=(id_1_hilf)|(id_2_hilf)|(id_3_hilf);
canreg_write(TBUF_DSCR1,trdscr_wert);
id_3=((*ptransmit).dlc)&0x0f;
id_2=((*ptransmit).rtr)*16;
id_1=(((*ptransmit).id)&0x0f)*32;
trdscr_wert =(id_3)|(id_2)|(id_1);
canreg_write(TBUF_DSCR2,trdscr_wert);
for (i=0;i<=7;i++)
{
canreg_write (TBYTE_1+i,(*ptransmit).byte[i]);
}
canreg_write (CMR,0x01); //Sendung auslsen
do
{
}
while (((canreg_read(SR))&0x08)==0);
}
------------------------------------------------
,,Mein Auto fährt nicht!'' Wäre schon nicht schlecht, wenn Du die Fehlermeldung mit zitieren würdest... (*foo).bar ist identisch zu foo->bar
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.