Решил пока освоить прерывания INT0 и INT1 для решения своей задачи.
Возник параллельный вопрос по функции _delay_ms()
Она должна создавать задержку на указанное время в миллисекундах
Но у меня какая то фигня выходит
Если установить частоту МК 8Мгц
Код
#define F_CPU 8000000UL
и вызвать задержку на 200 мс
Код
_delay_ms(200);
то, задержка реально будет не 200 мс, а 1.6 сек. Т.е. МК выполняет функцию _delay_ms() в 8 раз дольше, чем я планировал
Если установить частоту МК 20Мгц
Код
#define F_CPU 20000000UL
и вызвать задержку на 200 мс
Код
_delay_ms(200);
то, задержка реально будет не 200 мс, а 4 сек. Т.е. МК выполняет функцию _delay_ms() в 20 раз дольше, чем я планировал
Что не так?
Сообщение отредактировал aivs - Mar 13 2013, 12:22