Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 10.05.2011, 17:44  
KvitkaLavi
Прохожий
 
Регистрация: 09.05.2011
Сообщений: 5
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
KvitkaLavi на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Здравствуйте,
возможно весьма нубский вопрос, но не смогла найти разжеванный материал по COM битам для ШИМ в регистре TCCR.
У меня Fast PWM.
Точно также нужно настроить вывод синусоиды.. Какой режим для этого нужен: нормальный, не-инвертированный, инвертированный? И в чем разница между нормальным и неинвертированным?
Реклама:
KvitkaLavi вне форума  
Непрочитано 10.05.2011, 17:58  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Сообщение от KvitkaLavi Посмотреть сообщение
И в чем разница между нормальным и неинвертированным?
Представьте инвертор на выходе - это инвертированный. Без - прямой.
От этого зависит коэффицент заполнения в зависимости от значения OCR регистра. При прямом ШИМ с увеличением значения OCR длительность высокого уровня в периоде растет. При инвертирующем ШИМ - падает. Для синуса в общем то все равно. Просто фаза перевернется на 180 градусов.
kison вне форума  
Непрочитано 10.05.2011, 18:01  
KvitkaLavi
Прохожий
 
Регистрация: 09.05.2011
Сообщений: 5
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
KvitkaLavi на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

kison,
тогда почему три режима? Если нормальный и неивертированный совпадают? или все таки не совпадают?
KvitkaLavi вне форума  
Непрочитано 10.05.2011, 19:33  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Сообщение от KvitkaLavi Посмотреть сообщение
kison,
тогда почему три режима? Если нормальный и неивертированный совпадают? или все таки не совпадают?
Первый режим - когда ШИМ вообще влияния на вывод не оказывает.
Второй - меандр генерирует. ( там есть доп. условия работы)
Третий и четвертый - ШИМ неинвертирующий и инвертирующий.
kison вне форума  
Сказали "Спасибо" kison
KvitkaLavi (10.05.2011)
Непрочитано 11.05.2011, 19:26  
KvitkaLavi
Прохожий
 
Регистрация: 09.05.2011
Сообщений: 5
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
KvitkaLavi на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Спасибо. С этим теперь понятно.
А еще такой вопрос - как задать/рассчитать период полученной синусоиды?
У меня только одно прерывание - для ШИМ, считывание одного значения из таблицы происходит через заданное кол-во тактов. То мой период будет в тактах как произведение кол-ва точек из таблицы на кол-во тактов ожидания? А такт - это 1/частота подключенного кварца?
Или есть другие более адекватные способы подсчитать?)

Если непонятно объяснила, то прилагаю код..
Вложения:
Тип файла: txt raboch.txt (1.7 Кб, 76 просмотров)
KvitkaLavi вне форума  
Непрочитано 12.05.2011, 02:08  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Сообщение от KvitkaLavi Посмотреть сообщение
Если непонятно объяснила, то прилагаю код..
Код:
T0_OVF:
ldi r18, 0x00
ldi ZL, low(sin*2) ;считывание значения из массива
ldi ZH, high(sin*2)

ldi tempz1,0
add ZL,tempz          ;прибавление
adc ZH,tempz1         ;внутр. адреса

LPM 

mov tempz1,R0         ;копирование
out ICR1L,tempz1      
out ICR1H, r18
inc tempz
ldi temp, 0xD5
out TCNT0, temp
reti
Зачем Вы отсчеты грузите в ICR? Логично было бы предположить что надо в OCR.
Дальше - таблица отсчетов у Вас на 80 значений. А читаете Вы со смещением расположенном в R19 (tempz) - причем после каждого чтения идет его инкремент. Представьте что в нем 79 содержится - увеличив на 1 Вы выйдете за пределы таблицы и вместо осмысленных отсчетов получите случайные значения. Но будете продолжать и дальше читать ерунду и выводить ее через ШИМ - пока tempz не переполнится и соответственно не обнулится. Красоты сигналу это не добавит однозначно.
Удобно делать размер таблицы кратным 2^N - например 32 значения, 64, 128, 256. Но можно и 80 оставить - только проверяйте tempz на выход за предел таблицы и если вышел то грузите туда 0.
Ну там и еще можно посокращать код. Например выводить можно прямо из R0, не копируя предварительно считанный из таблицы отсчет в tempz1.
Когда исправите то период рассчитать будет просто.
Сообщение от KvitkaLavi Посмотреть сообщение
То мой период будет в тактах как произведение кол-ва точек из таблицы на кол-во тактов ожидания?
Но в этом идете в правильном направлении.
kison вне форума  
Непрочитано 12.05.2011, 03:21  
KvitkaLavi
Прохожий
 
Регистрация: 09.05.2011
Сообщений: 5
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
KvitkaLavi на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

kison,
т.е. как я поняла, нужно проверять, что tempz всегда меньше кол-ва точек в моем массиве и при достижении последней обнулять адрес? Тогда почему пока что всё работает и синусоида имеется?..
А насчет ICR/OCR меня сбило в даташите, что есть режим, когда OCR - как выход, а ICR - для счета/занесения значения.. и подумалось мне, что OCR либо счет, либо выход. Пока сделала задачу, уже поняла, что там совсем другой принцип, не то что в голове накрутила...
Спасибо большое.
KvitkaLavi вне форума  
Непрочитано 12.05.2011, 04:52  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Сообщение от KvitkaLavi Посмотреть сообщение
т.е. как я поняла, нужно проверять, что tempz всегда меньше кол-ва точек в моем массиве и при достижении последней обнулять адрес?
Угу, именно так.
Точно синус имеется? Вот с этой программой? На осциллографе два последовательных периода видно? Сомневаюсь я чего то..

И все же попробуйте переделать таблицу на кратную степени двойки. Вместо 80 значений на 64 или 128.
Тогда
Код:
inc tempz
// добавление
andi tempz,0x7F // для 128 значений
// andi tempz,0x3F // для 64 значений
// 
ldi temp, 0xD5
out TCNT0, temp
Ну или сравнивайте с 80 если оставите старую таблицу. И если совпадет обнуляйте tempz. Это курсовик?
kison вне форума  
Непрочитано 12.05.2011, 18:36  
KvitkaLavi
Прохожий
 
Регистрация: 09.05.2011
Сообщений: 5
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
KvitkaLavi на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

kison,
Нет, просто лабораторная.
И да, с 80 значениями почему-то жутко некрасивая была выходящая штука, периодическая, но не очень синусоидная. А вот как расширила таблицу до 200+ значений и о, чудо! вывелась красивая синусоида.
Спасибо Вам большое.
А то только начинаю заниматься и многие штуки не знаю - например, с andi
KvitkaLavi вне форума  
Непрочитано 12.05.2011, 18:49  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: ШИМ, синусоида на Мега8?

Сообщение от KvitkaLavi Посмотреть сообщение
А вот как расширила таблицу до 200+ значений и о, чудо! вывелась красивая синусоида.
Расширьте до 256 значений и не придется ничего проверять-обнулять.
Сообщение от KvitkaLavi Посмотреть сообщение
А то только начинаю заниматься и многие штуки не знаю - например, с andi
Ну для того и существуют форумы - подсказать, указать на ошибки.
kison вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ШИМ для стартера 55mak Источники питания и свет 10 21.08.2010 18:05
переделка БП на ШИМ 2003 на одно напряжение artem_y Источники питания и свет 9 26.02.2010 23:35
не работает ШИМ в контроллере 40inD Proteus 10 11.01.2010 00:22
Управление автомобильной форсункой ШИМ сигналом, Помогите stanikstanik Автоматика и аппаратура связи 2 19.11.2009 19:27
Нужно преобразовать ШИМ в 0-10В, нагрузка 3А Xuchik Источники питания и свет 37 02.10.2009 08:24


Часовой пояс GMT +4, время: 21:32.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot