Перейти к содержанию
    

VladimirYU

Свой
  • Постов

    426
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные VladimirYU


  1. А PEN на питание нужно во время программирования? Или все время? РАньше работал с контроллерами младше 128, неужели теперь нужно помимо кнопок на софте нажимать еще чтото и на плате?

    PEN можно в воздухе оставить или на VCC через 1к, это рудимент от меги103. Дело не в этом. Осцилом посмотрите сигналы на ногах, может что то прояснится.

  2. VladimirYU

    Проблема где-то не в массиве.

    Я тоже к этому склоняюсь, но дело в том, что объекты в моем случае это физические приборы обращение к которым от "мамы" по SPI шине. Реализация класса, поддерживающего их, скрыта, есть только интерфейс .h и .r90. В общем пока обхожу эту проблему, но в дальнейшем придется разбираться. Всем спасибо за участие, за одно и лишний раз в стандарте покапался.

  3. To SmSp:

    В этом случае получится не массив из двух указателей на TBase, а указатель на массив из двух TBase.

     

    В коде, который привел VladimirYU, вроде все правильно, возможно, траблы были именно в реализации конструктора TBase или функции-члена Method1(), которые автор не привел.

    К сожалению реализация как конструкторов, так и методов скрыта и доступна только в виде библиотек .r90

  4. Аааа...

    Только у меня почему-то раньше, даже в конце 35 наблюдается. :unsure:

     

    Ладно, раз уж все собрались ...

    Подскажите, как вычислить время в следующий понедельник 00:00.

    Еще нужно время первого числа следующего месяца, но это проще, и сам могу.

    Может проще новую эру открыть.... и полная перезагрузка :biggrin:

  5. В hex-файлах, если я не ошибаюсь, кроме программного кода может храниться инфа о FUSE-битах. А есть ли стандартный способ хранения FUSEов в файлах .rom?

    Dog Pawlowa дал более чем исчерпывающий ответ. Колитесь каким программатором пользуетесь, курите его описание, если не поможет продолжайте тему.

  6. Столкнулся с непонятной вещью. Имеется некий класс TBase

     

    в хидере

    
    

    class TBase
    {
    public: TBase( UCHAR par1, UCHAR par2) // конструктор с двумя параметрами

    // Далее методы, данный и т.д.
    .........
    .........
    };
    
    

     

    В file.cpp реализация.

     

    В прилложении создаются объявляются глообальные указатели и создаются два объекта

    1 способ, не работает

    
    

    TBase *Obj[2];

    // далее вызов конструкторов

    Obj[0] = new TBase( A, B);
    Obj[1] = new TBase( C, D);

    // Методы вызываются в основной программе
    Obj[0] ->Method1();
    Obj[1] ->Method1();
    ..........
    
    

     

    Поведение программы, как будто создан только один объет Obj[0]

    А если сделать вот так

    
    

    TBase *Obj0;
    TBase *Obj1;
    // далее вызов конструкторов

    Obj0 = new TBase( A, B);
    Obj1 = new TBase( C, D);

    // Методы вызываются в основной программе

    Obj0 ->Method1();
    Obj1 ->Method1();
    
    

    Все работает корректно.

    В чем может быть причина или где я не догоняю

  7. Задержка на полсекунды - это для себя, дабы увидеть что функция обработчика запустилась и выд-ся информация на дисплей

    Чтобы увидеть, что обработчик запустился достаточно ногой дрыгать. Уберите вы LCD из обработчика и посмотрите ушла ли проблема, если да, то копайте в реализации функций LCD.

  8. В результате усреднения буфера фиксированной длины получается КИХ-фильтр, имеющий АЧХ вида |cos(f)| Если длительность заполнения буфера равна 20 мс, то этот фильтр полностью задавит 50 Гц и все нечетные гармоники. А то, что я предлагаю - это БИХ-фильтр, у которого довольно гладкая АЧХ.

    А может обычный сигма-дельта спасет, если конечно устроит его быстродействие?

  9. Как следует из описание и теории, схема должна управлять ускорением двигателя, а значит и скоростью и положением.

     

    Ну и самое главное сомнение - верна ли идея?

     

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

    Идея Ваша с ОС по току верна, но для создания работоспособного привода недостаточна. Посмотрите в сторону систем подчиненного управления систем электропривода. Там подробно изложено когда контур тока необходим, а когда без него можно обойтись, а также как правильно его настроить. Автор, если память не изменяет, Башарин.

  10. Необходимо организовать обмен между 2-мя контроллерами.

     

    Скорость порядка 1 Мбайта. Расстояние между конт-ми ~10 см на

    плате.

     

    Хотелось бы со стороны каждого контроллера иметь буфер организованный в виде стека на 256 - 1024 байт а уже между

     

    буферами что то вроде параллельног канала. Т.е. минимальная

     

    нагрузка на ПО контроллеров. Для работы с навеской есть по 11 ног

     

    в каждом контроллере. Прямое соединение не катит из-за разности

     

    в скоростях контроллеров.USB - не подходит по ряду причин.

     

    Естественно эта навеска должна быть в чипе. Цена не особеноо лимитирует.

     

    Может кто использовал такой девайс.

     

    Заранее спасибо.

     

    Ну про USB для меги128 забудь сразу и навсегда. А вот где проблема порылась? Чем не устраивают стандартные SPI или TWI(I2C) или USART? А с размерами буферов сами разберетесь.

  11. Заметил, что при наличии постоянного тока подмагничивания, индуктивность снижается.

    Но не могу найти закономерности между величиной тока подмагничивания и моточными данными.

     

    Эксперимент ставился следующим образом.

     

    На ферритовом сердечнике с зазором намотан трансформатор. Первичка подключена комутируется на источник постоянного напряжения на фиксированное время. При неподключенной вторичке ток в первичке нарастает до определенного значения. Нарастает линейно, насыщения нет. Подключаю вторичку одним концом к плюсу источника постоянного напряжения другим концом через резистор к минусу источника постоянного напряжения. При этом ток через первичку ( при той же длительности импульса ) нарастает до значения в несколько раз больше, чем при не подключенной первички.

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

  12. Лучше за 370$ купить вещь без головной боли, чем за 100$ купить гемороя на свою з...

     

    +1

    Если инструмент необходим не экономь на нем, железно окупится. А если нет уверенности, что окупится значит он просто не нужен.

  13. AT90PWM3B очень хороший контроллер,

    PSC - это просто набор логики и без драйверов управления ключами вам не обойтись.

    Все так. Посмотрите в сторону трехфазных мостов от IR и не забывайте об аппаратной защите. В этом сочетании на AT90PWM3B можно сделать достаточно качествееный инвертор. На Атмеле есть апликуха как раз для аснхронного двигателя.

  14. Можно и нужно, вопрос ставился нужно-ли сегодня такие размеры делать на AVR.

     

    Нужно ли? ИМХО, на усмотрение разработчика. А вот то? что можно проверено на личном опыте. В нашей конторе для войнушки можно применять только мегу128 и CAN128, так с учетом лоадера программы уже за 64к выползают. Опять же ИМХО, при отлаженных библиотеках и при ООП подходе МКII не нужен, в больших проектах он не спасает.

  15. Возможно, вы имели в виду объектное программирование? Т.е. использование классов/объектов? Или именно ООП?

    Я именно имел в виду объектно-ориентированный подход к проетированию пограммы, конечно с использованием классов. Но классоы это лишь инструмент. Для меня в свое время это была настоящая ломка перейти к идеологии ООП (с С на С++), но это сугубо личные впечатления. У нас в конторе было чуть ли не табу на использование ++ и ООП для программирования МК, пока мы с напарником за почти два года на собственных примерах (проектах) не сломали этот стереотип.

  16. Хм... Кстати говоря, как объяснить повышение тональности звука работающего пылесоса (типичный центробежный вентилятор) с повышением нагрузки - увеличением оборотов? Растёт ли потребляемый ток? Должен вроде... Недавно столкнулся с тем, что при перекрытии входного отверстия применяемых у нас блауэров (BLDC, улитка) наблюдается тот же акустический эффект, но потребляемый ток падает.

    А как иначе? Ведь это не режим короткого замыкания для двигателя. Перекрылм входное отверстие и он крутит тот воздух который внутри. перепада давления нет, так как нет "подсоса" получаем практически режим холостого хода. Обороты растут ток падает. Особенность вентиляторной нагрузки.

  17. За ООП, кстати, не агитирую - эта вещь хороша к месту, и пихать куда попало ее - наживать геморрой. А вот классы сами по себе штука универсальная, и их можно использовать практически без ограничений, в том числе и на AVR. (это тоже ко всем, не только к вам :) ).

    А я бы агитировал за ООП, в условиях корпоративной разработки проектов и их дальнейшего сопровождения альтернативы ООП ИМХО не вижу.

  18. Более того, вы будете в шоке, но я оставлял в воздухе RESET. Ни одной проблемы.

    В воздухе?! Или все же он был выведен на разъем пограммирования. Иначе в режим последовательного программирования контроллер посто не попадет.

  19. А все-таки как это вяжется с изначальными утверждениями, что 20 плат нормально программировались. Советы от Tolyaha бесспорно по делу. Но ИМХО в Вашем случае причина в чем-то другом. Откровенного криминала в разводке печатной платы я все же не вижу. Согласен с замечаниями Tolyaha, но должно программироваться и в таком исполнении. А не пробовали питание 5В, или вторая микруха его категорически не любит?

  20. Простите я чайник, осциллограф у меня 1 мгц берет максимум, напряжения я указал.

     

    Но! Думаю что все-таки заводится, ибо при программировании или стирании происходит RESET, avreal выдает ошибку, либо просто can't resync, либо "микросхема не отвечает, проверьте питание", после чего контроллер с записанной ранее программой стартует как ни в чем не бывало, и добротно исполняет программу.

     

    в поньке что выбирать - AVR ISP API или ?

    Сообщение can't resync часто бывает, когда RESET не доходит до лапы контроллера, посмотрите что там делается при попытке программирования. Выбрать следует AVR ISP I/O, сделать калибровку и в светлый путь...Для avreal попробуйте опцию -%, может что-нибудь прояснится.

×
×
  • Создать...