Страница 2 из 2
Добавлено: Сб авг 29, 2009 13:42:13
sachok
Всё же стоит испытать работает any change или нет.
Добавлено: Сб авг 29, 2009 14:09:32
Negor
Я веточку одним глазом пробежал... о каком МК идёт речь?
Добавлено: Сб авг 29, 2009 14:12:02
-==MAXCELERON==-
Negor писал(а):Я веточку одним глазом пробежал... о каком МК идёт речь?
Mega8 , tiny2313 и т.д.
Добавлено: Сб авг 29, 2009 14:12:36
-==MAXCELERON==-
sachok писал(а):Всё же стоит испытать работает any change или нет.
Пробовал - не работает !

Добавлено: Сб авг 29, 2009 16:41:17
Meteor
-==MAXCELERON==- писал(а):Пробовал - не работает !

А какая длительность входного импульса? Она должна быть заведомо больше чем время срабатывания+время обработки+ время выхода из прерывания. Тем более Вы на С пишете, там при заходе куча времени теряется на загрузку стека.
PS. Из личного опыта "борьбы" с высокоумными оболочками типа CVAVR AVR Builder, гдето на ранней стадии напоролся на такую фишку: при пользовании авторедактором установка битов в управляющих регистрах производилась некорректно. Д.б. например 0х25, а он писал 0х35. Намаявшись с ентим делом и некоторыми другими, перешел на ассемблер. Там уж точно что ставлю то и стоит.
(Ни в коем случае не агитирую за мой путь. А то тут еще в разжигании распри обвинят

)
Добавлено: Сб авг 29, 2009 16:57:18
-==MAXCELERON==-
Meteor писал(а):
А какая длительность входного импульса? Она должна быть заведомо больше чем время срабатывания+время обработки+ время выхода из прерывания.
Время импульса более чем достаточно - от кнопки.
Добавлено: Сб авг 29, 2009 17:18:21
Meteor
В традиционном протеусе симулируете? А пишете в чем? Схемку приведите.Кнопка как прикошачена? И, на всякий, проверьте установку битов в тексте программы.
Добавлено: Сб авг 29, 2009 17:29:01
-==MAXCELERON==-
Meteor писал(а):В традиционном протеусе симулируете? А пишете в чем? Схемку приведите.Кнопка как прикошачена? И, на всякий, проверьте установку битов в тексте программы.
Да, в протеусе. Програмлю на winavr
Добавлено: Сб авг 29, 2009 17:40:19
Meteor
Для начала попробуйте вывод МК с кнопкой подцепить внешним резистором к питанию. И вопрос на засыпку, внутреннюю подтяжку вывода порта включаете у МК?
Добавлено: Сб авг 29, 2009 17:41:13
-==MAXCELERON==-
Meteor писал(а):Для начала попробуйте вывод МК с кнопкой подцепить внешним резистором к питанию. И вопрос на засыпку, внутреннюю подтяжку включаете у МК?
Ну разумеется подтяжка есть!!!

Добавлено: Сб авг 29, 2009 17:46:37
Meteor
Я в своих системах НИКОГДА не полагаюсь на подттяжку (хоть и включаю) и ставлю резисторы, не мешает. В протеусе честно говоря не симулирую. Достаточно ресурсов аврстудии, железо как работает за МК в голове кручу (по схеме). Но Вам, рекомендую пробежаться по веткам связанным с протеусом может что нароете.
Добавлено: Сб авг 29, 2009 17:49:55
Meteor
И еще, если не жалко выложите свой код. Те кто "орудует" в винавре наверняка смогут прогнать у себя и может что найдут
Добавлено: Сб авг 29, 2009 17:54:52
-==MAXCELERON==-
Meteor писал(а):И еще, если не жалко выложите свой код. Те кто "орудует" в винавре наверняка смогут прогнать у себя и может что найдут
Да пожалуйста

Добавлено: Сб авг 29, 2009 18:04:40
Meteor
Хоть и не любитель С, но любопытство взяло верх. Короче проет сваливается на начало, не задерживаясь в вечном цикле.
Добавлено: Сб авг 29, 2009 18:14:07
-==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; // Опять по повышению
}
} // Конец прерывания
Проблема решена.

Добавлено: Сб авг 29, 2009 18:25:22
Meteor
-==MAXCELERON==- писал(а):
Проблема решена.

Уверен? Тогда поздравляю

Добавлено: Пн авг 31, 2009 11:32:31
Negor
Скажу вам что в протеусе у меня прерывания не работали внешние. Я помню что очень туго там мне было. Но именно на Меге8 и именно RC5 подобный протокол я делал. И он работал. И пользовался я именно anychange-вариантом прерывания
Добавлено: Пн авг 31, 2009 12:00:19
ARV
протеусов развелось - как собак нерезаных... в одной версии прерывание ANY CHANGE PIN не симулируется (именно для меги8 проверял), в другой - симулируется... проверяйте в железе, не доверяйте протеусу на 100% !