Power Electronics
http://valvol.ru/

AT90PWM3** в источниках питания.
http://valvol.ru/topic716.html
Страница 12 из 17

Автор:  MasterCat [ 02-01, 20:02 ]
Заголовок сообщения: 

Maikl писал(а):
Херня от коды за 40... новосиб тормознётся. А?

сегодня там ехал малость. народу никого. три калеки на дороге. женщину какю-то подвез. замерзла бедолага. направление рукой показала. а на улице - 31 было. всего. в -40 точно капец. градусник у овощя ниже -30 не показывает. успокаивает. правда, как за сотню , подвеска деревенеет. ну, в смысле видно движение к табуретке. ну и хрен заведтся поди.

Автор:  sam_soft [ 02-01, 20:30 ]
Заголовок сообщения: 

MasterCat писал(а):
показать красоту решения супостатов.

А сделано в сам деле неплохо. Удивляюся, платку разводил с бухты барахты, и ничё. В той микрохирургии малейшы сбой- киздрык ключикам, 100% киздрык. А ничыво. Видать в чипе заложыны крывыя ручи :)
Ишо раз сенк Ембедерскому Сибирскому Коту. Пушай звиняет, ежыли нитак обозвал. :)

Автор:  MasterCat [ 02-01, 21:06 ]
Заголовок сообщения: 

ползем.
http://flyfolder.ru/21129550 дыва
===========
тут буду заменять ссылку на файло, чтобы не плодить.
урывками шмякаю.

Автор:  MasterCat [ 02-01, 21:07 ]
Заголовок сообщения: 

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

Автор:  sam_soft [ 03-01, 17:23 ]
Заголовок сообщения: 

MasterCat писал(а):
лучше бы прочел, чего я тут мяукаю, да поправил, аль замечание высказал.

Не, рыцындент с меня не получицца. И ваще, я так до сих пор и не представляю кому ножон сей твой труд. ? Али тебе делать нечего совсем ? :)
Первые несмотрел, глянул последний. Начало никакое, как с неба. Остальное в целом вроде нормально. Там где про порог компаратора
, видимо не АЦП а ЦАП нужно. И вот это вот странная фраза :
"При задании с АЦП нужно избегать перезаписи значений в прерываниях."

это о чём ?

Автор:  MasterCat [ 03-01, 17:39 ]
Заголовок сообщения: 

sam_soft писал(а):
И вот это вот странная фраза :

собака друг человека. ;)
sam_soft писал(а):
"При задании с АЦП нужно избегать перезаписи значений в прерываниях."

он зараза теряет разряд, но не всегда. и только в прерываниях.
особенность конструкции, так сказать.

Автор:  MasterCat [ 03-01, 17:43 ]
Заголовок сообщения: 

sam_soft писал(а):
я так до сих пор и не представляю кому ножон сей твой труд. ? Али тебе делать нечего совсем

пусть будет просто так.
слегка утомили заявления про незыблемость примитивов типа 3845 и т.д.

Автор:  sam_soft [ 03-01, 17:45 ]
Заголовок сообщения: 

MasterCat писал(а):
он зараза теряет разряд, но не всегда. и только в прерываниях.

А это в каких прерываниях ? И какой разряд теряет ?

Автор:  MasterCat [ 03-01, 18:04 ]
Заголовок сообщения: 

sam_soft писал(а):
А это в каких прерываниях ? И какой разряд теряет ?

примера под рукой нет. найду покажу.
на память, например так:
прер. по ADC и в нем перекидываем в DAC. гарантировано вместо входного сигнала лажа будет.
например синус подаем и получаем с выхода цапа. суем два щупа и ужасаемся.

Автор:  sam_soft [ 03-01, 18:14 ]
Заголовок сообщения: 

MasterCat писал(а):
перекидываем в DAC. гарантировано вместо входного сигнала лажа будет.

А может писать в DAC нада правильна ? :)
Я тож видел странные превоплощения, не синуса правда. Но потом догнал в чём дело.
Вся машынка у меня жывет в прерываниях то биш на ивентах. Мэйн луп , как я уж говорил это уайл адын. Других подходов не терплю.
Нет там никаких проблем с DAC-ом. если правильна усё делать.

Автор:  MasterCat [ 03-01, 18:25 ]
Заголовок сообщения: 

sam_soft писал(а):
Нет там никаких проблем с DAC-ок. если правильна усё делать.

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

Автор:  sam_soft [ 03-01, 21:50 ]
Заголовок сообщения: 

Дык дело не в каком то искустве програмирования. Это отдельная песня . Заводить её совсем нихочеца. Дело в том что в DAC нада писать правильно, как то пишет даташит. И прерывания тут нипричом. Если где в коде написать типа
DAC = newDacValue ;
то во многих случаях, когда не включен режым ауто тригер конверсион, результат преобразования будет неправильный.
А сам DAC в этой машынке вполне нормальный и достаточно шустрый. То что я делал когда то на таймерах - это полный ацтой по сравнению с ним.

MasterCat писал(а):
про незыблемость примитивов типа 3845

и не только этих. PWM-ка запросто заменяет и двухтактные контры, типа UC3846/56, на которых когда то пробовал цвай тахтеры ваять. Причом заменяет их с лихвой, со всей гибкостью програмного контроля над процессом. Но как всегда , идеального ничо не быват. Кое чего нехватает ей однако.

Автор:  MasterCat [ 03-01, 22:02 ]
Заголовок сообщения: 

sam_soft писал(а):
Кое чего нехватает ей однако.

ну так рядом есть следующая.
sam_soft писал(а):
когда не включен режым ауто тригер конверсион, результат преобразования будет неправильный

ну осталось этим мозги народу забить и убьют небольно.

Автор:  sam_soft [ 04-01, 11:32 ]
Заголовок сообщения: 

MasterCat писал(а):
ну осталось этим мозги народу забить

Да не забить мозги, а навести резкость.
Вот этот вот

DAC = newDacValue;

правильно работать почти всегда не будет пока не будет включен тригер соурсе старта конверсии DAC-а

а вот этот вот будет правильно работать

DACL = (char) newDacValue;
DACH = (char)(newDacValue>>8 );

почему ? Да потому что в даташите написано, что если не выбран тригер старта преобразования, то конверсия стартует с записью нового значения в DACH. Посему первый вариант захватит старое значение DACL. Потому у тебя и ботва с синусом вышла.
DAC работает точно так как даташите написано и работает правильно и нормально.
Кстати если дилетанту посмотреть что сгенерит компайлер то наверняка увидит что те две строчки будут странслированы вроде того как:
sts dacl, r24
sts dach, r25
тобиш тое самое что писал бы на аське, а не на сиське. Нормальный компайлер умная штукенцыя. И посокльку инты хранятся в регистровых парах, то он разруливает все оч грамотно.
Похожие ньансы есть и в работе с регистрами PSC. Рекомендую оч внимательно быть с ними. Иначе микрохиругия с ними и попытки симетрить PSC запросто приведут к ФейерБаху.

Автор:  MasterCat [ 04-01, 12:06 ]
Заголовок сообщения: 

sam_soft писал(а):
Потому у тебя и ботва с синусом вышла.

блин. да не вышло у меня никакой ботвы. народ тут наступил на прерывание по событию PSC. в нем ЦАПа заряжал. на приоритеты, как всегда наплевательски посмотрели. я не один балуюсь этим тараканчиком.
резкость можно наводить, когда народ подтянулся. чего учить вождению начиная с управляемого заноса?
ну и потом народ всегда может посмотреть в атмеловский текст.
Код:
  //! @defgroup DAC_macros DAC Macros
   //! Low level macros that permit the use of the DAC of the product.
   //! @{

      //! @defgroup Turn_on_dac Turn on the DAC
      //! Turn on the DAC
      //! @{
#define Enable_dac()                         (DACON |= (1<<DAEN))
      //! @}

      //! @defgroup Turn_off_dac Turn Off the DAC
      //! Turn Off the DAC
      //! @{
#define Disable_dac()                        (DACON &= ~(1<<DAEN))
      //! @}

      //! @defgroup DAC_alignement_configuration DAC Alignement Configuration
      //! Configure the input data alignement
      //! @{
#define Right_adjust_dac_input()             (DACON  &= ~(1<<DALA))
#define Left_adjust_dac_input()              (DACON  |=  (1<<DALA))
      //! @}


      //! @defgroup DAC_output_configuration DAC Output Configuration
      //! Switch on or off the DAC output
      //! @{
#define Enable_dac_output()                  (DACON  |=  (1<<DAOE))
#define Disable_dac_output()                 (DACON  &= ~(1<<DAOE))
      //! @}

      //! @defgroup DAC_set_input_value DAC Set Input Value
      //! Setart the conversion input conversion value
      //! @{
#define Set_dac_8_bits(dac_in)               (DACH = (U8)(dac_in))
#define Set_dac_10_bits(dac_in)              (DACL = LOW((U16)(dac_in)), DACH = HIGH((U16)(dac_in)))
      //! @}
/* from IREENA */
#define Right_adjust_dac_result()            (DACON  &= ~(1<<DALA))
#define Left_adjust_dac_result()             (DACON  |=  (1<<DALA))

#define Enable_internal_vref()               (ADMUX  |=  ((1<<REFS1)|(1<<REFS0)) )
#define Enable_external_vref()               (ADMUX  &= ~((1<<REFS1)|(1<<REFS0)) )
#define Enable_vcc_vref()                    (ADMUX  &= ~(1<<REFS1), ADMUX |= (1<<REFS0) )

#define Output_dac_enable()                   (DACON |= (1<<DAOE))
#define Output_dac_disabled()                 (DACON &= ~(1<<DAOE))

ну, когда педаль сцепления освоит, конечно.
--
сами побузить можем, но народ давай грузить не будем.
и мультивибратор можно нарисовать так, что на едрёного колайдера похож будет. :crazy:

Страница 12 из 17 Часовой пояс: UTC + 4 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/