Перейти к содержанию

Аппаратный ШИМ на Attiny13 и Proteus


Рекомендуемые сообщения

Начинаю осваивать микроконтроллеры, так что сильно не бейте...

Не запускается симуляция ШИМ в Proteus

Код:

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

int main()
 {
   DDRB=(0<<DDB4)|(1<<DDB3)|(0<<DDB2)|(1<<DDB1)|(1<<DDB0);
   PORTB=(0<<PB4)|(0<<PB3)|(0<<PB2)|(0<<PB1)|(0<<PB0);
   TCCR0A = (1 << COM0A1)|(0 << COM0A0)|(1 << WGM01)|(1 << WGM00);
   TCCR0B = (1 << WGM02)|(0 << CS02)|(1 << CS01)|(1 << CS00);
   TIMSK0 = 0x00;
   TCNT0 = 0x00;
   OCR0A = 0x5F;
   while (1) {
      //OCR0A++;
      //_delay_ms(100);
   }
      ;
   return 0;
 }

Схема:

599ad14c7cad5_.thumb.jpg.958fd10082f4015c140e83184d90c850.jpg

Компилятор - WinAVR; Proteus 8.6 SP 2

Проект в Proteus  прилагается.

При переключении COM0A1 COM0A0 в режим "Toggle OC0A on Compare Match" - работает как генератор прямоугольных импульсов с изменяемой частотой, в зависимости от OCR0A.

Подскажите, что не так, а то уже и по колесам стучал и лобовое стекло протирал...:(

TEST.pdsprj

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Так так и должно быть, в этом режиме ты генерируешь меандр т.к. состояние вывода OC0A будет меняться на противоположное при достижении условия совпадения в регистре сравнения. Этот режим предназначен для меандра переменной частоты(пищалки и т.д.)

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Возможно я не совсем корректно сформулировал вопрос:

В режимах "Phase Correct PWM Mode" (WGM02:0 = 5) и "Fast PWM Mode" (WGM02:0 = 7) при установке (COM0A1:0 = 2 или 3 - "Clear OC0A on Compare Match, set OC0A at TOP" и "Set OC0A on Compare Match, clear OC0A at TOP")  ничего не происходит. Вывод ШИМ OCA устанавливается или сбрасывается один раз в зависимости от начальной установки порта и больше ничего не происходит. Счетчик считает от 0 до OCR0A и сбрасывается хотя по даташиту должно быть так:

Скрытый текст

Phase Correct PWM Mode

The phase correct PWM mode (WGM02:0 = 1 or 5) provides a high resolution phase correct PWM waveform generation option. The phase correct PWM mode is based on a dual-slope operation. The counter counts repeatedly from BOTTOM to TOP and then from TOP to BOTTOM. TOP is defined as 0xFF when WGM2:0 = 1, and OCR0A when WGM2:0 = 5. In non-inverting Compare Output mode, the Output Compare (OC0x) is cleared on the Compare Match between TCNT0 and OCR0x while upcounting, and set on the Compare Match while down- counting. In inverting Output Compare mode, the operation is inverted.

Fast PWM Mode

The counter counts from BOTTOM to TOP then restarts from BOTTOM. TOP is defined as 0xFF when WGM2:0 = 3, and OCR0A when WGM2:0 = 7. In non-inverting Compare Output mode, the Output Compare (OC0x) is cleared on the Compare Match between TCNT0 and OCR0x, and set at BOTTOM. In inverting Compare Output mode, the out-put is set on Compare Match and cleared at BOTTOM.

В AVR Studio поведение программы аналогичное Proteus.

При программировании ШИМ в Bascom-AVR - ШИМ в Proteus ведет себя корректно.

Подскажите, почему так: это глюк Proteus  или я не учитываю что-то в регистрах?

 

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

В 8/22/2017 в 10:33, MadDoc сказал:

Счетчик считает от 0 до OCR0A

потому что у Вас все три бита WGM установлены в 1, т.е. WGM2:0 = 7

Надо бит WGM02 установить в 0. Если сделать так

TCCR0B = (0 << WGM02)|(0 << CS02)|(1 << CS01)|(1 << CS00)

то счётчик будет считать до 0xFF, и всё заработает как надо.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо откликнувшимся. Тему можно закрывать.

Сам тоже доехал... Не правильно истолковал даташит.

При WGM02=0

Phase Correct PWM Mode: счетчик считает от 0 до FF и от FF до 0 при совпадении значения с OCR0A происходит переключение вывода OCA.

Fast PWM Mode: счетчик считает от 0 до FF и сбрасывается в 0 при совпадении значения с OCR0A и при сбросе происходит переключение вывода OCA.

При WGM02=1

Phase Correct PWM Mode и режим "Toggle OC0A on Compare Match": счетчик считает от 0 до OCR0A и от OCR0A до 0 при совпадении значения с OCR0A происходит переключение вывода OCA.

Fast PWM Modeи и режим "Toggle OC0A on Compare Match": счетчик считает от 0 до OCR0A и сбрасывается в 0 при совпадении значения с OCR0A происходит переключение вывода OCA.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...