Datum:
Was will mir der compiler hier sagen? Die interrupt routine muss einen rückgabe wert haben?! avr-gcc -c -mmcu=atxmega32a4 -I. -gstabs -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=libs/x_uart.lst -std=gnu99 -MD -MP -MF .dep/x_uart.o.d -DF_CPU=32000000L libs/x_uart.c -o libs/x_uart.o libs/x_uart.c:70:1: warning: return type defaults to 'int' libs/x_uart.c:70:1: warning: function declaration isn't a prototype
ISR(USARTE0_TXC_vect)
{
if (!fifoIsEmpty(&uart_send_fifo))
USARTE0.DATA = fifoRead(&uart_send_fifo);
}
|
Datum:
Es fehlt: #include <avr/interrupt.h> So sieht das für den Compiler aus wie die Definition einer altertümlichen pre-ANSI Funktion ISR mit Parametername USARTE0_TXC_vect.
Datum:
aaaaaaaaaaaaaaaaaaaaaaaah! Danke
Datum:
Wollte nicht gleich nen neues Topic aufmachen, worin liegt eigentlich der Unterschied zwischen fifo->write und fifo.write Wann wird hier ein Punkt oder ein -> verwendet?
typedef struct fifo { uint8_t i_write; uint8_t i_read; } fifo; |
Datum:
Völlig unpassender Thread. Aber im einen Fall ist fifo ein Pointer auf eine Struktur, im anderen Fall die Struktur selbst. C Handbuch parat?
Datum:
fifo.write wenn fifo eine Instanz der Struktur ist fifo->write wenn fifo ein ZEIGER auf eine Instanz der Struktur ist
Datum:
Vielen Dank, man man man ist das kompliziert.
Datum:
fifo->write ist übrigens äquivalent zu (*fifo).write
Datum:
GUIler schrieb: > fifo->write ist übrigens äquivalent zu (*fifo).write Wie merkt man sich sowas? ich meine da gibts ja noch mehr wie pointer auf pointer unsw..
Datum:
Simon schrieb: > Wie merkt man sich sowas? gar nicht direkt, sonder man muss einfach verstehen was * und & macht, der rest ergibt sich dann.