이건 디버깅을 해보셔야 할 것 같네요.. 오실로스코프 안가지고 계신가요? 일단 LM358에서 제대로 증폭이 되는지, 아니 그 이전에 신호가 제대로 들어가고는 있는지부터 차근차근 확인하셔야 할 것 같습니다. 어떤 AVR인지는 모르겠는데 신호레벨도 핀마다 찍어보시고.. 핀이 제대로 들어오고 나가고 있는지도 찍어보시고..
설명할게 너무 많네요... 컴퓨터구조와 어셈블리 수업을 한 번 들으시는걸 추천드립니다 ㅠㅜ.. 리턴타입이 없는건 원래 리턴타입이란게 C conventional 일 뿐 메모리크기로 참조하기 때문이지요.. goto 가 많은 건 CPU instruction자체가 goto 로 점철되서 그렇구요...