ШИМ на меге48

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Bogdann
Встал на лапы
Сообщения: 81
Зарегистрирован: Ср июл 08, 2009 17:34:17

ШИМ на меге48

Сообщение Bogdann »

помогите пожалуйста с ШИМ на Атмега48V.
нужно чтобы одновременно работали 4 канала апаратного ШИМ таймеров 1 и 2 с возможностью изменения величины ШИМ от 0 до 100%.

пишу на CodeVision.

помогите с рабочим примером на С++ или проектом в CodeVision.!!!!
Реклама
dimm1985
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Вс мар 20, 2011 17:09:31
Откуда: Киев

Re: ШИМ на меге48

Сообщение dimm1985 »

Самое простое использовать ШИМ таймеров 0 и 2
Управление тут какое надо? По подробней надо написать, кнопками, регуляторами, кодом, интерфейсом, каждый отдельно или все вместе, или попарно......

собсно код без управления
(hex и DSN прилагаю)

#include <mega48.h>

void main(void)
{

// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=0 State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x08;

// Port D initialization
// Func7=In Func6=Out Func5=Out Func4=In Func3=Out Func2=In Func1=In Func0=In
// State7=T State6=0 State5=0 State4=T State3=0 State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x68;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 1000,000 kHz
// Mode: Fast PWM top=0xFF
// OC0A output: Non-Inverted PWM
// OC0B output: Non-Inverted PWM
TCCR0A=0xA3;
TCCR0B=0x02;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 1000,000 kHz
// Mode: Fast PWM top=0xFF
// OC2A output: Non-Inverted PWM
// OC2B output: Non-Inverted PWM
ASSR=0x00;
TCCR2A=0xA3;
TCCR2B=0x02;
TCNT2=0x00;
OCR2A=0x00;
OCR2B=0x00;

while (1)
{

OCR0A=50;
OCR0B=25;
OCR2A=100;
OCR2B=200;

}
}
Вложения
test_PWM.rar
скомпилен из кода выше
(361 байт) 147 скачиваний
4PWM.rar
Proteus 7.8 SP2
(10.27 КБ) 172 скачивания
Реклама
Bogdann
Встал на лапы
Сообщения: 81
Зарегистрирован: Ср июл 08, 2009 17:34:17

Re: ШИМ на меге48

Сообщение Bogdann »

задача состоит в следующим. Надо сделать регулятор оборотов с реверсом для для двух коллекторных моторов для модели корабля.
Для каждого мотора нужно два отдельных канала ШИМ, для движения вперед-назад, и того нужно 2 таймера с двумя независимыми каналами ШИМ.
Контроллер считует сигнал с двух каналов приемника радиоуправление, и в зависимости од его длины определяет направление движения моторов, комбинируя каналы ШИМ и его величину. Двигатели подключены в Н мост (схема в архиве)

В Протеусе все хорошо работает, но когда прошил прошивку, то получается, что работает только один канал ШИМ одного таймера. Заставить работать два сразу, никак не получается. На выходах либо 0 либо работает только один канал
Вложения
PWM.rar
(136.77 КБ) 166 скачиваний
Bogdann
Встал на лапы
Сообщения: 81
Зарегистрирован: Ср июл 08, 2009 17:34:17

Re: ШИМ на меге48

Сообщение Bogdann »

Прошил Вашей прошивкой контроллер.
ШИМ есть только на ножке 11,12. На 5 и 17 ножке логический 0.
Может проблема в контроллере. Использую Atmege 48V. частота тактирования - по умолчанию
Реклама
Эиком - электронные компоненты и радиодетали
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»