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

 
 
> ATMEGA88 меандр с помощью таймера не выводится
misyachniy
сообщение Nov 8 2007, 16:21
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Вот полный текст

Код
#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);
    
  }  
}


На PD2 - для контроля светодод моргает.
На PD3/OC2B - логическая единица, меандра нет :-(
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Nov 8 2007, 20:01
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Режим CTC (см. таблицу) работает до OCR2A. То есть, на сколько я себе представляю нужно в TCCR2A также занести 8
Go to the top of the page
 
+Quote Post



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

 


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


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