Несколько операций одновременно
Тогда в чем вопрос, если каждое прерывание занимает максимум сотню-другую тактов?
- Реклама
Дошел вот до чего. исключаю из обработки прерывани INT0 (отвечает за прием ИК) весь текст. остается пустое прерывание. лампочка горит на заданой мощности, при нажатии на любую кнопку пульта лампочка ничинает моргать. тоесть любое даже самое короткое по времени прерывание INT0 вызывают сбои в режиме работы....
Странно это... Можно код посмотреть?
Оптимизм х (Опыт + Знания) = const
код с пустой обработкой прерывания пойдет? лампочка горит, сенсорная кнопка работает, а при команде с пульта моргает все равно. тоесть прерывание есть, но в теле всего лишь инвертирование одного светодиода.Aheir писал(а):Странно это... Можно код посмотреть?
в схеме остались переменные необходимые для обработки приема команды
программа ниже:
- Вложения
-
- 1.c
- Dimmer
- (10.09 КБ) 327 скачиваний
Я НАШЕЛ причину которая мешает лампочке нормально гореть. Когда на входе INT0 низкий уровень - перестает инициализироваться прерывания INT1 которые обрабатывают переход 220 через 0.
Добавил кнопку S1, при ее нажатии прерывания INT1 не происходят. При нормальном горении лампочки на входе INT1 - 1.98 В. при нажимании на S1 на выходе INT1 - 2.28 В. Осцилографа, чтоб посмотреть как там меняется сигнал у меня нет. Cмотрю на схему и понять не могу как низкий уровень на INT0 может влиять на вывод INT1?
Добавил кнопку S1, при ее нажатии прерывания INT1 не происходят. При нормальном горении лампочки на входе INT1 - 1.98 В. при нажимании на S1 на выходе INT1 - 2.28 В. Осцилографа, чтоб посмотреть как там меняется сигнал у меня нет. Cмотрю на схему и понять не могу как низкий уровень на INT0 может влиять на вывод INT1?
- Вложения
-
- Мой Стенд3.GIF
- (23.68 КБ) 175 скачиваний
- Реклама
- Сообщения: 459
- Зарегистрирован: Вс июн 01, 2008 12:16:38
А прерывание INT0 у вас как настроено? Если по низкому уровню (подчеркиваю, не по смене уровня сигнала с высокого на низкий а именно по низкому уровню на выводе), то очень даже може. Дело в том, что в этом режиме флаг прерывания выставлен до тех пор, пока на INT0 присутствует низкий уровень. Из-за этого, если по выходу из обработчика глобально разрешаются прерывания, а также, если прерывания от INT0 не запрещены, то обработчик INT0 сразу же выполнится снова, и так будет продолжаться до тех пор пока не будет снят низкий уровень с ноги INT0, либо не будут запрещены прерывания от INT0, либо не будут запрещены прерывания глобально.kvark85 писал(а):Я НАШЕЛ причину ... Cмотрю на схему и понять не могу как низкий уровень на INT0 может влиять на вывод INT1?
Я тоже поначалу подумал что ошибся и выставил прерывание по низкому уровню. Но нет, по спаду. В CodeVisionAVR mode INT0 - Falling Edge
Проясню вопрос.
На рисунке ниже две схемы. И в первом и во втором варианте INT0 настроен как прерывание по спаду. Сенсорный включатель света (sens - это сенсорная кнопка) в варианте 1 работает, мощность лампочки регулируется. работает четко и бес сбоев уже две недели.
вариант 2. тоже самое, только INT0 запаян на 0. не работает. INT1 перестает в таком варианте распознавать переход через 0. почему?
Проясню вопрос.
На рисунке ниже две схемы. И в первом и во втором варианте INT0 настроен как прерывание по спаду. Сенсорный включатель света (sens - это сенсорная кнопка) в варианте 1 работает, мощность лампочки регулируется. работает четко и бес сбоев уже две недели.
вариант 2. тоже самое, только INT0 запаян на 0. не работает. INT1 перестает в таком варианте распознавать переход через 0. почему?
- Вложения
-
- Пояснение.GIF
- (43.46 КБ) 181 скачивание
хм, и даже опторазвязки с сетью нет?..
нет. все вот так как на схеме. я нашел много схем где включается именно таким способом. Вот можно посмотреть по ссылке http://www.smartelectron.ru/pr13.htm
Его компетентности я доверяю. достаточно посмотреть его проекты.
потом посмотрите радио N2. 2007 или передйдите по этой ссылке: http://eldigi.ru/site/house/15.php
Его компетентности я доверяю. достаточно посмотреть его проекты.
потом посмотрите радио N2. 2007 или передйдите по этой ссылке: http://eldigi.ru/site/house/15.php
Проблема устранена, но причина ее остается загадочной.
Вариант схемы 1 - лампочка при приеме команды моргает, при низком уровне на INT0 прерывания по INT1 перестают инициализироваться.
Вариант схемы 2 - все впорядке.
Вариант схемы 1 - лампочка при приеме команды моргает, при низком уровне на INT0 прерывания по INT1 перестают инициализироваться.
Вариант схемы 2 - все впорядке.
- Вложения
-
- 33.GIF
- (26.02 КБ) 382 скачивания


