Очень быстро дёрнуть ножкой

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
   Как связь, _All_ ? ;-)

    Уже с похожим сабжем тут флейм был, а вот жизнь заставляет...
 Задачка скорее на смекалку, чем на знания. У PICа есть 4 пина (РА3-РА0),
 через них нужно одновременно выводить 4 канала ШИМ с 4-х битным разрешением.
 Причем по-хитрому: старшия тетрада байта - значение DutiCycle для РА1,
 младшая - для РА0, второй байт аналогично для РА2 и РА3. Hа каждый шаг
 ШИМа можно использовать только 5 (максимум 6) циклов ядра. Четыре канала
 стартуют  синхронно. Должно получиться что-то в этом духе:

 РА0 1111100000000000  0xA5h - первый байт
 РА1 1111111111000000 _______
 РА2 1100000000000000
 РА3 1110000000000000  0x32h - второй байт

 Как можно уложиться?  Сдвижка между группами каналов может достигать 3 тактов.


   До связи, All! /Edward/    LocalDate 07 Sep 04 - LocalTime 11:36
... http://picmaster.boom.ru мыло на: nеdеliаеv(ухо)мэйл.ру

Re: Очень быстро дёрнуть ножкой
Hello, Edward!
You wrote to All on Tue, 07 Sep 2004 09:36:00 +0400:

 EN>     Уже с похожим сабжем тут флейм был, а вот жизнь заставляет...

    В каждой шутке есть доля правды.

 EN>  Задачка скорее на смекалку, чем на знания. У PICа есть 4 пина
 EN> (РА3-РА0),  через них нужно одновременно выводить 4 канала ШИМ с 4-х
 EN> битным разрешением.
 EN>  Причем по-хитрому: старшия тетрада байта - значение DutiCycle для
 EN> РА1,  младшая - для РА0, второй байт аналогично для РА2 и РА3. Hа
 EN> каждый шаг
 EN>  ШИМа можно использовать только 5 (максимум 6) циклов ядра. Четыре
 EN> канала  стартуют  синхронно. Должно получиться что-то в этом духе:

 EN>  РА0 1111100000000000  0xA5h - первый байт
 EN>  РА1 1111111111000000 _______
 EN>  РА2 1100000000000000
 EN>  РА3 1110000000000000  0x32h - второй байт

 EN>  Как можно уложиться?  Сдвижка между группами каналов может
 EN> достигать 3 тактов.

    Насчёт пика и дрыгоножества не скажу, ибо не компетентен, а вот
подготовить массив из 16 ниблов и бегать по нему - напрашивается.

Alexander,Derazhne@adic,kiev,ua (replace commas with dots)
Alexander Derazhne



Re: Очень быстро дёрнуть ножкой
Привет!

 EN>  Задачка скорее на смекалку, чем на знания. У PICа есть 4 пина
 EN> (РА3-РА0),через них нужно одновременно выводить 4 канала ШИМ с 4-х
 EN> битным разрешением.Причем по-хитрому: старшия тетрада байта -
 EN> значение DutiCycle для РА1,младшая - для РА0, второй байт

 [skip ...]

 Затолкать все это в ОЗУ (8 байт) и выводить в цикле.

Leha Bishletov.  E-mail: snipped-for-privacy@rol.ru



Re: Очень быстро дёрнуть ножкой
   Как связь, _Alexander_ ? ;-)

 EN>>  РА0 1111100000000000  0xA5h - первый байт
 EN>>  РА1 1111111111000000 _______
 EN>>  РА2 1100000000000000
 EN>>  РА3 1110000000000000  0x32h - второй байт

 AD>     Hасчёт пика и дрыгоножества не скажу, ибо не компетентен, а вот
 AD> подготовить массив из 16 ниблов и бегать по нему - напрашивается.

    Оно меняется 8-/ Если 0x2Ah отличается от 0x2Bh всего на единичку, что
 терпимо, то при переходе от 0x20h -> 0x1Fh  надо в табличке РА1 уменьшить
 на 1, а в табличке РА0 дописать аж 16 единиц, что долго (перед каждым
 "прогоном" есть 8, ну максимум 10 циклов. Первый и второй байт постоянно
 меняются на +/- 1. Таблица у меня по этой причине сразу отпала.

   До связи, Alexander! /Edward/    LocalDate 07 Sep 04 - LocalTime 23:36
... http://picmaster.boom.ru мыло на: nеdеliаеv(ухо)мэйл.ру

Re: Очень быстро дёрнуть ножкой
   Как связь, _Leha_ ? ;-)


 LB>  Затолкать все это в ОЗУ (8 байт) и выводить в цикле.
    Уже написал, почему не катит. Даже 16 байт не жалко, но заполнять
 некогда таблицу.

   До связи, Leha! /Edward/    LocalDate 07 Sep 04 - LocalTime 23:42
... http://picmaster.boom.ru мыло на: nеdеliаеv(ухо)мэйл.ру

Re: Очень быстро дёрнуть ножкой
Эдуард, приветствую!

Quoted text here. Click to load it
Конечный автомат? У тебя 4*16 = 64 возможных вариантов. По таблице прыжок  
на нужную ветку, а там
  movlw    0x??
  movwf    PORTA
  ....и так 16 раз

  С уважением,
   Сергей Борщ

--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Re: Очень быстро дёрнуть ножкой
   Как связь, _Sergey_ ? ;-)

 SB> Конечный автомат? У тебя 4*16 = 64 возможных вариантов. По таблице прыжок
 SB> на нужную ветку, а там
 SB>   movlw 0x??
 SB>   movwf PORTA
 SB>   ....и так 16 раз

    Что-то либо у тебя, либо у меня с математикой. Имеется 2 байта, которые
 выводятся потетрадно в четыре канала. Итого 256х25665%536 значений. Причем
 каждому значению соответствует своя табличка из 16 отсчетов. Итого 1048576
 байт. Многова-то. Или я мысль не понял.

   До связи, Sergey! /Edward/    LocalDate 08 Sep 04 - LocalTime 16:15
... http://picmaster.boom.ru мыло на: nеdеliаеv(ухо)мэйл.ру

Re: Очень быстро дёрнуть ножкой
Эдуард, приветствую!

Quoted text here. Click to load it
Спасибо, регулярно и с удовольствием :-)

Quoted text here. Click to load it
Счас найду исходную задачу...
Вот:
Quoted text here. Click to load it
Итого каждый из пинов имеет 2^4 = 16 возможных вариантов дерганья...
Да, точно. На всех не 16*4, а 16^4 = 65536 вариантов. Ошибся, каюсь.

Quoted text here. Click to load it
Да! Уж...
Ну, в качестве компенсации могу предложить безумную идею: привесить на эти  
ноги сдвиговый регистр, регистр подключить к старшим битам адреса ПЗУ, а  
младшие 4 бита разворачивать 4-битным счетчиком.
Силами одного ПИКа за 5 тактов между тиками ШИМа подготовить 4 бита мне  
кажется невозможным.

  С уважением,
   Сергей Борщ

--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru

Re: Очень быстро дёрнуть ножкой
7-Sep-04 09:36 Edward Nedeliaev wrote to All:

EN>  стартуют  синхронно. Должно получиться что-то в этом духе:

EN>  РА0 1111100000000000  0xA5h - первый байт
EN>  РА1 1111111111000000 _______
EN>  РА2 1100000000000000
EN>  РА3 1110000000000000  0x32h - второй байт

EN>  Как можно уложиться?
EN> Сдвижка между группами каналов может достигать 3 тактов.

 Что имеется ввиду под "сдвижкой" ?

wbr,
--
/* Oleksandr Redchuk, Brovary, Ukraine */
/* real '\x40' real '\x2E' kiev '\x2E' ua     */


Site Timeline