Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: режим шим
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
AnKing
Пользую atmega 48. Включаю шим на таймере 0
Но светодиод горит постоянно и не геснет.
в чем вилы?

CODE
#define F_CPU 7372800

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>


void init_pwm (void)
{
TCCR0A=(1<<COM0A1)|(1<<WGM00);
TCCR0B=(1<<CS00);
OCR0A=0x00;
}

void pause (unsigned int a)
{
unsigned int i;
for (i=a;i>0;i--);
}

int main (void)
{

unsigned char i;
DDRD=0b01000000;

init_pwm();

while (1)
{
for (i=0;i<255;i++)
{
OCR0A++;
pause(1000);
}
for (i=0;i<255;i++)
{
OCR0A--;
pause(1000);
}
}

}


haker_fox
Ваша функция "пауза" может быть исключена из кода оптимизатором, т.к. ничего полезного с точки зрения компилятора не происходит. И это правильно. Чтобы это дело обойти, объявите переменную цикла с квалификатором volatile. А еще лучше используйте библиотечную задержку. Компилятор-то какой?
AnKing
использовал функцию _delay_us() и все заработало.
Только такой вопрос, при вызове этой функции обработка приложения разве не прекращается?
пока контроллер спит, выполняются ли прерывания?
что конкретно "спит" во время выполнения этой функции?

И второй вопрос... как сгенерировать синусоидальный сигнал? при помощи двух последовательных таймеров?
haker_fox
QUOTE (AnKing @ Aug 30 2011, 04:09) *
использовал функцию _delay_us() и все заработало.
Только такой вопрос, при вызове этой функции обработка приложения разве не прекращается?

delay_us и delay_ms ничто инное как холостые циклы, рассчитываемые препроцессором. Микроконтроллер в сон не уходит. Поскольку компилятор "знает", что эти холостые циклы нужны, он их не удаляет. Поэтому Ваша программа заработала.
QUOTE (AnKing @ Aug 30 2011, 04:09) *
И второй вопрос... как сгенерировать синусоидальный сигнал? при помощи двух последовательных таймеров?

Ключевое слово ШИМ (PWM). В инете можно найти примеры программной генерации различных сигналов. Даже речь воспроизводят.
AnKing
Цитата
Ключевое слово ШИМ (PWM). В инете можно найти примеры программной генерации различных сигналов. Даже речь воспроизводят.


гуглил но ничего конкретного не нашел. Все очень сложно и запутанно. Мне бы полегче чтонить. Я подключил тот вывод что у меня есть к осфилографу но треугольный график(возрастание-убывание) не получил... стоит ровненький "заборор"... я так понимаю из-за того что он видит только вкл-выкл. но как заставить построить линию?
ILYAUL
QUOTE (AnKing @ Sep 25 2011, 00:28) *
Я подключил тот вывод что у меня есть к осфилографу но треугольный график(возрастание-убывание) не получил... стоит ровненький "заборор"... я так понимаю из-за того что он видит только вкл-выкл. но как заставить построить линию?

Наверное рановато Вам ШИМ начните с ЧТО ТАКОЕ ЦИФРОВОЙ СИГНАЛ ( УРОВНИ) , затем плавно переходите на ШИМ ( ЧТО ТАКОЕ ШИМ?)
И тогда узнаете , что ШИМ никогда не выдает треугольный сигнал. А вот ЦАП может, но это уже следующий этап
AnKing
Цитата(ILYAUL @ Sep 25 2011, 00:43) *
Наверное рановато Вам ШИМ начните с ЧТО ТАКОЕ ЦИФРОВОЙ СИГНАЛ ( УРОВНИ) , затем плавно переходите на ШИМ ( ЧТО ТАКОЕ ШИМ?)
И тогда узнаете , что ШИМ никогда не выдает треугольный сигнал. А вот ЦАП может, но это уже следующий этап

Значит для управления двигателем переменного тока мне не подойдет шим, правильно я вас понял? Где можно найти простеньких примеров для генерации переменного тока с цап?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.