Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PWM в Mega32
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
virtuality
Есть небольшой код для WinAvr

Код
  // backlight PWM generation
  // use timer 2 in fast PWM mode for this
  PORTB &= ~_BV(PB7);  // clear port before enable
  DDRB |= _BV(PB7);  // will be used for OC2, must be output
  TCCR2 = _BV(WGM21) | _BV(WGM20) | _BV(COM21) | _BV(CS20);
  TCNT2=0x00;
  OCR2=120;





А мне надо под CodeVision его переделать, причем OCR2 в Mega32 подключен не к PORTB, а к PORTC...
Поковырялся я и что-то ничего не получилось...

Объясните, пожалуйста, как данный код должен выглядеть в CodeVision? Что означает _BV ?


Изначально этот код был для Mega128
beer_warrior
Да это gcc/avr-libc, устаревшая нотация.
Проще подсоединить сам макрос
Код
#define     _BV(bit)   (1 << (bit))

Там же (в avr-libc мануал), можно подсмотреть и остальную специфику.
prottoss
Цитата(virtuality @ Jun 19 2006, 22:34) *
Есть небольшой код для WinAvr
Код
  
  // backlight PWM generation
  // use timer 2 in fast PWM mode for this
  PORTB &= ~_BV(PB7);  // clear port before enable
  DDRB |= _BV(PB7);  // will be used for OC2, must be output
  TCCR2 = _BV(WGM21) | _BV(WGM20) | _BV(COM21) | _BV(CS20);
  TCNT2=0x00;
  OCR2=120;

А мне надо под CodeVision его переделать, причем OCR2 в Mega32 подключен не к PORTB, а к PORTC...
Поковырялся я и что-то ничего не получилось...
Объясните, пожалуйста, как данный код должен выглядеть в CodeVision? Что означает _BV ?
Изначально этот код был для Mega128


Как уже сказали выше, это макрос для работы с битами. Что бы все в тексте не истправлять, напишите в общем хедере вот такой, свой, макрос:
Код

#ifndef _BV
#define _BV(bit_pos) (1 << bit_pos)
#endif

Ну а порты переназначите сами

Опоздал...)))
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.