реклама на сайте
подробности

 
 
> пропадает прерывание
vooon
сообщение Feb 23 2007, 23:36
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401



Почти дописал одноканальный диммер
но возникла проблема:
работает либо часть регулировки, либо часть приема RC5.
нашел причина - отключается прерывание, но ни как не могу понять почему! cranky.gif

(в архиве проект под CV)
Прикрепленные файлы
Прикрепленный файл  dimmer.rar ( 47.99 килобайт ) Кол-во скачиваний: 38
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
vooon
сообщение Feb 24 2007, 09:53
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 72
Регистрация: 27-06-06
Из: Msk
Пользователь №: 18 401



очень интересно симулирует протей angry.gif
оказалось GICR всегда (!) у него читается как 0x00!
и поэтому макросы cbi(), sbi() вместо ожидаемого действия ( GICR = GICR & ~(1 << INT1); )
делали GICR = 0x00 & ~(1 << INT1);

в реальной меге8 должно работать (по естифееву значится R/W => должен нормально читаться)
можно конечно заменить макросы на GICR.7 = 0;, но это непереносимо, и неудобно - CV ругается на такую запись GICR.INT1 = 0;

проверил просто:
Код
  init_chip();
  rc5_init();
  load_init();

заменил на
Код
  init_chip();
  printf("GICR: 0x%02X\r\n", GICR);
  rc5_init();
  printf("GICR: 0x%02X\r\n", GICR);
  load_init();
  printf("GICR: 0x%02X\r\n", GICR);


похожая ситуация с граф. дисплеями - читаются нули место реального значения sad.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 14:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01352 секунд с 7
ELECTRONIX ©2004-2016