Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: пропадает прерывание
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
vooon
Почти дописал одноканальный диммер
но возникла проблема:
работает либо часть регулировки, либо часть приема RC5.
нашел причина - отключается прерывание, но ни как не могу понять почему! cranky.gif

(в архиве проект под CV)
vooon
очень интересно симулирует протей 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
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.