Код (asmroutine.h):
#ifndef ASMROUTINE_H_
#define ASMROUTINE_H_
//Общие определения
#ifdef __ASSEMBLER__
//Определения только для ассемблера
#endif
#ifndef __ASSEMBLER__
//Определения только для С
extern char afun(char); //добавление, удаление extern, inline не помогает
#endif
#endif /* ASMROUTINE_H_ */
Код (asmroutine.s):
#include "asmroutine.h"
.global afun
afun:
ldi R30,R24
add R24,R30
ret
Основной код:
#include <avr/io.h>
#include <avr/interrupt.h>
#include "asmroutine.h"
volatile char m=5,d;
ISR(TIMER0_OVF_vect) {d=afun(m);}
int main(void)
{
TCCR0=(1<<CS00);TIMSK=(1<<TOIE0);sei();
while(1){}
}


