Может ну его, эти микроконтроллеры?[/uquote]
по шиму .. да можно плавно зажигать, а как мигать то им в прерываниях
да вам же не один раз говорили, как! что не понятно вам?danilka468 писал(а):а как мигать то им в прерываниях
Код: Выделить всё
#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 16000000UL // 16 MHz
volatile unsigned char tmp=0;
ISR(TIMER0_OVF_vect) // подпрограмма обработки прерывания по
// переполнению таймера
{
TCNT0=0x00; // сбрасываем счетный регистр таймера/счетчика T0
if (tmp<=60) tmp++;
else {
tmp=0;
if (PIND & (1<<PIND3)) {// переключаем светодиоды на линии PD3, PD4
PORTD &= ~(1<<3);
PORTD |= (1<<4);
} else {
PORTD |= (1<<3);
PORTD &= ~(1<<4);
}
}
}
int main(void) // начало основой программы
{
DDRD |= ((1<<3) | (1<<4)); // вывод порты PD3, PD4 сконфигурирован как выход
PORTD &= ~(1<<3); // установить "0" на линии PD3 порта D
PORTD &= ~(1<<4); // установить "0" на линии PD4 порта D
TIMSK =0b00000001; // записываем 1 в бит TOIE0 регистра TIMSK
// устанавливаем флаг разрешения прерывания
// по переполнению таймера/счетчика T0
TCNT0=0x00; // сбрасываем счетный регистр таймера/счетчика T0
TCCR0=0b00000101; // устанавливаем предделитель CK,
// используя биты CS00, CS01, CS02
// (1024)
sei(); // разрешаем прерывания;
while (1) {} // бесконечный цикл - здесь делаем что нибудь...
}