Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: delay через таймер
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
unkier
делал по примерам, но не работает, зацикливается на прерывании.
куда копать уже не знаю.
mega64
avr studio 4
winavr

Код
#include <stdio.h>
#include <stdlib.h>
#include <avr/interrupt.h>

uint8_t sleep_value;

ISR(TIMER0_OVF_vect)
{

if (sleep_value>0) {sleep_value--;};

}

void timer_start()
{

// (CL_1)
  TCCR0 = (1<<CS02)|(1<<CS00);  // Timer Clock = system clock / 1024
// (CL_2.0)
  TIFR  = 1<<TOV0;        // Clear TOV0 / Clear pending interrupts
// (CL_2.1)
  TIMSK = 1<<TOIE0;             // Enable Timer 0 Overflow Interrupt

}

void timer_sleep(uint8_t value)
{

sleep_value = value;

timer_start();

for(;;)
{
if (sleep_value == 0) break;
}

}

int main(void)
{

    sei();

    timer_sleep(2);
    cli();

for(;;);

}


help.gif
aesok
volatile uint8_t sleep_value;

Анатолий.

PS: Кстати у 64 меги тоже есть фюз M103C, в каком он у вас состоянии?
SasaVitebsk
В таких случаях как ваш, обычно прерывания не используют. Прерывания используются, когда паралельно, с отмериванием паузы у вас выполняется какой-нибудь процесс. Хотя и так как у вас - тоже правильно и имеет место быть. smile.gif Я - ошибки не вижу.

вот такой вот пример
unkier
Цитата(aesok @ Jan 20 2008, 15:34) *
volatile uint8_t sleep_value;

Анатолий.

PS: Кстати у 64 меги тоже есть фюз M103C, в каком он у вас состоянии?


спасибо большое, помогло.
про фьюз не скажу, пока нет доступа к железу, но помню что его никогда не менял.

Цитата(SasaVitebsk @ Jan 20 2008, 16:07) *
В таких случаях как ваш, обычно прерывания не используют. Прерывания используются, когда паралельно, с отмериванием паузы у вас выполняется какой-нибудь процесс. Хотя и так как у вас - тоже правильно и имеет место быть. smile.gif Я - ошибки не вижу.

вот такой вот пример


это кусочек от проекта, там как раз будет параллельная работа

спасибо за пример

тема закрыта
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.