Не Работает Задержка

15-02-2013, 18:39 От: admin Посмотрели: 782
вот моя программа

#define F_CPU 1000000UL
#include <tiny13.h>
#include <delay.h>

volatile int x;
volatile int adc;


void main(void)
{ x=0;
DDRB = 0b111011;
ADCSRA |= (1 << ADEN)|(1 << ADATE)|(1 << ADSC)|(1 << ADPS2)|(1 << ADPS1)|(0 << ADPS0);
ADMUX = (1 << REFS0)|(1<<ADLAR)|(0 << MUX1)|(1 << MUX0); // input ADC1 (pb2)

while(1)
{
if (ADCSRA & (1<<ADIF))
{ adc = ADCL;
adc += (ADCH<<8);
if (adc < 10) {PORTB.0=1;} else { PORTB.0=0; x++; delay_ms(300000); while (adc < 9);}
if (x==20) {PORTB.1=1; delay_ms(1200000); x=0; PORTB.1=0;};
}
}
}

проблема в том, что задержки считаются не правильно. вместо 5мин - 30сек, вместо 20мин - 12сек.

по даташиту флаг ADIF сбрасывается вроде самостоятельно, пробовал перед присвоением adc отключать глобально задержку а потом включать. не помогает. в чем мой плуг?
Раздел: Начинающим

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

Обсудить на форуме


На момент добавления Не Работает Задержка все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Апрель 2024    »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930