VladimirYU
-
Постов
426 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные VladimirYU
-
-
VladimirYU
Проблема где-то не в массиве.
Я тоже к этому склоняюсь, но дело в том, что объекты в моем случае это физические приборы обращение к которым от "мамы" по SPI шине. Реализация класса, поддерживающего их, скрыта, есть только интерфейс .h и .r90. В общем пока обхожу эту проблему, но в дальнейшем придется разбираться. Всем спасибо за участие, за одно и лишний раз в стандарте покапался.
-
To SmSp:
В этом случае получится не массив из двух указателей на TBase, а указатель на массив из двух TBase.
В коде, который привел VladimirYU, вроде все правильно, возможно, траблы были именно в реализации конструктора TBase или функции-члена Method1(), которые автор не привел.
К сожалению реализация как конструкторов, так и методов скрыта и доступна только в виде библиотек .r90
-
Аааа...
Только у меня почему-то раньше, даже в конце 35 наблюдается. :unsure:
Ладно, раз уж все собрались ...
Подскажите, как вычислить время в следующий понедельник 00:00.
Еще нужно время первого числа следующего месяца, но это проще, и сам могу.
Может проще новую эру открыть.... и полная перезагрузка
-
В hex-файлах, если я не ошибаюсь, кроме программного кода может храниться инфа о FUSE-битах. А есть ли стандартный способ хранения FUSEов в файлах .rom?
Dog Pawlowa дал более чем исчерпывающий ответ. Колитесь каким программатором пользуетесь, курите его описание, если не поможет продолжайте тему.
-
Столкнулся с непонятной вещью. Имеется некий класс 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();Все работает корректно.
В чем может быть причина или где я не догоняю
-
Задержка на полсекунды - это для себя, дабы увидеть что функция обработчика запустилась и выд-ся информация на дисплей
Чтобы увидеть, что обработчик запустился достаточно ногой дрыгать. Уберите вы LCD из обработчика и посмотрите ушла ли проблема, если да, то копайте в реализации функций LCD.
-
В результате усреднения буфера фиксированной длины получается КИХ-фильтр, имеющий АЧХ вида |cos(f)| Если длительность заполнения буфера равна 20 мс, то этот фильтр полностью задавит 50 Гц и все нечетные гармоники. А то, что я предлагаю - это БИХ-фильтр, у которого довольно гладкая АЧХ.
А может обычный сигма-дельта спасет, если конечно устроит его быстродействие?
-
Как следует из описание и теории, схема должна управлять ускорением двигателя, а значит и скоростью и положением.
Ну и самое главное сомнение - верна ли идея?
Ваша схема реализует ОС по току и только. Если вы хотите управлять скоростью и положением, то необходимы внешние по отношению к контуру тока контура управления соответственно скорости и положения. Представьте себе случай, когда Ваш двигатль работает на холостом ход. Ваша схема поддерживает в якоре постоянный ток следовательно двигатель развивает постоянный момент получаем постоянное ускорение и неограниченное линейное нарастание скорости.
Идея Ваша с ОС по току верна, но для создания работоспособного привода недостаточна. Посмотрите в сторону систем подчиненного управления систем электропривода. Там подробно изложено когда контур тока необходим, а когда без него можно обойтись, а также как правильно его настроить. Автор, если память не изменяет, Башарин.
-
А лепить wdr() в каждом цикле - ошибка!
Почему, если не секрет? Ошибка ИМХО, если wdr в обработчиках прерываний, в фоне, по-моему, сколько хочешь сбрасывай. Или я ошибаюсь, поясните?
-
Необходимо организовать обмен между 2-мя контроллерами.
Скорость порядка 1 Мбайта. Расстояние между конт-ми ~10 см на
плате.
Хотелось бы со стороны каждого контроллера иметь буфер организованный в виде стека на 256 - 1024 байт а уже между
буферами что то вроде параллельног канала. Т.е. минимальная
нагрузка на ПО контроллеров. Для работы с навеской есть по 11 ног
в каждом контроллере. Прямое соединение не катит из-за разности
в скоростях контроллеров.USB - не подходит по ряду причин.
Естественно эта навеска должна быть в чипе. Цена не особеноо лимитирует.
Может кто использовал такой девайс.
Заранее спасибо.
Ну про USB для меги128 забудь сразу и навсегда. А вот где проблема порылась? Чем не устраивают стандартные SPI или TWI(I2C) или USART? А с размерами буферов сами разберетесь.
-
Заметил, что при наличии постоянного тока подмагничивания, индуктивность снижается.
Но не могу найти закономерности между величиной тока подмагничивания и моточными данными.
Эксперимент ставился следующим образом.
На ферритовом сердечнике с зазором намотан трансформатор. Первичка подключена комутируется на источник постоянного напряжения на фиксированное время. При неподключенной вторичке ток в первичке нарастает до определенного значения. Нарастает линейно, насыщения нет. Подключаю вторичку одним концом к плюсу источника постоянного напряжения другим концом через резистор к минусу источника постоянного напряжения. При этом ток через первичку ( при той же длительности импульса ) нарастает до значения в несколько раз больше, чем при не подключенной первички.
Где-то видел решение с третьей обмоткой, выполняющей роль обратной связи для удержания положения рабочей точки на кривой намагничевания в зависимости от параиетров выходного сигнала. Может эта идея вам поможет.
-
Лучше за 370$ купить вещь без головной боли, чем за 100$ купить гемороя на свою з...
+1
Если инструмент необходим не экономь на нем, железно окупится. А если нет уверенности, что окупится значит он просто не нужен.
-
AT90PWM3B очень хороший контроллер,
PSC - это просто набор логики и без драйверов управления ключами вам не обойтись.
Все так. Посмотрите в сторону трехфазных мостов от IR и не забывайте об аппаратной защите. В этом сочетании на AT90PWM3B можно сделать достаточно качествееный инвертор. На Атмеле есть апликуха как раз для аснхронного двигателя.
-
Ясно, спасибо.,
А где можно найти готовый проект на at90pwm3, (не считая ATAVRMC200)?
А под какую задачу?
-
Можно и нужно, вопрос ставился нужно-ли сегодня такие размеры делать на AVR.
Нужно ли? ИМХО, на усмотрение разработчика. А вот то? что можно проверено на личном опыте. В нашей конторе для войнушки можно применять только мегу128 и CAN128, так с учетом лоадера программы уже за 64к выползают. Опять же ИМХО, при отлаженных библиотеках и при ООП подходе МКII не нужен, в больших проектах он не спасает.
-
Возможно, вы имели в виду объектное программирование? Т.е. использование классов/объектов? Или именно ООП?
Я именно имел в виду объектно-ориентированный подход к проетированию пограммы, конечно с использованием классов. Но классоы это лишь инструмент. Для меня в свое время это была настоящая ломка перейти к идеологии ООП (с С на С++), но это сугубо личные впечатления. У нас в конторе было чуть ли не табу на использование ++ и ООП для программирования МК, пока мы с напарником за почти два года на собственных примерах (проектах) не сломали этот стереотип.
-
... а просто засунул в него один из старых проектов для Intel386.
Если не секрет, как Вам это удалось?
-
Хм... Кстати говоря, как объяснить повышение тональности звука работающего пылесоса (типичный центробежный вентилятор) с повышением нагрузки - увеличением оборотов? Растёт ли потребляемый ток? Должен вроде... Недавно столкнулся с тем, что при перекрытии входного отверстия применяемых у нас блауэров (BLDC, улитка) наблюдается тот же акустический эффект, но потребляемый ток падает.
А как иначе? Ведь это не режим короткого замыкания для двигателя. Перекрылм входное отверстие и он крутит тот воздух который внутри. перепада давления нет, так как нет "подсоса" получаем практически режим холостого хода. Обороты растут ток падает. Особенность вентиляторной нагрузки.
-
За ООП, кстати, не агитирую - эта вещь хороша к месту, и пихать куда попало ее - наживать геморрой. А вот классы сами по себе штука универсальная, и их можно использовать практически без ограничений, в том числе и на AVR. (это тоже ко всем, не только к вам :) ).
А я бы агитировал за ООП, в условиях корпоративной разработки проектов и их дальнейшего сопровождения альтернативы ООП ИМХО не вижу.
-
Более того, вы будете в шоке, но я оставлял в воздухе RESET. Ни одной проблемы.
В воздухе?! Или все же он был выведен на разъем пограммирования. Иначе в режим последовательного программирования контроллер посто не попадет.
-
В Питере Николь.
www.aonikol.ru
-
А все-таки как это вяжется с изначальными утверждениями, что 20 плат нормально программировались. Советы от Tolyaha бесспорно по делу. Но ИМХО в Вашем случае причина в чем-то другом. Откровенного криминала в разводке печатной платы я все же не вижу. Согласен с замечаниями Tolyaha, но должно программироваться и в таком исполнении. А не пробовали питание 5В, или вторая микруха его категорически не любит?
-
Простите я чайник, осциллограф у меня 1 мгц берет максимум, напряжения я указал.
Но! Думаю что все-таки заводится, ибо при программировании или стирании происходит RESET, avreal выдает ошибку, либо просто can't resync, либо "микросхема не отвечает, проверьте питание", после чего контроллер с записанной ранее программой стартует как ни в чем не бывало, и добротно исполняет программу.
в поньке что выбирать - AVR ISP API или ?
Сообщение can't resync часто бывает, когда RESET не доходит до лапы контроллера, посмотрите что там делается при попытке программирования. Выбрать следует AVR ISP I/O, сделать калибровку и в светлый путь...Для avreal попробуйте опцию -%, может что-нибудь прояснится.
-
а пока все-таки оцените разводку платы, нет ли потенциальных проблем?
Я не увидел. Попробуйте понькой, м.б. поможет, она типа калибруется под машину. А кварц заводится?
ATmega128 ISP & ADC
в MCS51, AVR, PIC, STM8, 8bit
Опубликовано · Пожаловаться
PEN можно в воздухе оставить или на VCC через 1к, это рудимент от меги103. Дело не в этом. Осцилом посмотрите сигналы на ногах, может что то прояснится.