Пт июл 27, 2012 17:59:26
Пт июл 27, 2012 21:24:13
#include <avr/io.h>
#define OSC_speed 8000000 //Тактовая частота
int main (void)
{
//Настройка генератора частоты на Timer0, выход OC0A
DDRD |= _BV(PD6); //На выход
TCCR0A |= _BV(COM0A0); //Toggle pin
TCCR0A |= _BV(WGM01); //CTC mode
TCCR0B |= _BV(CS01); //Предделитель тактовой частоты 8 мГц на 8
OCR0A = 0x00F9;
while(1);
}
//Настройка генератора частоты на Timer0, выход OC0
DDRB |= _BV(PB3); //На выход
TCCR0 |= _BV(COM00); //Toggle pin
TCCR0 |= _BV(WGM01); //CTC mode
TCCR0 |= _BV(CS01); //Предделитель тактовой частоты 8 мГц на 8
OCR0 = 0xF9;
Сб июл 28, 2012 06:01:07
Сб июл 28, 2012 06:43:51
#include <mega8535.h>
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
PORTA.0= ~PORTA.0; //инвертируем выход
TCNT0= 0xC2; // предустановка на срабатывание через 250 мксек
}
void main(void)
{
PORTA=0x00;
DDRA=0x01; // портА бит 0 на выход
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 250,000 kHz
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x03; // прескалер
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01; // разрешаем прерывание по переполнению от таймер0
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// Global enable interrupts
#asm("sei")
while (1)
{
};
}
Сб июл 28, 2012 07:15:59
TCCR1A=0b01000000;
// Делитель частоты CLK/64 = 250kHz
TCCR1B=0b00000011;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x40;
OCR1BH=0x00;
OCR1BL=0x00;
TIMSK=0x10;
#asm("sei")