Прерывания avr-gcc
Кто работал с avr-gcc, можете объяснить как работать с прерываниями? В интернете нашел статьи только под IDE, но они используют свои макросы, с которыми avr-gcc не умеет работать.
- Реклама
Какое конкретно, и какая ИДЕ?
Для таймера, пример
Для таймера, пример
Код: Выделить всё
TCNT1 = 0;
TIFR1 |= (1<<OCF1B);
TIMSK1 |= (1<<OCIE1B);
ISR(TIMER1_COMPB_vect)
{ }
- Сообщения: 804
- Зарегистрирован: Чт мар 12, 2009 16:31:05
это не работает, т.к. я пишу в блокноте, я компилирую через консоль без использования IDE, а avr-gcc не понимает что такое TIFR1 и TIMSK1MagicianT писал(а):Какое конкретно, и какая ИДЕ?
Для таймера, примерКод: Выделить всё
TCNT1 = 0; TIFR1 |= (1<<OCF1B); TIMSK1 |= (1<<OCIE1B); ISR(TIMER1_COMPB_vect) { }
может быть и рассказал, но я не использую IDE или winavr. У меня есть только чистый компилятор avr-gcc, а то что описывает Шпак использует встроенные в среду макросыVov123 писал(а):Шпак давно уже рассказал: http://mexalib.com/view/2930
стр.49 и стр.341
- Реклама
- Сообщения: 804
- Зарегистрирован: Чт мар 12, 2009 16:31:05
Писал, писал, признаю. Не поверил, что бывают люди не ищущие простых решений и идущие в терновниках, не смотря, что рядом благоустроенный тротуар.
Тротуар есть не везде, я использую linux, а там нету такого выбора как у Windows пользователяVov123 писал(а):Писал, писал, признаю. Не поверил, что бывают люди не ищущие простых решений и идущие в терновниках, не смотря, что рядом благоустроенный тротуар.
Ардуино ИДЕ под Линух. Эти названия TIFR1 и TIMSK1 определены в avr-gcc , не знает если процессор не задан или не тот.
Компилю вот так:MagicianT писал(а):Ардуино ИДЕ под Линух. Эти названия TIFR1 и TIMSK1 определены в avr-gcc , не знает если процессор не задан или не тот.
Код: Выделить всё
avr-gcc -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -o main.o main.c -std=c11
avr-objcopy -O ihex main.o main.hex
Вот что подключаю:
- Вложения
-
- Без имени.png
- (7.71 КБ) 620 скачиваний
Пример для атмега328. Смотрите дата шит для своего МК сами, возможно названия другие. Прерывание вы тоже не сказали какое, в примере таймер-1
Хмм... Компилировать пытаетесь для tiny2313.daaar писал(а):Вроде все указываю, но ошибка что TIFR1 и TIMSK1 не определены
Смотрим в avr/io.h, оттуда идём и смотрим в avr/iotn2313.h
И что же мы там находим? Там действительно нет TIFR1 и TIMSK1. Но есть TIFR и TIMSK.
Да же в спецификации на ATtiny2313 есть только TIFR и TIMSK.
А исходник откуда? Откуда вы взяли с "единичками"?
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Скинул в тему кто-то, я не подумав и скомпилил, ибо сами хедеры лежат далекоKavka писал(а):Хмм... Компилировать пытаетесь для tiny2313.daaar писал(а):Вроде все указываю, но ошибка что TIFR1 и TIMSK1 не определены
Смотрим в avr/io.h, оттуда идём и смотрим в avr/iotn2313.h
И что же мы там находим? Там действительно нет TIFR1 и TIMSK1. Но есть TIFR и TIMSK.![]()
Да же в спецификации на ATtiny2313 есть только TIFR и TIMSK.
А исходник откуда? Откуда вы взяли с "единичками"?
Я и говорил, что пример для атмега328. Да и всё равно выставить 2 регистра смысла не имеет, пока вы не обьясните какое прерывание и за чем надо, там ещё 2-5 штук выставлять надо, имена все расписаны в даташите на atmel.com
Если мне не изменяет память, IDE Eclipse существует для линуха и имеет все те же возможности, что и для винды. Рекомендую - не пожалеете. Кстати, не забудьте скачать и установить плугин Eclipse для работы с AVR - он так и находится в маркетплейсе по ключевому слову "AVR"
блокнот - это кошмар
блокнот - это кошмар
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Виндовый блокнот действительно кошмарен. Но если под блокнотом имеется в виду просто текстовый редактор - другое дело. Я, например, пользуюсь KWrite, вполне удобно. А ставить тяжелый эклипс и шаманить с автоформатированием лень.
- Сообщения: 6452
- Зарегистрирован: Пт сен 13, 2013 13:11:31
Вы горбуху всякую советуете потому, что Sublime Text 3 не видели. По сравнению с ним в лес идут не только блокноты с крайтами, но и эклипсы со студиями.
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Не подскажете, как называется пакет, а то по названию я в репозитории не нашел? Ну и хотя бы пару объективных преимуществ. Единственное, чего мне в KWrite не хватает - автодополнение полей структур и классов да подсказка по входным параметрам функций. Сомневаюсь, что технически это было возможно реализовать для всех двух сотен языков, которые эта программа знает.
На счет редактора гораздо важнее личное удобство, чем объективный функционал. Ну и задачи: для проверки поведения компилятора я не буду запускать тяжелый эклипс, когда достаточно мгновенно запускающегося блокнота.
На счет редактора гораздо важнее личное удобство, чем объективный функционал. Ну и задачи: для проверки поведения компилятора я не буду запускать тяжелый эклипс, когда достаточно мгновенно запускающегося блокнота.
Eclips не выход, как и codeblocks. Я использую vim, иногдa sublime textARV писал(а):Если мне не изменяет память, IDE Eclipse существует для линуха и имеет все те же возможности, что и для винды. Рекомендую - не пожалеете. Кстати, не забудьте скачать и установить плугин Eclipse для работы с AVR - он так и находится в маркетплейсе по ключевому слову "AVR"
блокнот - это кошмар
Его не в репозитории, качай deb пакет или rpm. Sublime Text+packagecontrol реально удобная вещь, если настроить егоCOKPOWEHEU писал(а):Не подскажете, как называется пакет, а то по названию я в репозитории не нашел? Ну и хотя бы пару объективных преимуществ. Единственное, чего мне в KWrite не хватает - автодополнение полей структур и классов да подсказка по входным параметрам функций. Сомневаюсь, что технически это было возможно реализовать для всех двух сотен языков, которые эта программа знает.
На счет редактора гораздо важнее личное удобство, чем объективный функционал. Ну и задачи: для проверки поведения компилятора я не буду запускать тяжелый эклипс, когда достаточно мгновенно запускающегося блокнота.
с моей точки зрения в качестве IDE использование Eclipse просто идеально: существующий плагин для AVR позволяет очень удобно прошивать МК при помощи avrdude, при использовании аппаратных отладчиков так же становится реальной отладка, а с некоторыми ограничениями можно симулировать при помощи simavr.daaar писал(а):Eclips не выход, как и codeblocks.
Но если VIM для вас - это лучшее решение, я со своими скромными советами умолкаю... лично я после знакомства с "удобными" редакторами линуха надолго выпал в осадок, и теперь немею при встрече с людьми, которые ЭТИМ пользуются - они либо невероятной крутости герои, либо конченные мазохисты. я не такой, увы...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!


