Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
#include // Обработчик прерывания INT0 void main(void) // разрешение прерываний: флаг I регистра SREG установлен // условие генерации внешнего прерывания INT0: по низкому уровню(ISC11 и ISC10 сброшены) // разрешение внешнего прерывания INT0 while(1); Если вместо макроса SIGNAL поставить INTERRUPT, то после обработки прерывания на выводе PD2 вместо положенных, например 4,5В(при Vcc=5В) напряжение калеблется от 0,1В до 0,5В... Если ставлю SIGNAL, то то после обработки прерывания на выводе 4,5В. В чём может быть дело? Ведь SIGNAL просто не "прерывает" обработчик, который в данный момент работает... Помогите пожалуйста разобраться!
#include
#include
SIGNAL(SIG_INT0)
{
PORTB = 0x0002;
}
{
int i;
// инициализация порта B
DDRB = 0x00FF;
PORTB = 0x0000;
sei();
MCUCR &= 0x00F3;
GIMSK |= 0x0040;
}
Ответы