Gast
#100192
Hallo Leute,
der folgende Code arbeitet auf dem IAR-Compiler problemlos, wird aber
anscheinend von dem avr-gcc nicht verstanden.
IAAR:
Char receiveed @ 15;
gcc:
#define received _SFR_IO8(0x15);
Ist diese Aussage wirklich identisch?
Eine Besonderheit des Tiny26 ist, das man dieses Register direkt
auslesen muß und es nicht gepuffert wird.
Bei den Präprozessordirektiven funktionieren anscheinend die folgenden
Definitionen so einfach nicht. TIMER0_SEED0 hat immer den Wert 251,
egal was ich für System_Clock und Baudrate einträge.
#define USI_COUNTER_MAX_COUNT 16
#define USI_COUNTER_SEED_TRANSMIT (USI_COUNTER_MAX_COUNT - HALF_FRAME)
#define INTERRUPT_STARTUP_DELAY (0x11 / TIMER_PRESCALER)
#define TIMER0_SEED (256 - ( (SYSTEM_CLOCK / BAUDRATE) /
TIMER_PRESCALER ))
#if ( (( (SYSTEM_CLOCK / BAUDRATE) / TIMER_PRESCALER ) * 3/2) > (256 -
INTERRUPT_STARTUP_DELAY) )
#define INITIAL_TIMER0_SEED ( 256 - (( (SYSTEM_CLOCK /
BAUDRATE) / TIMER_PRESCALER ) * 1/2) )
#define USI_COUNTER_SEED_RECEIVE ( USI_COUNTER_MAX_COUNT -
(START_BIT + DATA_BITS) )
#else
#define INITIAL_TIMER0_SEED ( 256 - (( (SYSTEM_CLOCK /
BAUDRATE) / TIMER_PRESCALER ) * 3/2) )
#define USI_COUNTER_SEED_RECEIVE (USI_COUNTER_MAX_COUNT -
DATA_BITS)
#endif
#define UART_RX_BUFFER_MASK ( UART_RX_BUFFER_SIZE - 1 )
#if ( UART_RX_BUFFER_SIZE & UART_RX_BUFFER_MASK )
#error RX buffer size is not a power of 2
#endif
Danke für Eure Hilfe !!
Gruß