Страница 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 или нет.
Пробовал - не работает ! :idea:

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

Добавлено: Сб авг 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 писал(а):Для начала попробуйте вывод МК с кнопкой подцепить внешним резистором к питанию. И вопрос на засыпку, внутреннюю подтяжку включаете у МК?
Ну разумеется подтяжка есть!!! :idea:

Добавлено: Сб авг 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% !