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

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

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

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

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

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

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

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

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

Сообщение от SAHA_T Посмотреть сообщение
Так теперь я начинаю немного понимать, а тогда в коде leartis каким образом реализован шим ? не аппаратным ?
Гы... Про что и толкуем с самого начала . Только софтовый .
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 04.03.2012, 22:23  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
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.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
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.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
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,328
Сказал спасибо: 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 код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Снова о коллекционировании. Roshens Делимся опытом 0 13.12.2010 19:43
СНОВА ЖКИ 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, время: 08:53.


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