Button_1_LED.cpp.elf: формат файла elf32-avr
Дизассемблирование раздела .text:
00000000 <__vectors>:
0: 0c 94 63 00 jmp 0xc6 ; 0xc6 <__ctors_end>
4: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
8: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
c: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
10: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
14: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
18: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
1c: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
20: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
24: 0c 94 c3 00 jmp 0x186 ; 0x186 <__vector_9>
28: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
2c: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
30: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
34: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
38: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
3c: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
40: 0c 94 5c 04 jmp 0x8b8 ; 0x8b8 <__vector_16>
44: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
48: 0c 94 09 03 jmp 0x612 ; 0x612 <__vector_18>
4c: 0c 94 50 03 jmp 0x6a0 ; 0x6a0 <__vector_19>
50: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
54: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
58: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
5c: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
60: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
64: 0c 94 8b 00 jmp 0x116 ; 0x116 <__bad_interrupt>
00000116 <__bad_interrupt>:
116: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
#include <ve_avr.h> // Используется библиотека VEduino
#include "myheader.h"
/*
* Эта функция должна быть определена в заголовке myheader.h
* чтобы её код не вызывался, а был включен в тело функции-обработчика прерывания.
*/
inline void MyInterupt()
{
if (flag) {
flag=false;
}
else{
flag=true;
} //обработчик вашего прерывания
}
volatile unsigned char tcnt2;
volatile bool flag;
void setup()
{
flag = true;
DEV_TICTRL2.overflowIntDisable();
DEV_TIMER2.setWaveGenMode(Timer2::Normal);
DEV_TIMER2.setPrescaler(Prescaler2::Prescaler64);
DEV_ASYNCST.setTimer2ClkSrc(AsyncStatus::CLKIO);
tcnt2 = 1;
DEV_TICTRL2.overflowIntEnable();
enableInterrupts();
}
void loop() { }
//****************обработчик прерывания********************
ISR(TIMER2_OVF_vect)
{
DEV_TIMER2.setCounter(tcnt2);
MyInterupt();
}