Официальный сайт компании Arduino по адресу arduino.cc
Собственный обработчик прерывания
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Вс, 16/06/2013 - 01:34
Пользую ino 1.0 Пытаюсь в скетче использовать собственный обработчик для T0
/** Обработчик прерывания таймера по переполнению. ISR(TIMER0_OVF_vect) { ... ... ... }
При попытке скомпилить ругается:
core.a(wiring.c.o): In function `__vector_16':
D:\arduino\hardware\arduino\cores\arduino/wiring.c:49: multiple definition of `__vector_16'
Кто то пользует прерывания акромя тех что умеет штатный attachinterrupt() ?
Пользую ino 1.0 Пытаюсь в скетче использовать собственный обработчик для T0
При попытке скомпилить ругается:
core.a(wiring.c.o): In function `__vector_16':
D:\arduino\hardware\arduino\cores\arduino/wiring.c:49: multiple definition of `__vector_16'
Кто то пользует прерывания акромя тех что умеет штатный attachinterrupt() ?
раз уж пишите на ардуине то зачем пытаетесь поперек нее думать? используйте attachInterrupt
будет работать так же как вы хотите
а вот настройку таймера и флагов прерывания можно сделать напрямую через регистры МК
Дело в том что этот таймер и обработчик заняты для работы функций millis(), micros(), delay().
Посмотрете файлы C:\Users\Мария\Desktop\Дуина\arduino-1.0\hardware\arduino\cores\arduino\ wiring.c и main.cpp.
Используйте другой таймер (например 2),а если вам нужен именно нулевой таймер, то используйте следующую конструкцию:
естественно вышеупомянутые дуиновские функции перестанут работать. Так же можете переписать wiring.c под другой таймер, для фунционирования дуино-функций.