Специальные цены   новые товары
+ Ответить в теме
Страница 126 из 165 ПерваяПервая ... 116 124 125 126 127 128 136 ... ПоследняяПоследняя
Показано с 5,001 по 5,040 из 6569

Создание собственной системы стабилизации

Тема раздела Квадрокоптеры. Общие вопросы в категории Квадрокоптеры и мультироторы; Сообщение от Razek Гуи под винды писать не долго "всё- ПРОСТО если знаешь- КАК" (китайская мудрость) ....

  1. #5001

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от Razek Посмотреть сообщение
    Гуи под винды писать не долго
    "всё- ПРОСТО если знаешь- КАК" (китайская мудрость) .

  2.  
  3. #5002

    Регистрация
    07.04.2012
    Адрес
    Брянск
    Возраст
    29
    Сообщений
    1,674
    Записей в дневнике
    6
    могу недоделанную но рабочую гуи для мультивия на делфи дать

  4. #5003

    Регистрация
    22.08.2011
    Адрес
    Калининград
    Возраст
    35
    Сообщений
    945
    Записей в дневнике
    2
    Цитата Сообщение от oleg70 Посмотреть сообщение
    китайская мудрость
    Если нужна будет консультация я помогу. Если уже есть какой-то протокол общения с контроллером для которого нужно сделать простую обертку (прочитать/записать настойки, графики от датчиков показать ), без экзотически графических контролов, то там делов на неделю со всей отладкой.




    Кто-нибудь ковырял сурцы мисион планера? Как в него можно заинтегрировать другой скриптовый движок? Накалякал я тут скриптовый движок для алексмосовских плат, который позволяет скриптово рулить гимблами. Но как отдельное приложение https://sites.google.com/site/rmotiongmb/ как-то не айс хочется большей автоматизации.

  5. #5004

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от Razek Посмотреть сообщение
    Если нужна будет консультация я помогу. Если уже есть какой-то протокол общения с контроллером
    Пока я пойму: что такое "скриптовый движок" и "гимблы" уверен пройдет немало времени, а может и вечность...(когда эти термины появились, я уже давно закончил свое образование в институте )..

  6.  
  7. #5005

    Регистрация
    26.10.2010
    Адрес
    Истра
    Возраст
    38
    Сообщений
    901
    Тут очень умные дядьки ). А никто в винде с COM портом не воевал? Сейчас событие "datareceived"
    http://msdn.microsoft.com/ru-ru/libr...vs.110%29.aspx
    винда дергает раз в 15 байт в буфере или ~7 миллисекунд, скорость(19200). А низзя винапи пнуть чтобы на каждый байт вызывала? Или в мультизадачной системе это анрыл и не выпендриваясь сделать на микро контроллере? Как на тойже ардуине мега с этим никто не проверял? Совсем нет время на изучение мат части
    ЗЫ задача максимально синхронизировать 4 COM порта... как можно точнее.... Сори что не про коптеры...

  8. #5006

    Регистрация
    17.06.2011
    Адрес
    Минск
    Возраст
    39
    Сообщений
    1,941
    Цитата Сообщение от VitaliyRU Посмотреть сообщение
    Тут очень умные дядьки ). А никто в винде с COM портом не воевал? Сейчас событие "datareceived" http://msdn.microsoft.com/ru-ru/libr...vs.110%29.aspx винда дергает раз в 15 байт в буфере или ~7 миллисекунд, скорость(19200). А низзя винапи пнуть чтобы на каждый байт вызывала? Или в мультизадачной системе это анрыл и не выпендриваясь сделать на микро контроллере? Как на тойже ардуине мега с этим никто не проверял? Совсем нет время на изучение мат части ЗЫ задача максимально синхронизировать 4 COM порта... как можно точнее.... Сори что не про коптеры...
    Посмотрите в сторону размера буфера FIFO в настройках драйвера COM порта (кнопка "дополнительно"). Если драйвер FTDI, то там еще есть настройка времени Latency timer. http://www.instructables.com/id/Lamp...erial-Latency/
    Суть Latecy timer - Это время, через которое вы получите событие о новых данных, не зависимо от того, заполнился буфер или нет.

  9. #5007

    Регистрация
    26.10.2010
    Адрес
    Истра
    Возраст
    38
    Сообщений
    901
    Цитата Сообщение от Sir Alex Посмотреть сообщение
    Посмотрите в сторону размера буфера FIFO в настройках драйвера COM порта
    Тут я не вьехал. В C# в SerialPort есть размер буфера чтения, но она его игнорирует. Ставлю скорость 115200 и буфер 1000, а по факту буфер вообще 4 килобайта и боюсь что винда просто не успевает(на каждый вызов события или в петле если синхронно читать). Спасибо, в дровах попробую. COM порт железный, там мамка т.н. встраиваемая у нее 8 железных COM .
    Да и попробую ftdi хрен с ними с железными, в них-то такой настройки я не видел....

  10.  
  11. #5008

    Регистрация
    17.06.2011
    Адрес
    Минск
    Возраст
    39
    Сообщений
    1,941
    Цитата Сообщение от VitaliyRU Посмотреть сообщение
    Тут я не вьехал. В C# в SerialPort есть размер буфера чтения но она его игнорирует. Ставлю скорость 115200 и буфер 1000 а по факту буфер вообще 4 килобайта и боюсь что винда просто не успевает(на каждый вызов события или в петле если синхронно читать). Спасибо в дровах попробую. COM порт железный, там мамка т.н. встраиваемая у нее 8 железных COM .
    c# для этого использовать наверное жестоко. Попробуйте реализовать на C или другом языке.

  12. #5009

    Регистрация
    26.10.2010
    Адрес
    Истра
    Возраст
    38
    Сообщений
    901
    Цитата Сообщение от Sir Alex Посмотреть сообщение
    c# для этого использовать наверное жестоко. Попробуйте реализовать на C или другом языке.
    Там проект весь на C# хотя ничто не мешает DLL ку сделать на С. Это хотел в первую очередь проверить, просто мне кажеться все же особенности винды а не .NET
    Алексей а как на тех же "ардуинах"(плату разводить времяни тоже нет ) там можно каждый байт считать? не пробовали случайно? Если можно это правильнее чем С на винде...
    И еще раз спасибо за отклик

  13. #5010

    Регистрация
    17.06.2011
    Адрес
    Минск
    Возраст
    39
    Сообщений
    1,941
    Цитата Сообщение от VitaliyRU Посмотреть сообщение
    Алексей а как на тех же "ардуинах"(плату разводить времяни тоже нет ) там можно каждый байт считать? не пробовали случайно? Если можно это правильнее чем С на винде... И еще раз спасибо за отклик
    Можете хоть каждый бит ловить )))

  14. #5011

    Регистрация
    26.10.2010
    Адрес
    Истра
    Возраст
    38
    Сообщений
    901
    Цитата Сообщение от Sir Alex Посмотреть сообщение
    Можете хоть каждый бит ловить )))
    Вот не сомневался что где-где а тут опытные умные дядьки помогут )
    я просто по базам и гуям, а тут пришлось )

  15. #5012

    Регистрация
    22.08.2011
    Адрес
    Калининград
    Возраст
    35
    Сообщений
    945
    Записей в дневнике
    2
    Цитата Сообщение от VitaliyRU Посмотреть сообщение
    винда дергает раз в 15 байт в буфере или ~7 миллисекунд, скорость(19200). А низзя винапи пнуть чтобы на каждый байт вызывала? Или в мультизадачной системе это анрыл
    Можно надо только самому реализовать чтение с ком порта со своим блэк джеком и шлюхами со своими событиям, в отдельных потоках. В котом будет крутиться ReadFile с нужным размером буфера. Получили данные послали события об этом главному потоку.
    Открывать ком порт и читать из него:
    Код:
    ::CreateFile(_T("\\\\.\\COM1"), GENERIC_READ | GENERIC_WRITE, NULL, 0, OPEN_EXISTING, NULL, NULL);

  16. #5013

    Регистрация
    26.10.2010
    Адрес
    Истра
    Возраст
    38
    Сообщений
    901
    Цитата Сообщение от Razek Посмотреть сообщение
    Открывать ком порт и читать из него:
    угу, погуглю спасибо

  17. #5014

    Регистрация
    07.04.2012
    Адрес
    Брянск
    Возраст
    29
    Сообщений
    1,674
    Записей в дневнике
    6
    влезу и я...
    в винде (я про делфи) можно ловить хоть каждый байт, это проблем не создает - в том случае если ты ждеш, но тогда сама программа висит.
    намного удобнее загонять все в буфер нужного размера, который потом просто парсить.
    Код:
    //Чтение данных из порта
    function TMainForm.PortReadStr(DataSize:integer):string;
    var BufStr:string;
    begin
        BufStr:='';
        try
            //Если есть соединение с портом читаем данные
            if PortConnect_ then ComPort.ReadStr(BufStr,DataSize);
        except
    
        end;
        PortReadStr:=BufStr;
    end;
    //Запись команды Command в порт, и чтение ответа по истечению TimeOut
    //Запись команды и чтение будет производится до тех пор, пока не
    //будет получен ответ, или количество циклов будет болше SendCount
    //Результатом функции является ответ
    Function TMainForm.WriteComand(Command:string;SendCount:Integer;TimeOut:Integer):string;
    var i:byte;
        AnswStr:string;
    begin
        WriteComand:='';
        //Пишем данные
        PortWriteStr(Command);
        Delay(TimeOut);
        //читаем
        AnswStr:=PortReadStr(1024);
        i:=1;
        //если нет ответа и количество попыток не истекло
        while (SendCount>i) and (length(AnswStr)=0) do
        begin
            //Пишем данные
            PortWriteStr(Command);
            Delay(TimeOut);
            //читаем
            AnswStr:=PortReadStr(1024);
            inc(i);
        end;
    
        WriteComand:=AnswStr;
    end;
    в данном случае - отсылаем запрос и ждем определенное время на ответ и читаем буфер.

  18. #5015

    Регистрация
    26.10.2010
    Адрес
    Истра
    Возраст
    38
    Сообщений
    901
    Цитата Сообщение от mataor Посмотреть сообщение
    в винде (я про делфи) можно ловить хоть каждый байт, это проблем не создает
    Я вот тоже так думал, но C# чета не хочет. ComPort это какой unit в Delphi? сколько лет ее юзал но не приходилось )
    А с 4 мя ком полюбому многопоточно надо общаца, либо оно само асинхронно на событиях, либо руками многопоточно(что коряво КМК)... Com можно открывать/закрывать тока из основоного потока, иначе оно ругаецца

  19. #5016

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Мысли над регулятором:
    как известно повсеместно используется ПИД (думаю распространяться не стоит?)
    а не заменить ли его на регулятор с одним параметром?
    U = K*(angle + vel*dt1) только dt1 - не время цикла, а время между считыванием скорости с датчика и подачей данных в регулятор... грубо обнуляем dt1 при чтении и смотрим в него в момент расчёта регулятора...
    дело в том, что D и I в ПИДе не что иное как коррекция ошибки пропорции, так как за время между считыванием данных с датчика и поступления их в расчёт ошибка накапливается - тупо на старых данных регулятор строим, а тут его слегка предсказали...
    Что даёт? Офигенный плюс к карме Дринкеру с крутилками, их всего 3 ))) ну и как следствие меньше настроек?
    Последний раз редактировалось SergDoc; 12.07.2014 в 18:29.

  20. #5017

    Регистрация
    26.10.2010
    Адрес
    Истра
    Возраст
    38
    Сообщений
    901
    Цитата Сообщение от SergDoc Посмотреть сообщение
    U = K*(angle + vel*dt1)
    Это аналог PI. С настройкой(К) вынесенной за скобки. Без D будет расколбас при прочиъ равных и не раздельно P и I настраивать тоже не очень. Как то так КМК...
    ЗЫ PID и то слишком примитвный, там не упрощать а усложнять надо, но с этой гребанной работой все лень/некогда (

  21. #5018

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Не согласен - D мы как раз берём от скорости, а для чего, а именно для того, что P с течением времени (то что я обозначил dt1) рассчитывается неправильно, в идеале P мы получаем чуть меньше чем должно быть ибо угол уже уплыл и с каждой интерацией это всё больше и больше. И делаем мы что? - Увеличиваем P (коэффициентом) - переруливает, плохо о - берём D и им тормозим P - опять попандос, опять недоруливаем - давайте I введём - дабы дожимало - 3 параметра для шаманства вместо вычисления правильного показателя один раз?
    тут как бэ слов мало тут делать и смотреть надо

    Цитата Сообщение от VitaliyRU Посмотреть сообщение
    Это аналог PI. С настройкой(К) вынесенной за скобки. Без D будет расколбас
    КУК прекрасно переносит )))

  22. #5019

    Регистрация
    26.10.2010
    Адрес
    Истра
    Возраст
    38
    Сообщений
    901
    Цитата Сообщение от SergDoc Посмотреть сообщение
    берём D и им тормозим P - опять попандос
    С D мат модель чуть ближе к физической. То что D тормозит P(когда скорость и ускорение в разные стороны направлены) наоборот хорошо. Но все равно далеко от иделала. На разные возмущающие воздействия(по переданному импульсу) нужны разные PD. Ну и PID при слабых воздействиях толком не работает(в т.ч. по описанной выше причине) от этого коптер так на подушке ерзает и в ветер раскачиваться...
    вот на такой хрени Нажмите на изображение для увеличения
Название: 0_74f20_52f606fd_orig.jpg
Просмотров: 26
Размер:	103.5 Кб
ID:	958920
    реакция нужна как у кошки что бы в дверной проем пролететь по ФПВ . Ветер от собственных винтов....
    ЗЫ c Вашим dt я если честно идею не уловил...

    Цитата Сообщение от SergDoc Посмотреть сообщение
    КУК прекрасно переносит )))
    Если сравнивать с автомобильными подвесками то это начало прошлого века. Обычный амортизатор трения. А если посмотреть на WRC.... то небо и земля. Причем сейчас на дорогих версиях серийных машин амортизаторы(типа бнв эмок, мерсов ML и прочих ауди РС и ипрез врыкс) по скожей технологии сделаны. Однотрубные с газом высокого давления ) Они позволяют юолее правильную регрессивную характеристику выдерживать.

  23. #5020

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от VitaliyRU Посмотреть сообщение
    ЗЫ c Вашим dt я если честно идею не уловил...
    идея дожать пропорцию до реальной (в момент расчёта регулятора)

  24. #5021

    Регистрация
    26.10.2010
    Адрес
    Истра
    Возраст
    38
    Сообщений
    901
    Цитата Сообщение от SergDoc Посмотреть сообщение
    идея дожать пропорцию до реальной (в момент расчёта регулятора)
    Ааа, перечитал еще раз - дошло Это все блохи не имеющие ни какого принципиального значения P и i то эмпирические были. И сами эти коэф. зависят от соотношения момента инерции к моменту от моторов грубо помноженное на приемистость моторов. Т.е. определяющем являеться не как скорость мерить, а физические параметры коптера. И вообще чем больше настроек тем лучше ) не ? )

  25. #5022

    Регистрация
    07.04.2012
    Адрес
    Брянск
    Возраст
    29
    Сообщений
    1,674
    Записей в дневнике
    6
    Цитата Сообщение от VitaliyRU Посмотреть сообщение
    ComPort это какой unit в Delphi?
    угу, могу поделится если надо

  26. #5023

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    только dt1 - не время цикла, а время между считыванием скорости с датчика и подачей данных в регулятор...
    А разве это не одно и тоже ?? (по другому то как ?)

    Цитата Сообщение от SergDoc Посмотреть сообщение
    Офигенный плюс к карме Дринкеру с крутилками, их всего 3
    Для самолета вообще можно обойтись одной "П" - составляющей... (проверено), вполне сносно летает, но как и следовало ожидать угол крена/тангажа выдерживается с ошибкой, поэтому я все же "усложнил " и добавил таки "И" "Д".
    А для коптера такое "кастрирование" выйдет боком однозначно....

    Придумать бы метод оценки коэфициентов ПИДа в зависимости от реакции аппарата на возмущение (!)... т.е. как нибуть замерять их оптимальность.. тогда можно было бы просто сделать "автокоррекцию" и вообще забыть про крутилки, но пока че то не могу...
    Последний раз редактировалось oleg70; 16.07.2014 в 16:14.

  27. #5024

    Регистрация
    29.06.2012
    Адрес
    Москва
    Возраст
    32
    Сообщений
    799
    Записей в дневнике
    3
    Подскажите по ws2812...у меня есть 1 метр,есть ардуина мини...прошивка на апм 3,1,5
    Чего я хочу? на каждый из четырех лучей прилепить по 8 диодов ws2812 и моргать предупреждениями АПМа и +свои эффекты.

  28. #5025

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Кто-нибудь MPU9250 в живую видел? Чёт мне приехали с какой-то маркировкой MP92 и без надписи iventsense?

  29. #5026

    Регистрация
    24.01.2010
    Адрес
    Москва
    Возраст
    29
    Сообщений
    3,547
    Записей в дневнике
    33
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Кто-нибудь MPU9250 в живую видел? Чёт мне приехали с какой-то маркировкой MP92 и без надписи iventsense?
    Тута походу честный магаз вот там картинка есть http://www.csgshop.com/product.php?id_product=169

  30. #5027

    Регистрация
    22.01.2014
    Адрес
    Москва
    Возраст
    36
    Сообщений
    234
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Чёт мне приехали с какой-то маркировкой MP92
    Все верно, табличку на 40й странице даташИта посмотри.

  31. #5028

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Пока экспериментировал со своей платой стабилизации, заметил "интересный" момент: не все ESC хотят работать с 3.3v PWM..., даже хваленые типа "турнига плюс".. (??). Самое интересное, по принципиальной схеме, PWM подается на ногу прерывания Атмеги, т.е. работать должно легко и везде, но не тут то было.... "гугление" этого вопроса внятных ответов не дало...
    Кто нибуть сталкивался с этим ?

  32. #5029

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    На плющах всю жизнь - всё прекрасно, вопрос на какой частоте и перешиты ли регули, с родной прошивкой работают нормально до 300 гц

  33. #5030

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    плющах всю жизнь - всё прекрасно
    У меня вот "плющ" 25А не прошитый и с нормальной (50Гц) частотой не работает.. и не только он, буквально перебирал из запасов разные марки и на разный ампераж (выбор есть), нормально работают SuperSimple, получается что если делать коммерческий продукт, то преобразователь надо ставить на плату... (не понятно только почему, сигнал подается на дискретную ногу INT0, даже при 5в питании, 3.3в железно "единица")

  34. #5031

    Регистрация
    22.01.2014
    Адрес
    Москва
    Возраст
    36
    Сообщений
    234
    А на выходе точно PWM? Осцил или логический анализатор воткнуть и посмотреть.

  35. #5032

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от oleg70 Посмотреть сообщение
    даже при 5в питании, 3.3в железно "единица")
    Ну как бы давно летаем - никогда не было проблем...
    Open Pilot (всех мастей), vr brain, Naze32, Multipilot, AeroQad, AutoQad, у меня пачка различных контроллеров, rual, Drinker, Siberian, Mahowik, VisAsta.... ни у кого проблем не было... (PX4 и их производные не берём - там есть преобразователи уровня)
    Ищите непропай или проблему в коде... предделители на таймеры правильно выставлены, а то я раз на 800Гц вместо 400Гц запустил 1-й и 8-й таймеры...

    Цитата Сообщение от oleg70 Посмотреть сообщение
    У меня вот "плющ" 25А не прошитый и с нормальной (50Гц) частотой не работает.. и не только он
    Так - а по потреблению 5В что? ибо я описывал глюки плющей при перегреве - где-то "ESC ликбез" что-ли нестабильно начинают работать, они на внутреннем rc генераторе...

  36. #5033
    Забанен
    Регистрация
    12.01.2011
    Адрес
    Moscow
    Возраст
    43
    Сообщений
    952
    Цитата Сообщение от oleg70 Посмотреть сообщение
    тогда можно было бы просто сделать "автокоррекцию" и вообще забыть про крутилки, но пока че то не могу...
    Есть такой метод "релейный" автонастройки ПИД регулятора. Довольно прост, но все руки не дойдут до опробывания.

  37. #5034

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    я описывал глюки плющей
    Эксперимент ставил "чистый" - моя плата и китайский сервотестер, чатота/длительность/вольтаж все проверенно осциллографом.... Как, а главное чем (?), ESC "чует" пониженный уровень не понятно... Если всеж следовать здравому смыслу, то дело скорей не в размахе ШИМ, а в его временнОм возникновении при старте...
    Как говорится "ничего не понятно но результат налицо", причем плющей таких у меня два одинаковых и одинаково не работающих...

  38. #5035

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Инициализацию таймеров - код можно?

  39. #5036

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Инициализацию таймеров - код можно?
    Вот: (частота проца у меня 160 Мгц)

    Код:
    //PWM output SETUP ============================================================
    //=============================================================================
    //=============================================================================
    //=============================================================================
    
      RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
      RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
    
      // GPIOC Configuration:
      GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 ;
      GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
      GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;
      GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
      GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP ;
      GPIO_Init(GPIOC, &GPIO_InitStruct);
    
      GPIO_InitStruct.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15 ;
      GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF;
      GPIO_InitStruct.GPIO_Speed = GPIO_Speed_100MHz;
      GPIO_InitStruct.GPIO_OType = GPIO_OType_PP;
      GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP ;
      GPIO_Init(GPIOD, &GPIO_InitStruct);
    
      /* Connect TIM3 pins to AF2 */
      GPIO_PinAFConfig(GPIOC, GPIO_PinSource6, GPIO_AF_TIM3);
      GPIO_PinAFConfig(GPIOC, GPIO_PinSource7, GPIO_AF_TIM3);
      GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_TIM3);
      GPIO_PinAFConfig(GPIOC, GPIO_PinSource9, GPIO_AF_TIM3);
    
        /* Connect TIM4 pins to AF2 */
      GPIO_PinAFConfig(GPIOD, GPIO_PinSource12, GPIO_AF_TIM4);
      GPIO_PinAFConfig(GPIOD, GPIO_PinSource13, GPIO_AF_TIM4);
      GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_TIM4);
      GPIO_PinAFConfig(GPIOD, GPIO_PinSource15, GPIO_AF_TIM4);
    
    
      /* Time base configuration */
    TIM_TimeBaseStructure.TIM_Period = 15000;
    TIM_TimeBaseStructure.TIM_Prescaler = 80;
    TIM_TimeBaseStructure.TIM_ClockDivision = 0;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    
    TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
    
    TIM_TimeBaseStructure.TIM_Period = 15000;
    TIM_TimeBaseStructure.TIM_Prescaler = 80;
    TIM_TimeBaseStructure.TIM_ClockDivision = 0;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    
    TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
    
    // OUT TIM3========================================
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_Pulse = 1000;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OC1Init(TIM3, &TIM_OCInitStructure);
    
    TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);
    
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_Pulse = 1000;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OC2Init(TIM3, &TIM_OCInitStructure);
    
    TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
    
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_Pulse = 1000;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OC3Init(TIM3, &TIM_OCInitStructure);
    
    TIM_OC3PreloadConfig(TIM3, TIM_OCPreload_Enable);
    
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_Pulse = 1000;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OC4Init(TIM3, &TIM_OCInitStructure);
    
    TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable);
    
    // OUT TIM4========================================
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_Pulse = 1000;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OC1Init(TIM4, &TIM_OCInitStructure);
    
    TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);
    
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_Pulse = 1000;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OC2Init(TIM4, &TIM_OCInitStructure);
    
    TIM_OC2PreloadConfig(TIM4, TIM_OCPreload_Enable);
    
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_Pulse = 1000;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OC3Init(TIM4, &TIM_OCInitStructure);
    
    TIM_OC3PreloadConfig(TIM4, TIM_OCPreload_Enable);
    
    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
    TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
    TIM_OCInitStructure.TIM_Pulse = 1000;
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
    TIM_OC4Init(TIM4, &TIM_OCInitStructure);
    
    TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable);
    
    
        TIM_ARRPreloadConfig(TIM3, ENABLE);
        TIM_ARRPreloadConfig(TIM4, ENABLE);
    
    
        /* TIM3 enable counter */
        TIM_Cmd(TIM3, ENABLE);
        TIM_Cmd(TIM4, ENABLE);

  40. #5037

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    вот:

    Код:
    TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;
    остальное тут https://github.com/SergDoc/Nev_Multi.../src/drv_pwm.c

  41. #5038

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    TIM_OCPolarity_Low
    Чет не пойму... , если Low, то "двигаться" (1<->2 мс) будет нижний фронт, а стандарт - верхний/положительный вроде....
    и на осциллографе у меня именно верхний.. Или это очепятка или я вообще нифига не понимаю..

  42. #5039

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    "прижимать" быстрее чем "подтягивать" вверх
    Олег попробуйте и отпишитесь - это точно работает...

  43. #5040

    Регистрация
    26.11.2012
    Адрес
    Tambov
    Возраст
    46
    Сообщений
    777
    Цитата Сообщение от SergDoc Посмотреть сообщение
    это точно работает...
    Ды у меня и так все работает (просто регули другие поставил и все), а на Гитхабе повнимательней посмотрел и понял что сам принцип вывода сигнала другой: там как то через прерывания ШИМ выводится на любую ногу проца (удобно), а у меня все проще: беру аппаратную ногу выхода таймера и все.... результат тот же..

+ Ответить в теме

Похожие темы

  1. Система стабилизации гиро+акселерометр
    от Фантомас в разделе Полеты по камере, телеметрия
    Ответов: 32
    Последнее сообщение: 25.01.2011, 14:47
  2. Продам Продам Клона Trex 450SEV2 + Аппаратура + Запчасти+ система стабилизации RTF
    от omegapraim в разделе Барахолка. Вертолеты
    Ответов: 1
    Последнее сообщение: 12.01.2011, 18:16
  3. Продам Трёхосевую систему стабилизации Turnigy V-Bar 600
    от avi@tor в разделе Барахолка. Аппаратура
    Ответов: 1
    Последнее сообщение: 08.11.2010, 13:02
  4. Продам Gaui система стабилизации GU365, дёшево.
    от avi@tor в разделе Барахолка. Вертолеты
    Ответов: 3
    Последнее сообщение: 03.08.2010, 11:13
  5. Системы стабилизации
    от max815 в разделе Фото и видеосъемка, системы стабилизации
    Ответов: 16
    Последнее сообщение: 11.03.2010, 03:14

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения