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

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

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

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

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

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

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

 
Опции темы

И снова ШИМ

Непрочитано 04.03.2012, 21:50  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от SAHA_T Посмотреть сообщение
в материнке ведь пзу толком нет кроме биоса
Ну да. В современных 0,5-1Мб памяти, причём с интерфейсом SPI и частотой клока до 80 с лишним МГц. 8к-16к-шагов для эффектов. Можно, конечно, и псевдорандомные сделать.
Реклама:
omercury вне форума  
Непрочитано 04.03.2012, 22:04  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от SAHA_T Посмотреть сообщение
Так теперь я начинаю немного понимать, а тогда в коде leartis каким образом реализован шим ? не аппаратным ?
Гы... Про что и толкуем с самого начала . Только софтовый .
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 04.03.2012, 22:23  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от SAHA_T Посмотреть сообщение
Вы мне объясните в while(1){ какая будет частота ? 100гц ?
Имеется в виду это?
Чтоб это узнать, надо пересчитывать все задержки, которые там сделаны. Да и важно ли это? От этого зависит только скорость изменения коэффициента заполнения ШИМ(изменение яркости).
Само "моргание" происходит в прерывании по переполнению таймера1.
Другой вопрос - зачем было использовать 16-ти битный Timer1, переменные типа integer при верхнем значении счётчика тиков 127?
При указанных в ините параметрах частота ШИМ для такта 16МГц будет ((16000000/8 )/65536)/127=0,23 герц... Мерцать точно будет...
omercury вне форума  
Непрочитано 04.03.2012, 22:38  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от omercury Посмотреть сообщение
При указанных в ините параметрах
Блин, соврал насчёт частоты, там же перезагрузка счётчика (-156).
Примерно 100 герц (таймер на ~12,82кГц).

UPD. Кстати, там будет не ровно
Цитата:
78 мкс
Плюсом пойдёт вход в прерывание и сохранение контекста. Лучше использовать режим таймера CCP.

Последний раз редактировалось omercury; 04.03.2012 в 22:48.
omercury вне форума  
Непрочитано 04.03.2012, 22:40  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: И снова ШИМ

я просто подумал что если частота в в основной программе будет 100гц тогда формула будет считаться 2 дня а потом уж и что то засветится
*переменные типа integer * неужели объявление переменных сильно влияет или это влияет на заполнение памяти ?

*Ну да. В современных 0,5-1Мб памяти, причём с интерфейсом SPI и частотой клока до 80 с лишним МГц. 8к-16к-шагов для эффектов. Можно, конечно, и псевдорандомные сделать.* можно по подробней как можно задействовать матери от компов.

*Гы... Про что и толкуем с самого начала . Только софтовый .* млин так я изначально думал что типа аппаратный это при помощи выставления фузов точней задержек фузов а получается что я с самого начала ошибался и это меня вводило в заблуждение

*частота ШИМ для такта 16МГц будет ((16000000/8 )/65536)/127=0,23 герц* если не трудно разжуйте мне плиз эту формулу я просто не понимаю что на что влияет
SAHA_T вне форума  
Непрочитано 04.03.2012, 22:46  
Pajatel
Прописка
 
Аватар для Pajatel
 
Регистрация: 04.12.2010
Сообщений: 243
Сказал спасибо: 9
Сказали Спасибо 51 раз(а) в 32 сообщении(ях)
Pajatel на пути к лучшему
По умолчанию Re: И снова ШИМ

...и чё велосипед изобретаете? ...есть же готовые конструкции, ну вот к примеру:
12-ти канальный генератор эффектов на ATtiny2313
..12 каналов правда, но не беда, можно и спаралелить. И как пособие для изучения для ТС по моему тож совсем даж покатит..
Pajatel вне форума  
Непрочитано 04.03.2012, 23:11  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
Смущение Re: И снова ШИМ

Сообщение от SAHA_T Посмотреть сообщение
формула будет считаться 2 дня
В данном случае примерно так и будет...
Сообщение от SAHA_T Посмотреть сообщение
неужели объявление переменных сильно влияет или это влияет на заполнение памяти ?
В данном случае это сильно влияет на время работы в прерывании - там много сравнений, а 16-битные выполняются значительно дольше 8-битных.
Сообщение от SAHA_T Посмотреть сообщение
можно по подробней как можно задействовать матери от компов.
В память забивается таблица яркостей каналов ШИМ, а МК их с определённой периодичностью считывает. Достаточно кропотливый метод, но позволяет реализовать любые желаемые эффекты и делает весь прибор много гибче - простой сменой таблицы меняются все эффекты без перепрограммирования МК.
Сообщение от SAHA_T Посмотреть сообщение
просто не понимаю что на что влияет
PHP код:
TCCR1B |= 0x2;        //включить таймер 1 с делителем 8 
Здесь задаётся предделитель 8, то есть тактовая частота до таймера делится на 8 - на входе счётчика таймера получится 16МГц/8=2МГц.
Далее идёт сам счётчик. Он имеет ширину 16 бит, т.е. считает от "0" до (2^16)-1=65535. То есть 65536 отсчётов( наверху уже написал, что ошибся). На самом деле в самом прерывании в счётчик записывается число 65380 (65536-65380=156). таймер переполнится через 156 тиков на входе уже после предделителя.
На эти цифры и делим.
16000000/8/156=12820,512820512820512820512820513 Гц.
В прерывании используется переменная
PHP код:
Tic 
, которая делит эту частоту на 128. В результате получим примерно 100Гц...

Последний раз редактировалось omercury; 04.03.2012 в 23:14.
omercury вне форума  
Непрочитано 05.03.2012, 00:30  
SAHA_T
Прописка
 
Регистрация: 23.07.2007
Сообщений: 209
Сказал спасибо: 109
Сказали Спасибо 1 раз в 1 сообщении
SAHA_T на пути к лучшему
По умолчанию Re: И снова ШИМ

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

Все остальное я понимаю с большим трудом, единственно я знаю точно, нужно поэкспериментировать с кодом и посмотреть как что работает.
Опыта маловато

Pajatel Хочу заметить что велосипед никто не изобретал, просто я в данной сфере очень слаб. А за ссылку огромное спасибо я обязательно посмотрю
SAHA_T вне форума  
Непрочитано 05.03.2012, 00:41  
leartis
Частый гость
 
Регистрация: 04.10.2007
Адрес: Запорожье
Сообщений: 43
Сказал спасибо: 8
Сказали Спасибо 14 раз(а) в 13 сообщении(ях)
leartis на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от omercury Посмотреть сообщение
Другой вопрос - зачем было использовать 16-ти битный Timer1
Да как бы не важно. На самом деле просто не помню на память флаги и регистры для таймера0

Цитата:
переменные типа integer при верхнем значении счётчика тиков 127?
Тут не спорю, незачем. Ну, блин, вчера по-быстрому перевел кусок программы в Си - для примера. Понятно, что-то упустил, но не принципиально
leartis вне форума  
Непрочитано 05.03.2012, 02:01  
Yurkin2007
Заблокирован
 
Регистрация: 27.03.2007
Сообщений: 1,327
Сказал спасибо: 12
Сказали Спасибо 576 раз(а) в 460 сообщении(ях)
Yurkin2007 на пути к лучшему
По умолчанию Re: И снова ШИМ

Сообщение от SAHA_T Посмотреть сообщение
Все остальное я понимаю с большим трудом
Мне кажется, для начала нужно понять что такое софтверный ШИМ.
Вот, к примеру, картинка.
Микропроцессор регулярно каждые 78мкс выполняет кусочек программы, который называется обработчик прерывания таймера. В этом обработчике переменная Counter увеличивается на +1, изменяясь от 0 до 127 (синий график). Как только Counter ›127, сразу делаем Counter=0. Таким образом, весь подъём синего графика составляет 128*78мкс = 10мс.

Ещё eсть переменная Kanal_0, которая, например, равна 92. В обработчике сравниваем Kanal_0 и Counter. Если Counter‹Kanal_0, то на выход порта POARTA.1 выставляем 1, если Counter›=Kanal_0, то выход = 0.

Вот и весь ШИМ. Получается, что наш выход порта 92 шага равен 1 и (128-92=36) 36 шагов равен 0. И всё это повторяется каждые 10мс, или, другими словами, с частотой 100Гц. То есть, часть периода светодиоды горят на полную мощность, определяется резистором, другую часть - выключены. Моргают с частотой 100Гц, для глаза незаметно. Из-за того, что включены-выключены, 92 и 36, в среднем яркость получается процентов 70 от максимума.

Если переменную Kanal_0 медленно увеличивать до 127, то время включённого состояния будет увеличиваться, и время выкл. состояния уменьшаться соответственно. Средняя яркость светодиодов, таким образом, будет медленно расти. Вот изменяя эту переменную Kanal_0 больше-меньше, и получаются всякие световые эффекты, типа плавное нарастание-спадание света.
Миниатюры:
Нажмите на изображение для увеличения
Название: kazus_snovaPWM1.png
Просмотров: 50
Размер:	13.3 Кб
ID:	32412  

Последний раз редактировалось Yurkin2007; 05.03.2012 в 02:55.
Yurkin2007 вне форума  
 
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СНОВА ЖКИ Gladkih Микроконтроллеры, АЦП, память и т.д 0 27.12.2009 23:48
И снова блютуз! Haulpak Ремонт оргтехники 0 10.03.2009 05:06
Снова DNA1001 R666 Информация по радиокомпонентам 0 25.01.2008 16:39
И снова температура ua_gruzin Поиск схем. Делимся схемами 0 14.02.2007 01:18


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.