@MaxEpt

Почему неправильно подсчитываются прерывания в atmega 2560?

Всем доброго времени суток ! а. Подключаю купюро приемник к atmega 2560. За основу взял эту статью cxem.net/arduino/arduino136.php 1 импульс - 10 рублей. Почему то происходят глюки. например положил 100р - посчитает правильно. Следом еще 100р(с задержкой или без, не важно), может посчитать как 120 р, или как 90 ((
Инициализация прерывания:
void init_interrupt(){
	EICRA &= ~(1<<ISC00);
	EICRA |= (1<<ISC01);
	
	/*EICRA &= ~(1<<ISC10);*/
	/*EICRA |= (1<<ISC11);*/
	
	EIMSK |= (1<<INT0);
	/*EIMSK |= (1<<INT1);*/
		
}


и его обработка
ISR(INT0_vect){
	EIMSK &= ~(1<<INT0);
	//EIMSK &= ~(1<<INT1);
	
	//_delay_ms(100);
	bill_summ += 10;
	printSumm(bill_summ);

	
	//flag = 1;
	//TCNT1 = 0;
	//EIMSK |= (1<<INT1);
	EIMSK |= (1<<INT0);
}

P.S - в обработке прерывания вызывается функция printSumm(Вывод на ks0108 сумму импульсов). Даже если убрать ее вызов, и выводить сумму импульсов по таймеру - теже самые глюки.
  • Вопрос задан
  • 227 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы