16+
Среда
21 августа
Вход |Карта сайта |Upload |codebook | PARTS

 О смысле всего сущего 0xFF

 Средства и методы разработки

 Мобильная и беспроводная связь

 Блошиный рынок Объявления

caxapa

Микроконтроллеры ARM 

AVR PIC MSP PLD,FPGA,DSP 

Кибернетика Технологии 

Схемы, платы, компоненты 

Микроконтроллеры AVR

 
Новая темаПравила РегистрацияСтатистика Архив
Вернуться в конференциюТопик полностью
avrdude  (02.12.2018 22:39) , в ответ на Перенесите мигалку из прерывания переполнения в прерывание одного из фронтов. И проверьте, как срабатывает. автор: Nikolay_Po
перенес мигалку из оверфлоу в капчуре двумя способами, но к сожалению не срабатывет, на осциле ничего не вижу 
////прерывание захвата ICP1
ISR(TIMER1_CAPT_vect) {
	switch(zamer_T)
	{	
		case 0:
		rising_1 = ICR1; // Запоминаем значение счётчика
		OVF_counter = 0; // Обнуляем количество переполнений счётчика
		zamer_T = 1; // Переходим к следующему вычислению
		RELAY_PORT |= 1 << RELAY_PIN; //relay on		///////////////////////////////////////////////////////////////////////
		break;
		
		case 1:
		rising_2 = ICR1; // Запоминаем значение счётчика
		// Приводим все переменные к одному типу и вычисляем период импульса
		T = (unsigned long)rising_2 - (unsigned long)rising_1 + ((unsigned long)OVF_counter * 65536UL);
		zamer_T = 0;
		zamer_1 = 2; // Переходим к следующему вычислению периода и частоты
		RELAY_PORT &= ~(1 << RELAY_PIN); //relay off ////////////////////////////////////////////////////////////////////////
		break;
	}
}
////прерывание захвата ICP1
ISR(TIMER1_CAPT_vect) {
	switch(zamer_T)
	{	
		case 0:
		rising_1 = ICR1; // Запоминаем значение счётчика
		OVF_counter = 0; // Обнуляем количество переполнений счётчика
		zamer_T = 1; // Переходим к следующему вычислению
		
		RELAY_PORT &= ~(1 << RELAY_PIN); //relay off ////////////////////////////////////////////////////////////////////////
		RELAY_PORT |= 1 << RELAY_PIN; //relay on		///////////////////////////////////////////////////////////////////////
		RELAY_PORT &= ~(1 << RELAY_PIN); //relay off ////////////////////////////////////////////////////////////////////////
		
		break;
		
		case 1:
		rising_2 = ICR1; // Запоминаем значение счётчика
		// Приводим все переменные к одному типу и вычисляем период импульса
		T = (unsigned long)rising_2 - (unsigned long)rising_1 + ((unsigned long)OVF_counter * 65536UL);
		zamer_T = 0;
		zamer_1 = 2; // Переходим к следующему вычислению периода и частоты
		RELAY_PORT &= ~(1 << RELAY_PIN); //relay off ////////////////////////////////////////////////////////////////////////
		break;
	}
}
Главная | Карта сайта | О проекте | Проекты | Файлообменник | Регистрация | Вебмастер | RSS
Лето 7527 от сотворения мира. При использовании материалов сайта ссылка на caxapу обязательна.
MMI © MMXIX