Код
#include "iom88.h"
#include <intrinsics.h>
#define F_CPU 8000000ul // тактовая процессора
// инициализация для генерации меандра на ножке 1(OCR2B)
// Используеи таймер 2
void PWM_init (void)
{
PRR &= ~(1<<PRTIM2);
TIMSK2 = 0; // прерывания запрещены
TCNT2 = 0;
TCCR2A = (1<<COM2B0) | (1<<WGM21); // CTC режим
TCCR2B = (1<<CS20) | (1<<CS21) | (1<<CS22); // прескаллер 1024
OCR2B = 8; // 500 Герц
}
int main( void )
{
DDRD = 0xFF;
PORTD &= ~(1<<2);
PWM_init();
for (;;)
{
PORTD &= ~(1<<2);
__delay_cycles(500000);
PORTD |= (1<<2);
__delay_cycles(500000);
}
}
#include <intrinsics.h>
#define F_CPU 8000000ul // тактовая процессора
// инициализация для генерации меандра на ножке 1(OCR2B)
// Используеи таймер 2
void PWM_init (void)
{
PRR &= ~(1<<PRTIM2);
TIMSK2 = 0; // прерывания запрещены
TCNT2 = 0;
TCCR2A = (1<<COM2B0) | (1<<WGM21); // CTC режим
TCCR2B = (1<<CS20) | (1<<CS21) | (1<<CS22); // прескаллер 1024
OCR2B = 8; // 500 Герц
}
int main( void )
{
DDRD = 0xFF;
PORTD &= ~(1<<2);
PWM_init();
for (;;)
{
PORTD &= ~(1<<2);
__delay_cycles(500000);
PORTD |= (1<<2);
__delay_cycles(500000);
}
}
На PD2 - для контроля светодод моргает.
На PD3/OC2B - логическая единица, меандра нет :-(