Прерывание по изменению уровня на INT0

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Опытный кот
Аватара пользователя
Сообщения: 849
Зарегистрирован: Сб янв 05, 2008 11:05:15
Откуда: Україна м.Луцьк

Сообщение sachok »

Всё же стоит испытать работает any change или нет.
Я не Сашок!!!
Контактная информация:
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 586
Зарегистрирован: Ср мар 07, 2007 22:58:02
Откуда: Черкассы, Украина

Сообщение Negor »

Я веточку одним глазом пробежал... о каком МК идёт речь?
There is only 10 kind of people: those who understands binary code and those who dont!!!
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 96
Зарегистрирован: Сб авг 15, 2009 07:31:56
Откуда: г. Кемерово

Сообщение -==MAXCELERON==- »

Negor писал(а):Я веточку одним глазом пробежал... о каком МК идёт речь?
Mega8 , tiny2313 и т.д.
Встал на лапы
Аватара пользователя
Сообщения: 96
Зарегистрирован: Сб авг 15, 2009 07:31:56
Откуда: г. Кемерово

Сообщение -==MAXCELERON==- »

sachok писал(а):Всё же стоит испытать работает any change или нет.
Пробовал - не работает ! :idea:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

-==MAXCELERON==- писал(а):Пробовал - не работает ! :idea:
А какая длительность входного импульса? Она должна быть заведомо больше чем время срабатывания+время обработки+ время выхода из прерывания. Тем более Вы на С пишете, там при заходе куча времени теряется на загрузку стека.
PS. Из личного опыта "борьбы" с высокоумными оболочками типа CVAVR AVR Builder, гдето на ранней стадии напоролся на такую фишку: при пользовании авторедактором установка битов в управляющих регистрах производилась некорректно. Д.б. например 0х25, а он писал 0х35. Намаявшись с ентим делом и некоторыми другими, перешел на ассемблер. Там уж точно что ставлю то и стоит.
(Ни в коем случае не агитирую за мой путь. А то тут еще в разжигании распри обвинят :evil: )
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 96
Зарегистрирован: Сб авг 15, 2009 07:31:56
Откуда: г. Кемерово

Сообщение -==MAXCELERON==- »

Meteor писал(а): А какая длительность входного импульса? Она должна быть заведомо больше чем время срабатывания+время обработки+ время выхода из прерывания.
Время импульса более чем достаточно - от кнопки.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

В традиционном протеусе симулируете? А пишете в чем? Схемку приведите.Кнопка как прикошачена? И, на всякий, проверьте установку битов в тексте программы.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 96
Зарегистрирован: Сб авг 15, 2009 07:31:56
Откуда: г. Кемерово

Сообщение -==MAXCELERON==- »

Meteor писал(а):В традиционном протеусе симулируете? А пишете в чем? Схемку приведите.Кнопка как прикошачена? И, на всякий, проверьте установку битов в тексте программы.
Да, в протеусе. Програмлю на winavr
Вложения
WinRAR.rar
(12.11 КБ) 154 скачивания
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Для начала попробуйте вывод МК с кнопкой подцепить внешним резистором к питанию. И вопрос на засыпку, внутреннюю подтяжку вывода порта включаете у МК?
Последний раз редактировалось Meteor Сб авг 29, 2009 17:41:18, всего редактировалось 1 раз.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 96
Зарегистрирован: Сб авг 15, 2009 07:31:56
Откуда: г. Кемерово

Сообщение -==MAXCELERON==- »

Meteor писал(а):Для начала попробуйте вывод МК с кнопкой подцепить внешним резистором к питанию. И вопрос на засыпку, внутреннюю подтяжку включаете у МК?
Ну разумеется подтяжка есть!!! :idea:
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Я в своих системах НИКОГДА не полагаюсь на подттяжку (хоть и включаю) и ставлю резисторы, не мешает. В протеусе честно говоря не симулирую. Достаточно ресурсов аврстудии, железо как работает за МК в голове кручу (по схеме). Но Вам, рекомендую пробежаться по веткам связанным с протеусом может что нароете.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

И еще, если не жалко выложите свой код. Те кто "орудует" в винавре наверняка смогут прогнать у себя и может что найдут
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 96
Зарегистрирован: Сб авг 15, 2009 07:31:56
Откуда: г. Кемерово

Сообщение -==MAXCELERON==- »

Meteor писал(а):И еще, если не жалко выложите свой код. Те кто "орудует" в винавре наверняка смогут прогнать у себя и может что найдут
Да пожалуйста :)
Вложения
WinRAR.rar
(11.74 КБ) 173 скачивания
Последний раз редактировалось -==MAXCELERON==- Сб авг 29, 2009 18:09:52, всего редактировалось 2 раза.
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

Хоть и не любитель С, но любопытство взяло верх. Короче проет сваливается на начало, не задерживаясь в вечном цикле.
Последний раз редактировалось Meteor Сб авг 29, 2009 18:14:34, всего редактировалось 1 раз.
Контактная информация:
Встал на лапы
Аватара пользователя
Сообщения: 96
Зарегистрирован: Сб авг 15, 2009 07:31:56
Откуда: г. Кемерово

Сообщение -==MAXCELERON==- »

Meteor писал(а):Хоть и не любитель С, но любопытство взяло верх. Короче проет сваливается на начало, не задерживаясь в вечном цикле. Так не делают. Программа на С должна содержать главную функцию(чаще main). Внутри нее настройки старта (насколько помню), затем в ней же вечный цикл. Обработка прерываний вне майна. Поройся на ветках посмотри как пишут правильно
Да нет, все правильно. Просто если нужно прерывание по изменению делаем так:
char y = 1;

ISR(INT0_vect){ //Обработчик прерывания

if (y == 1){



y = 0;

MCUCR = 0x02; // Следующее прерывание по спаду
PORTC = 0xff;
}

else {
y = 1;
PORTC = 0x00;
MCUCR = 0x03; // Опять по повышению

}

} // Конец прерывания

Проблема решена. :)))
Друг Кота
Аватара пользователя
Сообщения: 3961
Зарегистрирован: Пн июл 13, 2009 14:37:39
Откуда: Московская область, наукоград.....

Сообщение Meteor »

-==MAXCELERON==- писал(а): Проблема решена. :)))
Уверен? Тогда поздравляю :))
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 586
Зарегистрирован: Ср мар 07, 2007 22:58:02
Откуда: Черкассы, Украина

Сообщение Negor »

Скажу вам что в протеусе у меня прерывания не работали внешние. Я помню что очень туго там мне было. Но именно на Меге8 и именно RC5 подобный протокол я делал. И он работал. И пользовался я именно anychange-вариантом прерывания
There is only 10 kind of people: those who understands binary code and those who dont!!!
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18786
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

протеусов развелось - как собак нерезаных... в одной версии прерывание ANY CHANGE PIN не симулируется (именно для меги8 проверял), в другой - симулируется... проверяйте в железе, не доверяйте протеусу на 100% !
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

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

Вернуться в «Микроконтроллеры и ПЛИС»