реклама на сайте
подробности

 
 
> delay через таймер
unkier
сообщение Jan 20 2008, 10:27
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 20-01-08
Пользователь №: 34 249



делал по примерам, но не работает, зацикливается на прерывании.
куда копать уже не знаю.
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
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 01:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016