реклама на сайте
подробности

 
 
6 страниц V  « < 4 5 6  
Reply to this topicStart new topic
> ШИМ, сделать три канала?
GetSmart
сообщение Oct 19 2007, 11:18
Сообщение #76


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(add)
Какие там могут быть подводные камни?
Не дорос ещё =GM= до этого алгоритма smile.gifsmile.gif
А вообще алгоритм идеальный для управления светодиодами напрямую.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 19 2007, 12:04
Сообщение #77


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(add @ Oct 19 2007, 09:37) *
=GM=, Пасиба что расжевали! Лыжи поехали:-) зы: а способ (.пост №73:неравными интервалами! т.е. к примеру с шагом 1,2,4,8,16,32,64,128,255) шим имеет право на жизнь? Там прерываний всего 8 (от разрядности зависит, можно 16) Какие там могут быть подводные камни?

Там не камни, там под водой целый горный хребет(:-). Вы когда на лыжах будете съезжать, смотрите не наткнитесь(:-).

Теоретически конечно можно перебрать все комбинации с 24 каналами и сделать соответствующее количество вариантов прерываний, чтобы получить заданную комбинацию 24 прерываний, но я не представляю, как это сделать в обозримое время на МК с ограниченными ресурсами.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
add
сообщение Oct 19 2007, 12:10
Сообщение #78


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата(=GM= @ Oct 19 2007, 16:04) *
Там не камни, там под водой целый горный хребет(:-). Вы когда на лыжах будете съезжать, смотрите не наткнитесь(:-).

Теоретически конечно можно перебрать все комбинации с 24 каналами и сделать соответствующее количество вариантов прерываний, чтобы получить заданную комбинацию 24 прерываний, но я не представляю, как это сделать в обозримое время на МК с ограниченными ресурсами.

Дык ненада там прерываний больше. Сколько бит , столько прерываний. А байт каждого канала раскидывается по столбцам. Я по этому и спрашивал как подготавливаете таблицу. (про ролы(rol) и роры(ror) говорил.) А всетаки они разные. :-)


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 19 2007, 13:03
Сообщение #79


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(add @ Oct 19 2007, 11:10) *
Сколько бит , столько прерываний. А байт каждого канала раскидывается по столбцам

Ну, разжуйте теперь вы мне ваш алгоритм, видимо, я не так его понимаю, не дорос(:-)

Что такое байт каждого канала, куда он раскидывается, в смысле по каким-таким столбцам?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
add
сообщение Oct 19 2007, 14:13
Сообщение #80


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата(=GM= @ Oct 19 2007, 17:03) *
Ну, разжуйте теперь вы мне ваш алгоритм, видимо, я не так его понимаю, не дорос(:-)
Что такое байт каждого канала, куда он раскидывается, в смысле по каким-таким столбцам?

Про "не дорос" я не говорил, прошу заметить.:-/ Как уже писал неоднократно, есть к примеру 8 прерываний (по числу битности). с интервалами кратными 1,2,4,8,16,32,64,128,256( длительность) . Теперь формируем образа портов: перый образ(первое прерывание кратное 1) :1-й бит 1-го байта, 1-й бит 2-го байта,
.....1-й бит 24-го байта.Второй образ(второе прерывание кратное 2) :2-й бит 1-го байта, 2-й бит 2-го байта,
.....2-й бит 24-го байта. И так все байты каждого канала. Далее выводим по прерыванию соответствующую строчку. все. те. значения яркости к примеру 9, для первого канала, остальные нули таблица будет такой:

;----32-ой канал...........................................1-ый канал
.db0b0000000,0b0000000,0b0000000,0b0000001 ;1-е прерыв (вес 1) (образ портов)
.db0b0000000,0b0000000,0b0000000,0b0000000;2-е прерыв (вес 2)(образ портов)
.db0b0000000,0b0000000,0b0000000,0b0000000;3-е прерыв (вес 4)(образ портов)
.db0b0000000,0b0000000,0b0000000,0b0000001;4-е прерыв (вес 8)(образ портов)
.db0b0000000,0b0000000,0b0000000,0b0000000;5-е прерыв (вес 16)(образ портов)
.db0b0000000,0b0000000,0b0000000,0b0000000;6-е прерыв (вес 32)(образ портов)
.db0b0000000,0b0000000,0b0000000,0b0000000;7-е прерыв (вес 64)(образ портов)
.db0b0000000,0b0000000,0b0000000,0b0000000;8-е прерыв (вес 128)(образ портов)

Те. просто поместили байт(значение яркости св.диода) в таблицу, только в столбец..говоря проще..:-)
в итоге получим последовательность на порту:1|t1|0|t2|0|t3|1|t4|0|t5|0|t6|0|t7|0 где t - интервал между прерываниями(кратными 1,2,4,8,16,32,64,128,256 ).. Ну вроде так. :-)


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 19 2007, 16:07
Сообщение #81


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(add @ Oct 19 2007, 13:13) *
Те. просто поместили байт(значение яркости св.диода) в таблицу, только в столбец...в итоге получим последовательность на порту: 1|t1|0|t2|0|t3|1|t4|0|t5|0|t6|0|t7|0 где t - интервал между прерываниями (кратными 1, 2, 4, 8, 16, 32, 64, 128, 256)

Теперь понял(:-).

Ну, во-первых, будет не шим, а "поразрядная кодоимпульсная модуляция" (пКИМ). Будет она работать? Теоретически будет, надо исследовать, как такая последовательность влияет на глаз человека.

Во-вторых, загрузить из памяти в регистр и выдать для трёх портов можно за 9 МЦ минимум миниморум, пусть это будет квант младшего разряда, выдача для второго кванта будет полегче - 18 МЦ, для последующих - нет проблем, поскольку времени на выдачу будет не менее 36 МЦ. Следовательно, при той же разрядности в 8 бит, период пКИМ будет равен 9*256=2304 МЦ, т.е. частота пКИМ будет 8.7 кГц. Что выглядит совсем неплохо.

Можно хлеще сделать, разместить первые, вторые и третьи 3 байта образов порта в 9 регистрах, тогда выдача в три порта займет 3 МЦ, значит, общий период пКИМ будет 3*256=768МЦ, а частота поднимется до 26 кГц. Последующие образы брать из памяти.

Поскольку вам фактически надо транспонировать битную матрицу 8 х 24 в матрицу 24 х 8, то подготовку таблицы, наверное, лучше делать так. Разместить текущие 8 байт в регистры, с помощью 8 пар rol-rol получить текущий байт и сохранить его. Уйдёт где-то 480 МЦ, всего 480*3=1440 МЦ, т.е. период пКИМ будет не более 13 кГц. Вот вам одно фундаментальное ограничение. Может быть, можно придумать некий табличный способ, не знаю, надо думать.

И еще останется выяснить, как будут жить такие короткие импульсы в системе. Стоит попробовать. Желаю удачи.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Oct 19 2007, 19:05
Сообщение #82


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(=GM=)
Будет она работать? Теоретически будет, надо исследовать, как такая последовательность влияет на глаз человека.
=GM= по ходу не в теме smile.gif
Глаз человека даже не заметит подмены. А вот симистору это не понравилось бы.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 19 2007, 20:59
Сообщение #83


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(GetSmart @ Oct 19 2007, 19:05) *
=GM= по ходу не в теме smile.gif
Глаз человека даже не заметит подмены. А вот симистору это не понравилось бы

Симистору будет по барабану, т.к. он включится от третьего-четвёртого-пятого разряда, а потом выключится только через 10000 мкс (полпериода сети 50 Гц), пройдёт более 50 периодов шим. Будет ли он правильно работать, это уже другой вопрос.

Что касается глаза, то известны опыты с чёрно-белым кружком (как волчок), когда он крутится, возникают цветные полосы. Где-то у меня такой волчок валялся, надо поискать...Откуда бы им взяться, если кружок чёрно-белый?

Ешё была статья в журнале Радио, где описывалась схема формирующая цветную заставку из черно-белой...

Все эти эффекты основаны на особенностях человеческого зрения, вот так...а вы не в теме, не в теме...


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
bzx
сообщение Oct 19 2007, 23:00
Сообщение #84


Местный
***

Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528



Я с другой стороны подойду. Если малость добавить внешних элементов. Например, на вход внешнего логического элемента AND подаётся частота заполнения ШИМ (Fd). На второй вход - частота ШИМ (Fpwm). Таким образом сформирован 1 канал ШИМ. Т.к. частота заполнения ШИМ формируется уже не программно, а именно, не через прерывания таймера, а задаётся внешнем тактовым генератором, то можно снизить частоту прерываний таймера до частоты ШИМ. При таком раскладе значительно освобождаются вычислительные возможности контроллера в ~(Fd/Fpwm) раз.

Можно пойти дальше, наращивать число каналов с помощью внешнего сдвигового регистра. Т.е. так можно формировать десятки и сотни pwm каналов с приличной частотой.

В общем, всегда можно найти компромисс между программно-аппаратным сочетанием для той или иной задачи, а задачей разработчика является сделать этот компромисс оптимальным.


--------------------
Для связи email: info собака qbit.su
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 20 2007, 21:58
Сообщение #85


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(bzx @ Oct 19 2007, 23:00) *
... на вход внешнего логического элемента AND подаётся частота заполнения ШИМ (Fd). На второй вход - частота ШИМ (Fpwm). Таким образом сформирован 1 канал ШИМ. Т.к. частота заполнения ШИМ формируется уже не программно, а именно, не через прерывания таймера, а задаётся внешнем тактовым генератором, то можно снизить частоту прерываний таймера до частоты ШИМ. При таком раскладе значительно освобождаются вычислительные возможности контроллера в ~(Fd/Fpwm) раз

Поясните, что вы понимаете под частотой заполнения шим и частотой шим? Например, непонятно, что вы подаёте на второй вход, меандр что ли? Или что?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post

6 страниц V  « < 4 5 6
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 05:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01441 секунд с 7
ELECTRONIX ©2004-2016