Страница 1 из 2

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

Добавлено: Пт июн 17, 2016 19:37:00
daaar
Кто работал с avr-gcc, можете объяснить как работать с прерываниями? В интернете нашел статьи только под IDE, но они используют свои макросы, с которыми avr-gcc не умеет работать.

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

Добавлено: Пт июн 17, 2016 20:08:54
MagicianT
Какое конкретно, и какая ИДЕ?
Для таймера, пример

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

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

ISR(TIMER1_COMPB_vect)
{ }

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

Добавлено: Сб июн 18, 2016 02:53:05
Vov123
Шпак давно уже рассказал: http://mexalib.com/view/2930
стр.49 и стр.341

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

Добавлено: Сб июн 18, 2016 06:14:37
daaar
MagicianT писал(а):Какое конкретно, и какая ИДЕ?
Для таймера, пример

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

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

ISR(TIMER1_COMPB_vect)
{ }
это не работает, т.к. я пишу в блокноте, я компилирую через консоль без использования IDE, а avr-gcc не понимает что такое TIFR1 и TIMSK1

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

Добавлено: Сб июн 18, 2016 06:20:04
daaar
Vov123 писал(а):Шпак давно уже рассказал: http://mexalib.com/view/2930
стр.49 и стр.341
может быть и рассказал, но я не использую IDE или winavr. У меня есть только чистый компилятор avr-gcc, а то что описывает Шпак использует встроенные в среду макросы

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

Добавлено: Сб июн 18, 2016 06:26:09
Vov123
Писал, писал, признаю. Не поверил, что бывают люди не ищущие простых решений и идущие в терновниках, не смотря, что рядом благоустроенный тротуар.

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

Добавлено: Сб июн 18, 2016 06:34:28
daaar
Vov123 писал(а):Писал, писал, признаю. Не поверил, что бывают люди не ищущие простых решений и идущие в терновниках, не смотря, что рядом благоустроенный тротуар.
Тротуар есть не везде, я использую linux, а там нету такого выбора как у Windows пользователя

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

Добавлено: Сб июн 18, 2016 08:07:09
MagicianT
Ардуино ИДЕ под Линух. Эти названия TIFR1 и TIMSK1 определены в avr-gcc , не знает если процессор не задан или не тот.

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

Добавлено: Сб июн 18, 2016 08:46:58
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 не определены
Вот что подключаю:

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

Добавлено: Сб июн 18, 2016 09:00:38
MagicianT
Пример для атмега328. Смотрите дата шит для своего МК сами, возможно названия другие. Прерывание вы тоже не сказали какое, в примере таймер-1

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

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

А исходник откуда? Откуда вы взяли с "единичками"?

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

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

А исходник откуда? Откуда вы взяли с "единичками"?
Скинул в тему кто-то, я не подумав и скомпилил, ибо сами хедеры лежат далеко

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

Добавлено: Сб июн 18, 2016 19:10:51
MagicianT
Я и говорил, что пример для атмега328. Да и всё равно выставить 2 регистра смысла не имеет, пока вы не обьясните какое прерывание и за чем надо, там ещё 2-5 штук выставлять надо, имена все расписаны в даташите на atmel.com

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

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

блокнот - это кошмар

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

Добавлено: Сб июн 18, 2016 22:25:00
COKPOWEHEU
Виндовый блокнот действительно кошмарен. Но если под блокнотом имеется в виду просто текстовый редактор - другое дело. Я, например, пользуюсь KWrite, вполне удобно. А ставить тяжелый эклипс и шаманить с автоформатированием лень.

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

Добавлено: Вс июн 19, 2016 05:47:57
a5021
Вы горбуху всякую советуете потому, что Sublime Text 3 не видели. По сравнению с ним в лес идут не только блокноты с крайтами, но и эклипсы со студиями.

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

Добавлено: Вс июн 19, 2016 08:09:02
COKPOWEHEU
Не подскажете, как называется пакет, а то по названию я в репозитории не нашел? Ну и хотя бы пару объективных преимуществ. Единственное, чего мне в KWrite не хватает - автодополнение полей структур и классов да подсказка по входным параметрам функций. Сомневаюсь, что технически это было возможно реализовать для всех двух сотен языков, которые эта программа знает.
На счет редактора гораздо важнее личное удобство, чем объективный функционал. Ну и задачи: для проверки поведения компилятора я не буду запускать тяжелый эклипс, когда достаточно мгновенно запускающегося блокнота.

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

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

блокнот - это кошмар
Eclips не выход, как и codeblocks. Я использую vim, иногдa sublime text

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

Добавлено: Вс июн 19, 2016 10:28:42
daaar
COKPOWEHEU писал(а):Не подскажете, как называется пакет, а то по названию я в репозитории не нашел? Ну и хотя бы пару объективных преимуществ. Единственное, чего мне в KWrite не хватает - автодополнение полей структур и классов да подсказка по входным параметрам функций. Сомневаюсь, что технически это было возможно реализовать для всех двух сотен языков, которые эта программа знает.
На счет редактора гораздо важнее личное удобство, чем объективный функционал. Ну и задачи: для проверки поведения компилятора я не буду запускать тяжелый эклипс, когда достаточно мгновенно запускающегося блокнота.
Его не в репозитории, качай deb пакет или rpm. Sublime Text+packagecontrol реально удобная вещь, если настроить его

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

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

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