Прерывания avr-gcc

Обсуждаем контроллеры компании Atmel.
Ответить
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

Кто работал с avr-gcc, можете объяснить как работать с прерываниями? В интернете нашел статьи только под IDE, но они используют свои макросы, с которыми avr-gcc не умеет работать.
Контактная информация:
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Какое конкретно, и какая ИДЕ?
Для таймера, пример

Код: Выделить всё

  TCNT1  = 0;
  TIFR1   |= (1<<OCF1B); 
  TIMSK1  |= (1<<OCIE1B);

ISR(TIMER1_COMPB_vect)
{ }
Реклама
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Сообщение Vov123 »

Шпак давно уже рассказал: http://mexalib.com/view/2930
стр.49 и стр.341
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

MagicianT писал(а):Какое конкретно, и какая ИДЕ?
Для таймера, пример

Код: Выделить всё

  TCNT1  = 0;
  TIFR1   |= (1<<OCF1B); 
  TIMSK1  |= (1<<OCIE1B);

ISR(TIMER1_COMPB_vect)
{ }
это не работает, т.к. я пишу в блокноте, я компилирую через консоль без использования IDE, а avr-gcc не понимает что такое TIFR1 и TIMSK1
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

Vov123 писал(а):Шпак давно уже рассказал: http://mexalib.com/view/2930
стр.49 и стр.341
может быть и рассказал, но я не использую IDE или winavr. У меня есть только чистый компилятор avr-gcc, а то что описывает Шпак использует встроенные в среду макросы
Контактная информация:
Реклама
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Сообщение Vov123 »

Писал, писал, признаю. Не поверил, что бывают люди не ищущие простых решений и идущие в терновниках, не смотря, что рядом благоустроенный тротуар.
Реклама
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

Vov123 писал(а):Писал, писал, признаю. Не поверил, что бывают люди не ищущие простых решений и идущие в терновниках, не смотря, что рядом благоустроенный тротуар.
Тротуар есть не везде, я использую linux, а там нету такого выбора как у Windows пользователя
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Ардуино ИДЕ под Линух. Эти названия TIFR1 и TIMSK1 определены в avr-gcc , не знает если процессор не задан или не тот.
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

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
Вроде все указываю, но ошибка что TIFR1 и TIMSK1 не определены
Вот что подключаю:
Вложения
Без имени.png
(7.71 КБ) 620 скачиваний
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Пример для атмега328. Смотрите дата шит для своего МК сами, возможно названия другие. Прерывание вы тоже не сказали какое, в примере таймер-1
Мудрый кот
Аватара пользователя
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Сообщение Kavka »

daaar писал(а):Вроде все указываю, но ошибка что TIFR1 и TIMSK1 не определены
Хмм... Компилировать пытаетесь для tiny2313.
Смотрим в avr/io.h, оттуда идём и смотрим в avr/iotn2313.h
И что же мы там находим? Там действительно нет TIFR1 и TIMSK1. Но есть TIFR и TIMSK. :facepalm:
Да же в спецификации на ATtiny2313 есть только TIFR и TIMSK.

А исходник откуда? Откуда вы взяли с "единичками"?
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

Kavka писал(а):
daaar писал(а):Вроде все указываю, но ошибка что TIFR1 и TIMSK1 не определены
Хмм... Компилировать пытаетесь для tiny2313.
Смотрим в avr/io.h, оттуда идём и смотрим в avr/iotn2313.h
И что же мы там находим? Там действительно нет TIFR1 и TIMSK1. Но есть TIFR и TIMSK. :facepalm:
Да же в спецификации на ATtiny2313 есть только TIFR и TIMSK.

А исходник откуда? Откуда вы взяли с "единичками"?
Скинул в тему кто-то, я не подумав и скомпилил, ибо сами хедеры лежат далеко
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 383
Зарегистрирован: Вс янв 31, 2016 18:04:39
Откуда: Montreal

Сообщение MagicianT »

Я и говорил, что пример для атмега328. Да и всё равно выставить 2 регистра смысла не имеет, пока вы не обьясните какое прерывание и за чем надо, там ещё 2-5 штук выставлять надо, имена все расписаны в даташите на atmel.com
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Если мне не изменяет память, IDE Eclipse существует для линуха и имеет все те же возможности, что и для винды. Рекомендую - не пожалеете. Кстати, не забудьте скачать и установить плугин Eclipse для работы с AVR - он так и находится в маркетплейсе по ключевому слову "AVR"

блокнот - это кошмар
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Виндовый блокнот действительно кошмарен. Но если под блокнотом имеется в виду просто текстовый редактор - другое дело. Я, например, пользуюсь KWrite, вполне удобно. А ставить тяжелый эклипс и шаманить с автоформатированием лень.
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

Сообщение a5021 »

Вы горбуху всякую советуете потому, что Sublime Text 3 не видели. По сравнению с ним в лес идут не только блокноты с крайтами, но и эклипсы со студиями.
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

Не подскажете, как называется пакет, а то по названию я в репозитории не нашел? Ну и хотя бы пару объективных преимуществ. Единственное, чего мне в KWrite не хватает - автодополнение полей структур и классов да подсказка по входным параметрам функций. Сомневаюсь, что технически это было возможно реализовать для всех двух сотен языков, которые эта программа знает.
На счет редактора гораздо важнее личное удобство, чем объективный функционал. Ну и задачи: для проверки поведения компилятора я не буду запускать тяжелый эклипс, когда достаточно мгновенно запускающегося блокнота.
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

ARV писал(а):Если мне не изменяет память, IDE Eclipse существует для линуха и имеет все те же возможности, что и для винды. Рекомендую - не пожалеете. Кстати, не забудьте скачать и установить плугин Eclipse для работы с AVR - он так и находится в маркетплейсе по ключевому слову "AVR"

блокнот - это кошмар
Eclips не выход, как и codeblocks. Я использую vim, иногдa sublime text
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 920
Зарегистрирован: Пн июн 13, 2016 19:37:24
Откуда: Perm

Сообщение daaar »

COKPOWEHEU писал(а):Не подскажете, как называется пакет, а то по названию я в репозитории не нашел? Ну и хотя бы пару объективных преимуществ. Единственное, чего мне в KWrite не хватает - автодополнение полей структур и классов да подсказка по входным параметрам функций. Сомневаюсь, что технически это было возможно реализовать для всех двух сотен языков, которые эта программа знает.
На счет редактора гораздо важнее личное удобство, чем объективный функционал. Ну и задачи: для проверки поведения компилятора я не буду запускать тяжелый эклипс, когда достаточно мгновенно запускающегося блокнота.
Его не в репозитории, качай deb пакет или rpm. Sublime Text+packagecontrol реально удобная вещь, если настроить его
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18783
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

daaar писал(а):Eclips не выход, как и codeblocks.
с моей точки зрения в качестве IDE использование Eclipse просто идеально: существующий плагин для AVR позволяет очень удобно прошивать МК при помощи avrdude, при использовании аппаратных отладчиков так же становится реальной отладка, а с некоторыми ограничениями можно симулировать при помощи simavr.

Но если VIM для вас - это лучшее решение, я со своими скромными советами умолкаю... лично я после знакомства с "удобными" редакторами линуха надолго выпал в осадок, и теперь немею при встрече с людьми, которые ЭТИМ пользуются - они либо невероятной крутости герои, либо конченные мазохисты. я не такой, увы...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Ответить

Вернуться в «AVR»