Использование таймера в Atmega 328P и генерация прямоугольных импульсов

MartinSeptim
Offline
Зарегистрирован: 16.03.2014

Здравствуйте, помогите пожалуйста с написанием программы для генерации прямоугольных импульсов для Atmega 328p. С чего нужно начать, такому нубу как я? Есть ли готовые или подобные скетчи?

Diemon
Offline
Зарегистрирован: 18.11.2011

ШИМ?

MartinSeptim
Offline
Зарегистрирован: 16.03.2014

Diemon пишет:

ШИМ?

Что-то вроде. Но мне необходимо каким-то образом менять его частоту програмно. Мне нужен именно управляемый генератор.

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Вам для чего-то конкретного или так побаловаться,"сдать зачет")))?

Дополнительные фунции ввода/вывода
MartinSeptim
Offline
Зарегистрирован: 16.03.2014

NeiroN пишет:

Вам для чего-то конкретного или так побаловаться,"сдать зачет")))?

Дополнительные фунции ввода/вывода

Сдать курсовую. Я использую свой Atmega 328 для генерауию импульсов, которые идут на смеситель, и в общем итоге я хотел собрать селективный вольтметр, для частот в пределах 100 КГц до 1 МГц.

Спасибо за методы)

renoshnik
Offline
Зарегистрирован: 11.04.2013
MartinSeptim
Offline
Зарегистрирован: 16.03.2014

Снова здравствуйте, помогите разобраться с регистрами. Я написал вот такой код:

void setup() {
  
  pinMode(3, OUTPUT);
  pinMode(11, OUTPUT);
  TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM21) | _BV(WGM20);
  TCCR2B = _BV(CS00);
  OCR2A = 181;
  OCR2B = 90;
  
}

void loop() {

  //Nothing to do

}

, который генерирует сигнал в виде меандр на частоте примерно 56 КГц. Что нужно поменять чтобы генерировать сигнал на частоте 5 МГц ? Расскажите как выставлять данные в регистры? Что значит в CS00 эти 00? Биты?