witam mam problem z kompilacją kodu na atmege16, Program służy do wysyłania znaków z atmegi16 przez UART na komputer z użyciem standardowych funkcji typu puts, printf itd. Kompilator avr-gcc (WinAVR 20100110) 4.3.3
//---------------------------harddef.h
//---------------------------rs.h
//---------------------------rs.c
//---------------------------main.c
Oto błędy jakie wyrzuca kompilator:
In file included from rs.c:2:
rs.h:9: error: expected declaration specifiers or '...' before 'FILE'
rs.h:10: error: expected ')' before '*' token
rs.c:4: error: expected declaration specifiers or '...' before 'FILE'
rs.c:12: error: expected ')' before '*' token
Proszę o pomoc
//---------------------------harddef.h
#ifndef HARDDEF_H_INCLUDED
#define HARDDEF_H_INCLUDED
#define DEF_BAUD 4800
#endif //HARDDEF_H_INCLUDED
//---------------------------rs.h
#ifndef RS_H_INCLUDED
#define RS_H_INCLUDED
#define RS_MAKE_UBRR(baud) (F_CPU/(baud*16l)-1)
#define RS_SET_BAUD(baud) \
{UBRRH = (uint8_t)(RS_MAKE_UBRR(baud)>>8); \
UBRRL = (uint8_t)RS_MAKE_UBRR(baud); }
int uart_putc(char, FILE *);
int uart_getc(FILE *);
#endif // RS_H_INCLUDED//---------------------------rs.c
#include <avr\io.h>
#include "rs.h"
int uart_putc(char znak, FILE *unused)
{
// oczekiwanie aż bufor nadajnika jest pusty
while(!(1<<UDRE & UCSRA)) {} // UDRE -znacznik gotowości UDR Empty
UDR = znak; // UDR-bufor danych
return 0;
}
int uart_getc(FILE *unused)
{
char znak;
// oczekiwanie na pojawinie sie danej
while(!(1<<RXC & UCSRA)) {}
znak = UDR;
return znak;
}//---------------------------main.c
#include <avr\io.h>
#include <stdio.h>
#include "rs.h"
#include "harddef.h"
FILE uart_str = FDEV_SETUP_STREAM(uart_putc, uart_getc, _FDEV_SETUP_RW);
int main(void)
{
//inicjacja portu szeregowego
RS_SET_BAUD(DEF_BAUD);
UCSRC = 1<<URSEL | 1<<UCSZ1 | 1<<UCSZ0; // URSEL-modyfikacja rejestru, UCSZ(0,1,2)-dł. słowa
UCSRB = 1<<RXEN | 1<<TXEN; // włącz nadajnik i odbiornik
UCSRA = 0;
// inicjacja funkcji domyslnych strumieni
stdin = &uart_str;
stdout = &uart_str;
puts("Text UART");
}Oto błędy jakie wyrzuca kompilator:
In file included from rs.c:2:
rs.h:9: error: expected declaration specifiers or '...' before 'FILE'
rs.h:10: error: expected ')' before '*' token
rs.c:4: error: expected declaration specifiers or '...' before 'FILE'
rs.c:12: error: expected ')' before '*' token
Proszę o pomoc
