Перейти к содержанию

PIC прерывания


Рекомендуемые сообщения

Доброго времени суток всем!

Продолжаю разбираться с MK PIC, делаю на С в MPLAB, МК PIC12F629, вопрос по прерываниям.

Правильно ли я понимаю концепцию, процедура для прерывания одна и в ней уже определяем от чего произошло прерывание?

Есть вот такая процедура прерывания таймера по переполнению

void interrupt isr(void) 
if(TMR1IF)
{
	TMR1IF =0;
	TMR1= 65537 - 1000 + TMR1;
	tmr1_modal();
	ms++;
	if(ms>999)
	{
		ms=0;
		NOP(OUT=0);	// 1 секунда
	}
}
}

 

Правильно ли будет добавить в нее прерывание от внешнего сигнала вот так?

void interrupt isr(void) 
{
if(INTF)
{
	INTF=0;
	imp++;
	sec=sec-100;
}
if(TMR1IF)
{
	TMR1IF =0;
	TMR1= 65537 - 1000 + TMR1;
	tmr1_modal();
	ms++;
	if(ms>999)
	{
		ms=0;
		NOP(OUT=0);	// 1 секунда
	}
}
}

Оно вроде как работает, но не уверен, что так правильно.

 

Может это меня глючит, но вроде бы вчера задавал этот вопрос, сегодня темы нету, если что то нарушаю, извиняюсь, просигнальте как нибудь, больше не буду.

Изменено пользователем hsl
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...