Привет всем! Вопрос следующий: простая программа - мигание светодиодом, но последняя команда в цикле "_delay_ms(2000);" не отрабатывает как положено. Задержка не 2 сек., а примерно 0,25 сек. или даже меньше. Код следующий:
CODE:
#define F_CPU 1000000UL // 1 MHz
#include <avr/io.h>
#include <avr/delay.h>
int main(void)
{
DDRA = 0xff;
for (;;)
{
PORTA = 0xff;
_delay_ms(2000);
PORTA = 0x00;
_delay_ms(2000);
}
}
Если "_delay_ms(2000);" перенести в начало цикла, то все работает нормально:
CODE:
#define F_CPU 1000000UL // 1 MHz
#include <avr/io.h>
#include <avr/delay.h>
int main(void)
{
DDRA = 0xff;
for (;;)
{
_delay_ms(2000);
PORTA = 0xff;
_delay_ms(2000);
PORTA = 0x00;
}
}
Я так и не понял в чем ошибка( Микроконтроллер Attiny 84, среда WinAVR. Буду признателен за любую помощь))(Отредактировано автором: 18 Сентября, 2013 - 17:17:48) |