Digispark, dimmer и vector_4
- Войдите на сайт для отправки комментариев
Чт, 02/06/2016 - 08:38
Привет други! Не могу побороть один вредный трабл, но по порядку.
Нашел интересный проект автономного диммера на Тини85 http://forum.arduino.cc/index.php?topic=314773.0
Диммер в себе, с детектором ноля и прерываниями, рулится аналоговым напряжением на входе. То есть универсальнее некуда. Но вот никак не могу его на digispark клоне китайском запустить. Ругается на мультипликацию вектора прерывания, а куда там рыть я не нашел. Кто подскажет направление? IDE пробовал всякие. 1.6.5 и 1.6.8 пишут одинаково ошибку.
{archive_file_path}(wiring.c.o): In function `__vector_4': C:\Users\Roma\AppData\Roaming\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/wiring.c:93: multiple definition of `__vector_4' sketch_may24b.cpp.o:C:\Program Files (x86)\Arduino/sketch_may24b.ino:62: first defined here collect2.exe: error: ld returned 1 exit status
Umka, вы понимате то, о чём говорит компилятор? Программный блок для диджиспарка без вашего на то благоволения забирает под свои нужды прерывание. Что можно сделать? Можно поковырять в кишках, найти нужные строки, и исключить использование прерывания. Разумеется перестанут работать какие-то чисто диджиспарковские функции, например не будет работать бутлоадер. Либо второй вариант - шить МК не как диджиспарк, а как просто тини85, программатором.
Просто как тини85 все компилируется. Да, понимаю что прерывание занято, но не могу найти чем. Может сериал, может что-то еще. Мозгов не хватает найти в исходниках конфликтующую функцию. Это и спрашиваю.
найти в исходниках конфликтующую функцию.
Функция по идее должна называться ISR
А параметром у нее может быть одна из трёх констант
Я бы поискал к кодах по названиям констант: TIM1_OVF_vect, TIMER1_OVF_vect или SIG_OVERFLOW1.
Ну да, нашел ISR(MILLISTIMER_OVF_vect, ISR_NOBLOCK)
Нужно для USB. То есть сохранять загрузчик смысла нет. Вопросов больше нет, буду шить программтором.