помогите инициализировать INT1 на астме

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

испытатель подожди)) дай несчастные 3 строчки настройки инта1)) мне нельзя без стимулятора)
глаза боятся, а руки что то не делают))
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

вов51 я что то не совсем понял что вы мне скинули) адреса занятые регистрами) , заголовочный файл без векторов) , и егу с километр)
глаза боятся, а руки что то не делают))
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15751
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

m8Adef.inc - содержит все необходимое ( в том числе и вектора....
Блин,погнали от компа спатки :facepalm: :facepalm:
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

спокойной ночи, пойду читать..
глаза боятся, а руки что то не делают))
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

верно я настроил INT1 ?
Вложения
Новая папка (2).rar
(4.98 КБ) 129 скачиваний
глаза боятся, а руки что то не делают))
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

неверно. Но попытка была хорошая.

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

      ldi r16, 0b00000100
      out MCUCR, r16            ; INT1 по спадающемуфронту
      ldi r16, 0b01000000
      out GICR, r16             ; 7 бит для INT1
      ldi r16, 0b01000000
      out GIFR, r16  ;
Проблема в том что Вы не умеете считать, как программист. Программисты считают не с 1, а с 0. ;) Поэтому 7-й бит - это бит №8 в обычном понимании. ))

Изображение

Изображение

Вы выставили зарезервированное значение.
А GICR и GIFR настроили для INT0

Я Вам дам хороший совет, чтобы не путаться в нулях и единицах.
Заместо 0b01000000 (заметьте, выставлен 6-й бит) лучше написать (1<<6) (единица или 0b00000001 сдвинутая влево 6 раз, как раз 6-й бит или бит №7)
А еслиу вас 0b01000100, то можно записать так: (1<<6) | (1<<2) (объединить по ИЛИ единицу сдвинутую на 6 бит и единицу сдвинутую на 2 бита)
0b10011001 = (1<<7) | (1<<4) | (1<<3) | (1<<0) (единица сдвинутая на 0 бит - это та же единица)
и т. д.

А чтобы сбросить биты пишем так:

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

in r16, MCUCR
andi r16, ~( (1<<7) | (1<<4)) ; сбросить биты 7 и 4 (мы их как бы сначала усанавливаем, а потом инвертируем и по операции И на них 0 попадает, т.е. сброс
out MCUCR, r16
А еще у Вас в инклуд-файле, который Вы в начале добавили, уже обозначены все регистры и биты в них и можно записать так:

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

ldi r16, (1<<ISC11)   ; (ISC10 мы здесь не устанавливаем) можно написать так: ldi r16, (1<<ISC11) | (0<<ISC10)
out MCUCR, r16
ldi r16, (1<<INT1)
out GICR, r16
ldi r16, (1<<INTF1)   ; Эту строчку можно не ставить, поскольку бит INT1 = бит INTF1 = 7
out GIFR, r16
Вложения
Настройка INT.png
(61.82 КБ) 624 скачивания
GIFR.png
(8.4 КБ) 550 скачиваний
Последний раз редактировалось ИС-пытатель Пт апр 18, 2014 13:12:08, всего редактировалось 6 раз.
Реклама
akl
Друг Кота
Сообщения: 4468
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

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

      ldi r16, 0b00000100
      out MCUCR, r16            ; [s]INT1 по спадающемуфронту[/s] прерывание по любому переключению на входе INT1
      ldi r16, 0b01000000
      out GICR, r16             ; [u]7 бит для INT1[/u] правильный комментарий и неправильная установка
;      ldi r16, 0b01000000; этой командой сбрасывается INT0
      out GIFR, r16  ;
ИС-пытатель не пользуйтесь старыми DS. Для MEGA8A прерывания INT1 будут такими
Изображение
INT1_MEGA8A.GIF
Последний раз редактировалось akl Пт апр 18, 2014 13:04:38, всего редактировалось 1 раз.
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Чтобы не путаться в номерах битов, понимать что они значат и легко переносить код на другой контроллер (где этот бит обзывается так же, но сидит под другим номером), советую на будущее вместо "магических цифр" вроде 0b01000000 использовать конструкцию такого вида:

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

 ldi r16, (1<<ISC11)
 out MCUCR, r16            ; INT1 по спадающемуфронту
где 1 - это то что сделать с битом (1 - установить, 0 - не устанавливать), << - это сдвиг на X бит влево, а ISC11 это имя бита из даташита (определяется в def-файле именно тем самым номером X). Если нужно установить несколько бит, скобки соединяются логическим сложением (знак |):
ldi r16, (1<<ISC11)|(1<<ISC10) ; - во переднему фронту
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Engineer_Keen писал(а): ldi r16, (1<<ISC11)|(1<<ISC10) ; - во переднему фронту
по переднему фронту 10
akl писал(а):ИС-пытатель не пользуйтесь старыми DS. Для MEGA8A прерывания INT1 будут такими
Просто нужно Евстифеева параллелить с последним актуальным даташитом на камень. ) Мне сейчас лень. В целях обучения сойдет
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

исправил вроде
Вложения
Новая папка (2).rar
(4.97 КБ) 141 скачивание
глаза боятся, а руки что то не делают))
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Выкладывайте свернутый код. Архив неудобен.
Теперь будет работать. Только вот символьное обозначение битов Вы пропустили мимо ушей, лап и хвоста. ) А что у Вас за любовь такая к КУКАм и СУКАм? ))

P.S. Не забудьте подтянуть ножку к + питанию. (внешним резистором или программно настройкой порта) иначе у Вас нога будет все подряд ловить. И схема не будет правильно работать
Последний раз редактировалось ИС-пытатель Пт апр 18, 2014 13:37:26, всего редактировалось 3 раза.
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

ИС-пытатель писал(а):по переднему фронту 10
Rising Edge - передний фронт. Последняя строка таблиц 2.65 и 31-1 - ISC="11".
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

А, прошу прощения. ) Не тудой глянул. )) Перепутал с фронтом, который хотел указать ТС
akl
Друг Кота
Сообщения: 4468
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Сообщение akl »

Engineer_Keen писал(а):Rising Edge - передний фронт.
Нарастающий, т.е. переходящий от 0[V] к +E[V].
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

Можно и так, это был не дословный перевод, смысл один. Знаю людей (тут на форуме), для которых есть просто фронт (0->1) и спад (1->0).
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

sergo80zxc, объяснять, почему должна быть такая последовательность настройки или сами догадались уже?
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

всем спс) хотел спросить как выкладывать код,что бы зеленым подсвечивало как у вас?

Engineer_Keen возьму на заметку)

испытатель долго вы меня мучили так и плешивым стать не долго :)))
глаза боятся, а руки что то не делают))
Вымогатель припоя
Аватара пользователя
Сообщения: 577
Зарегистрирован: Ср июн 19, 2013 08:10:48
Откуда: Москва, СПб, Липецк, Рязань

Сообщение ИС-пытатель »

Зато читать научились и научились осмысливать то, что прочли
выкладывать код,что бы зеленым подсвечивало как у вас?
Это так называемые BB-коды. Когда сообщение пишите, между заголовком сообщения и окном ввода сообщения кнопочки потыкайте. ;)
Последний раз редактировалось ИС-пытатель Пт апр 18, 2014 13:46:01, всего редактировалось 1 раз.
Встал на лапы
Аватара пользователя
Сообщения: 113
Зарегистрирован: Пт апр 04, 2014 09:34:08
Откуда: Санкт-Петербург

Сообщение sergo80zxc »

испытатель не догадаюсь если не трудно объясните) думаю собратьям аналогичным лопухам тоже будет интересно)
глаза боятся, а руки что то не делают))
Друг Кота
Аватара пользователя
Сообщения: 3872
Зарегистрирован: Пт янв 29, 2010 10:27:40
Откуда: Москва

Сообщение Engineer_Keen »

sergo80zxc, Тег Code (5-й слева вверху). Если что-то длинное, то еще полезный тег spoiler, теги можно комбинировать.

PS упс, опять я влез :)))
Неправильно собранная из неисправных деталей схема нуждается в отладке и сразу не работает... (С)
Ответить

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