expansion des fichiers d’entêtes ;
$ avr-gcc -E -I. -DF_CPU=16000000 -mmcu=atmega328p -Wp,-P -Os timer.c -o timer-cpp.c
$ cat timer-cpp.c
...
int led_bit=0x01;
void init_ports(void){
(*(volatile uint8_t *)((0x04) + 0x20)) |= led_bit;
(*(volatile uint8_t *)((0x05) + 0x20)) |= 0x00;
}
void init_timer(){
(*(volatile uint8_t *)(0x80)) = 0;
(*(volatile uint8_t *)(0x81)) = 1<<3;
(*(volatile uint8_t *)(0x81)) |= (1<<2);
(*(volatile uint16_t *)(0x88)) = 12500;
(*(volatile uint16_t *)(0x84)) = 0;
(*(volatile uint8_t *)(0x6F)) = (1<<1);
}
void __vector_11 (void) __attribute__ ((signal,used, externally_visible)) ; void __vector_11 (void){
(*(volatile uint8_t *)((0x05) + 0x20)) ^= led_bit;
}
int main(void){
init_ports();
init_timer();
__asm__ __volatile__ ("sei" ::: "memory");
return 0;
}