По работе с таймерами

Здесь рассматриваются вопросы относящиеся к работе библиотеки AXLIB
Ответить
Алексей bird
Сообщения: 39
Зарегистрирован: 20 мар 2017, 22:38

По работе с таймерами

Сообщение Алексей bird » 12 янв 2019, 17:16

Доброго дня, Алексей!
Продолжаю мучить твою библиотеку и вот обнаружил нюанс. Вот небольшой код

Код: Выделить всё

....
....

int main(void)
{
// Здесь должны находиться ваши локальные переменные
uint8_t SV=1, SV2=1; //Временный флаг для отслеживания работы МК


// Настройка портов
PORTA_OUT(7);
PORTA_OFF(7);
PORTD_IN(2);
//PORTD_ON(2);
PORTD_OUT(3);
PORTD_OFF(3);
PORTD_OUT(4);
PORTD_OFF(4);
PORTD_OUT(5);
PORTD_OFF(5);
PORTD_OUT(6);
PORTD_OFF(6);
PORTD_OUT(7);
PORTD_OFF(7);


// Инициализация Таймеров
timers_init();

// Включен таймер 0 с периодом 10 мс
timer(TIMER_0, 100, ON);
// Включен таймер 1 с периодом 500 мс
timer(TIMER_1, 2000, ON);

	while(1)
	{

		// Обработчик события таймера T0
		if(T0_START)
		{
						
if (SV2)
{
	PORTD_ON(5);
	SV2 = 0;
}
else
{
	PORTD_OFF(5);
	SV2=1;
}
			T0_STOP;
		}
Инклюды и прочее лишнее я исключил этого примера, чтобы не захламлять код. Ну в общем если залить код в МК, кстати работает он на 8мгц, где мы только мигаем светодиодом по таймеру, то интервалы вроде соблюдаются. Но как только в код добавляем работу с LCD, чтение RTC, чтение 1wire, то временные интервалы начинают увеличиваться. И светодиод уже моргает с паузой где-то в 0,6-0,7 сек. Это норм ситуация?

Аватара пользователя
gurvinok
Сообщения: 1532
Зарегистрирован: 02 мар 2013, 09:18
Откуда: Москва

Re: По работе с таймерами

Сообщение gurvinok » 13 янв 2019, 21:33

Да, есть такое. Для точных тайменгов нудно отдельные функции писать. Это упращенка.
Если долго мучиться, может быть получится.

Ответить