Hallo
Ich habe die letzten Tage mal versucht ein LIN Signal zu "decodieren". Klappt soweit ganz gut, nur wollte ich das ganze jetzt etwas universeller gestalten und hab für 8 Bytes die gesendet werden + Datenlänge, eine Struktur angelegt
Die Daten werden in einem Interrupt mit Werten beladen und dann wird in ein Unterprogramm gesprungen, wo dann die 8 Bytes auf den UART gelegt werden.
Jetzt bringt mir AVRstudio folgenden Fehler. und ich weis nicht woran es liegt:
Da das Bild (zu mindest bei mir) nicht funktioniert:
Warning 1 type of 'msg_LIN' defaults to 'int' [enabled by default]
Error 2 request for member 'length' in something not a structure or union
Error 3 request for member 'data' in something not a structure or union
Warning 4 suggest parentheses around assignment used as truth value [-Wparentheses]
Kann mir da jemand helfen?
Gruß
Folienkondensator
Ich habe die letzten Tage mal versucht ein LIN Signal zu "decodieren". Klappt soweit ganz gut, nur wollte ich das ganze jetzt etwas universeller gestalten und hab für 8 Bytes die gesendet werden + Datenlänge, eine Struktur angelegt
Code:
//Struktur der LIN Botschaft
typedef struct
{
uint8_t length; // Datenlänge (Byte)
uint8_t data[8]; // Data field 8 Byte
}LIN_messageType;
LIN_messageType msg_LIN;
LIN_messageType recMsg_LIN;
Die Daten werden in einem Interrupt mit Werten beladen und dann wird in ein Unterprogramm gesprungen, wo dann die 8 Bytes auf den UART gelegt werden.
Jetzt bringt mir AVRstudio folgenden Fehler. und ich weis nicht woran es liegt:
Da das Bild (zu mindest bei mir) nicht funktioniert:
Warning 1 type of 'msg_LIN' defaults to 'int' [enabled by default]
Error 2 request for member 'length' in something not a structure or union
Error 3 request for member 'data' in something not a structure or union
Warning 4 suggest parentheses around assignment used as truth value [-Wparentheses]
Code:
//Put data into buffer, sends the data
UDR1 = data;
}
void LIN_tx (msg_LIN)
{
LIN_tx_cnt=0;
for( LIN_i2 = 0; LIN_i2 < msg_LIN.length; LIN_i2++)
{
USART1_Transmit(msg_LIN.data[LIN_tx_cnt]);
LIN_tx_cnt++;
}
}
// Start des Hauptprogramms
int main()
{
Kann mir da jemand helfen?
Gruß
Folienkondensator