Специальные цены   новые товары
+ Ответить в теме
Страница 49 из 165 ПерваяПервая ... 39 47 48 49 50 51 59 ... ПоследняяПоследняя
Показано с 1,921 по 1,960 из 6569

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

Тема раздела Квадрокоптеры. Общие вопросы в категории Квадрокоптеры и мультироторы; Сообщение от SergDoc чёй-та мне казалось 12 или я что-то путаю? это у атмег 10-битный... Да, 12 бит , чейто ...

  1. #1921

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от SergDoc Посмотреть сообщение
    чёй-та мне казалось 12 или я что-то путаю? это у атмег 10-битный...
    Да, 12 бит , чейто попутал


    Цитата Сообщение от SergDoc Посмотреть сообщение
    i2c - видит зараза только одно устройство (на мелкоплате так-же сидело 4 устройства) видит барометр, магнитометр не признаёт, выпаивал барометр - видит магнитометр, отключаю баро (программно) не видит магнитометр,
    Странно, такое впечатление что либо неправильно настроены и2ц выводы контроллера, либо серьёзный косяк в разводке шины.

  2.  
  3. #1922

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

    Цитата Сообщение от oleg70 Посмотреть сообщение
    можно ставить от 10 до 4.7 кОМ..
    на 5 вольтах, на 3.3 надо попробовать 1кОм влепить, на мелкоплате 4.7 на этой тоже....

  4. #1923

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Всё нормально i2c запущена в полном объёме - сопля была мелкая помиж лап проца на пару килоом, а в баро не надо читать ничего точнее вычитать 0х00 - что с успехом и делалось, остался уарт, эта зараза на вход работает, а на выходе каша и вешается ну ещё одно усилие - побороть его и с песней к новым глюкам
    Последний раз редактировалось SergDoc; 28.04.2013 в 01:46.

  5. #1924

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

  6.  
  7. #1925

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Злосчастный UART+DMA, может кто найдёт ошибку:
    Код:
    #include "board.h"
    
    /*
        DMA UART routines idea lifted from AutoQuad
        Copyright © 2011  Bill Nesbitt
    */
    #define UART_BUFFER_SIZE    256
    
    // Receive buffer, circular DMA
    volatile uint8_t rxBuffer[UART_BUFFER_SIZE];
    uint32_t rxDMAPos = 0;
    volatile uint8_t txBuffer[UART_BUFFER_SIZE];
    uint32_t txBufferTail = 0;
    uint32_t txBufferHead = 0;
    
    static void uartTxDMA(void)
    {
        DMA2_Stream7->M0AR = (uint32_t)&txBuffer[txBufferTail];
        if (txBufferHead > txBufferTail) {
            DMA2_Stream7->NDTR = txBufferHead - txBufferTail;
            txBufferTail = txBufferHead;
        } else {
            DMA2_Stream7->NDTR = UART_BUFFER_SIZE - txBufferTail;
            txBufferTail = 0;
        }
    
        DMA_Cmd(DMA2_Stream7, ENABLE);
    }
    
    void DMA2_Stream7_IRQHandler(void)
    {
        DMA_ClearITPendingBit(DMA2_Stream7,DMA_IT_TCIF7);
        DMA_Cmd(DMA2_Stream7, DISABLE);
    
        if (txBufferHead != txBufferTail)
            uartTxDMA();
    }
    
    void uartInit(uint32_t speed)
    {
        GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
        DMA_InitTypeDef DMA_InitStructure;
        NVIC_InitTypeDef NVIC_InitStructure;
    
        // USART1_TX    PA9
        // USART1_RX    PA10
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
    	  GPIO_PinAFConfig(GPIOA, GPIO_PinSource9, GPIO_AF_USART1);
    	  GPIO_PinAFConfig(GPIOA, GPIO_PinSource10, GPIO_AF_USART1);
    
        // DMA TX Interrupt
        NVIC_InitStructure.NVIC_IRQChannel = DMA2_Stream7_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
    
        USART_InitStructure.USART_BaudRate = speed;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;
        USART_InitStructure.USART_StopBits = USART_StopBits_1;
        USART_InitStructure.USART_Parity = USART_Parity_No;
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
        USART_Init(USART1, &USART_InitStructure);
    
        // Receive DMA into a circular buffer
        DMA_DeInit(DMA2_Stream5);
    		DMA_InitStructure.DMA_Channel = DMA_Channel_4;
        DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;
        DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&USART1->DR;
        DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)rxBuffer;
        DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;
        DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
        DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
        DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
        DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
        DMA_InitStructure.DMA_BufferSize = UART_BUFFER_SIZE;
        DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
        DMA_Init(DMA2_Stream5, &DMA_InitStructure);
    
        DMA_Cmd(DMA2_Stream5, ENABLE);
        USART_DMACmd(USART1, USART_DMAReq_Rx, ENABLE);
        rxDMAPos = DMA_GetCurrDataCounter(DMA2_Stream5);
    
        // Transmit DMA
        DMA_DeInit(DMA2_Stream7);
    		DMA_InitStructure.DMA_Channel = DMA_Channel_4;
        DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)&USART1->DR;
        DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral;
        DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
        DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
        DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
        DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
        DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
        DMA_Init(DMA2_Stream7, &DMA_InitStructure);
        DMA_ITConfig(DMA2_Stream7, DMA_IT_TC, ENABLE);
        DMA2_Stream7->NDTR = 0;
        USART_DMACmd(USART1, USART_DMAReq_Tx, ENABLE);
    
        USART_Cmd(USART1, ENABLE);
    }
    
    uint16_t uartAvailable(void)
    {
        return (DMA_GetCurrDataCounter(DMA2_Stream5) != rxDMAPos) ? true : false;
    }
    
    bool uartTransmitEmpty(void)
    {
        return (txBufferTail == txBufferHead);
    }
    
    uint8_t uartRead(void)
    {
        uint8_t ch;
    
        ch = rxBuffer[UART_BUFFER_SIZE - rxDMAPos];
        // go back around the buffer
        if (--rxDMAPos == 0)
            rxDMAPos = UART_BUFFER_SIZE;
    
        return ch;
    }
    
    uint8_t uartReadPoll(void)
    {
        while (!uartAvailable()); // wait for some bytes
        return uartRead();
    }
    
    void uartWrite(uint8_t ch)
    {
        txBuffer[txBufferHead] = ch;
        txBufferHead = (txBufferHead + 1) % UART_BUFFER_SIZE;
    
        // if DMA wasn't enabled, fire it up
        if (!(DMA2_Stream7->CR & 1))
            uartTxDMA();
    }
    
    void uartPrint(char *str)
    {
        while (*str)
            uartWrite(*(str++));
    }
    код переделан со 103-г на мелкоплате работает, тактирование периферии и портов включено зарание.....

  8. #1926

    Регистрация
    07.04.2012
    Адрес
    Брянск
    Возраст
    29
    Сообщений
    1,674
    Записей в дневнике
    6
    как и обещал... схема контроллера http://gfile.ru/av2Z
    не до конца правда поправлена + есть мелкие но не критичные недочеты...
    также начал потихоньку паять платку... правда полностью готова будет не скоро - пока нет мелочевки 0605, разъемов и еще мелочи разной...

  9. #1927

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Злосчастный UART+DMA, может кто найдёт ошибку
    В приведённом коде ошибки не нашел, что отладчик говорит? Попробуй в начале программы сделать цикл с посылкой сисмвола в порт.

  10.  
  11. #1928

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

    Цитата Сообщение от rual Посмотреть сообщение
    Попробуй в начале программы сделать цикл с посылкой сисмвола в порт.
    после инициализации порта зациклить хрень типа «Hello, world!» - попробую как время будет.....

  12. #1929

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

  13. #1930

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от SergDoc Посмотреть сообщение
    после инициализации порта зациклить хрень типа «Hello, world!» - попробую как время будет..
    Да, это покажет работу порта на передачу.


    Цитата Сообщение от SergDoc Посмотреть сообщение
    интересно если в serial ткнуть точку останова, тормознёт или нет - чёт мне подсказывает что проскочит....
    тормознёт.

  14. #1931

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

  15. #1932

    Регистрация
    26.04.2013
    Адрес
    Санкт-Петербург
    Возраст
    42
    Сообщений
    19
    Доброго времени суток, небольшой вопрос к Сергею (SergDoc) - А почему для создания собственной системы стабилизации Вы выбрали ARM?
    Сам сейчас так же с нуля пишу систему стабилизации на AVR (не подсматривая в готовые), и взвешиваю ЗА и ПРОТИВ разных платформ.
    У ARM конечно потенциально возможностей больше, ибо фактически компьютер, но вот задач под эти возможности не вижу.
    А с AVR - наоборот. Взять готовую МЕГУ2560, там места хватит подо всё.
    В моём понимании коптер - жесткий автомат:
    - Стабилизация.(уже сделано в любом, самом дешевом.)
    - Определение местоположения.(так же, разве что в КуКе нет.)
    - Блокировка ошибочных действий оператора. (вывод из падений, запрет превышения скоростей и.т.д.) - пока готовых не видел, но вполне решаемо.
    - Логгирование полёта.
    - Передача телеметрии.
    ------- Всё указанное спокойно решается AVR.

    А вот задачи под ARM - распознавание препятствий по видео? - На ползающих не научились ещё массово это делать, что уж говорить про летающие.
    Лучше радар поставить (AVR опять же) больше будет работоспособности.
    Поиск горизонта?
    Работа по алгоритму?
    Нейронное обучение?

    Как ни ломал голову себе, задач под ARM не нашел. Вот и интересно Ваши мотивы. Если это не тайна конечно.

  16. #1933

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

  17. #1934

    Регистрация
    07.04.2012
    Адрес
    Брянск
    Возраст
    29
    Сообщений
    1,674
    Записей в дневнике
    6
    Цитата Сообщение от Stiger Посмотреть сообщение
    Вот и интересно Ваши мотивы. Если это не тайна конечно.
    не знаю как именно у моего тезки, но я лично стал делать на другом семействе (хоть и атмел) по нескольким причинам:
    1) интерес (чисто как программер, освоить другую довольно интересную платформу)
    2) возможности (обычных АВР хоть и хватает на текущие задачи, но уже с натягом - например те же ШИМ выхода и таймеры - у АВР их уже тупо не хватает, чтобы сделать все аппаратно)
    3) запланированные доработки (совместно со 2-м пунктом - на обычной меге придется изгаляться)

  18. #1935

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от Stiger Посмотреть сообщение
    Как ни ломал голову себе, задач под ARM не нашел. Вот и интересно Ваши мотивы. Если это не тайна конечно.
    а это можно и у Syberian или у vis.asta спросить
    ну и от себя, так как я в программировании практически полный ноль, а под STM открытых проектов много - ну и все вытекающие

    Цитата Сообщение от Stiger Посмотреть сообщение
    Нейронное обучение?
    когда я начинал эту тему, знакомый программер как раз и пообещал алгоритм на нейросетях, точнее сначала он пообещал, а потом слился, когда я начал попытки что-то проектировать , ну а я уже не смог бросить то, что начал...
    Последний раз редактировалось SergDoc; 30.04.2013 в 16:12.

  19. #1936

    Регистрация
    22.08.2011
    Адрес
    Калининград
    Возраст
    35
    Сообщений
    945
    Записей в дневнике
    2
    Цитата Сообщение от Stiger Посмотреть сообщение
    Сам сейчас так же с нуля пишу систему стабилизации на AVR (не подсматривая в готовые),

    А вот это зря, на текущий момент на решение задачи стабилизации потрачено тысячи человеко часов и по крайней мере стоит для эрудиции хотя бы ознакомится с трудами коллег по цеху. И кстати львиная доля этих трудозатрат связанна со слабой призводительностью AVR. Но в том что ARM является избыточным/overkill для задачи стабилизации тут Вы правы, но избыток ресурсов "сегодня", это временное явление, а нехватка ресурсв AVR это уже случиось "вчера".




    Тут случайно наткнулся на магнитометр HMC5983 беглое ознакомление с даташитом показало что тоже самое что HMC5883 только есть SPI, температурная компенсация и частота измерений 220 герц. Кто что думает?

  20. #1937

    Регистрация
    16.12.2005
    Адрес
    Москва
    Возраст
    34
    Сообщений
    4,452
    Записей в дневнике
    13
    Цитата Сообщение от Razek Посмотреть сообщение
    частота измерений 220 герц

    Где б его недорого распаянным найти? А то мне на монокоптере не хватило быстродействия 5883 в 100Гц

  21. #1938

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от Razek Посмотреть сообщение
    только есть SPI
    вот это уже интересней хотя если из 5883 mpu будет брать данные, то как-то не актуально лишний датчик на шине (лишняя лапа СS лишнее дёрганье шины)...

  22. #1939

    Регистрация
    22.08.2011
    Адрес
    Калининград
    Возраст
    35
    Сообщений
    945
    Записей в дневнике
    2
    Цитата Сообщение от leprud Посмотреть сообщение
    Где б его недорого распаянным найти?
    Я заказал на пробу этот http://www.ebay.com/itm/310633426065...ht_2259wt_1098

  23. #1940

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от Razek Посмотреть сообщение
    Я заказал на пробу
    Блин, опять растраты

  24. #1941

    Регистрация
    16.12.2005
    Адрес
    Москва
    Возраст
    34
    Сообщений
    4,452
    Записей в дневнике
    13
    Цитата Сообщение от Razek Посмотреть сообщение
    Я заказал на пробу этот

    От спасибо!
    блин, тока-тока пару дней назад у этого же продавца покупал %)

  25. #1942

    Регистрация
    22.08.2011
    Адрес
    Калининград
    Возраст
    35
    Сообщений
    945
    Записей в дневнике
    2
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Блин, опять растраты

    И конца им что-то не видно

  26. #1943
    DVE
    DVE вне форума

    Регистрация
    16.06.2008
    Адрес
    EU
    Возраст
    37
    Сообщений
    4,386
    Цитата Сообщение от Stiger Посмотреть сообщение
    Как ни ломал голову себе, задач под ARM не нашел. Вот и интересно Ваши мотивы. Если это не тайна конечно.
    Ну не знаю, для меня ARM - это просто удобно. Ткнули в коде точку останова, IDE остановилась в нужном месте, все переменные можно посмотреть. А с той же ардуиной это без пляски с бубном фиг выйдет.
    Или мегабайт флэш памяти например, легко берем цветной логотип для вывода на ЖК-экран и кладем в проект, не задумываясь хватит места или нет. Учитывая что процы стоят одинаково, чего экономить.

    Что касается Атмеги, то например для Multiwii пока хватает, а вот Ардукоптер уже достиг предела возможностей, уперлись в ограничения вроде по памяти что ли.

  27. #1944

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от Razek Посмотреть сообщение
    И конца им что-то не видно
    Блин щя накоплю на дорогущие аналоговые датчики, и сделаю отдельно плату проца и плату IMU через SPI АЦП (ADC - по русски )...

    Цитата Сообщение от DVE Посмотреть сообщение
    Что касается Атмеги, то например для Multiwii пока хватает, а вот Ардукоптер уже достиг предела возможностей, уперлись в ограничения вроде по памяти что ли.
    Как писал выше где-то mahowik -напихали фич, что в проц не влазит, а нормально так и не одна не работает - вот где раздолье программерам, а мы чё только сколхозить на другое железо? - да там же, как в том анекдоте - ну и сволочть председатель, поедь отдохи, а тут же работы непочатый край

  28. #1945

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от Stiger Посмотреть сообщение
    Как ни ломал голову себе, задач под ARM не нашел.
    Ну это просто, сделайте простую стабилизацию без извратов на плавающей точке на АВРе с акселем и компасом, потом расскажите сколько ещё ресурсов осталось

    Сосбно вот:
    Цитата Сообщение от SergDoc Посмотреть сообщение
    "Жирная периферия", "Жирная математика - FPU", частота, внутрисхемная отладка, дешевле проц (с тойже жирностью ), ну и т.д.
    , хочется чтоб всё красиво было.


    Цитата Сообщение от Razek Посмотреть сообщение
    Тут случайно наткнулся на магнитометр HMC5983 беглое ознакомление с даташитом показало что тоже самое что HMC5883 только есть SPI, температурная компенсация и частота измерений 220 герц. Кто что думает?
    СПИ это хорошо, не хочу и2ц по религиозным соображениям, хотя успешно пользую

    Цитата Сообщение от leprud Посмотреть сообщение
    А то мне на монокоптере не хватило быстродействия 5883 в 100Гц
    странно, а гиру пользовать не модно?

    Цитата Сообщение от SergDoc Посмотреть сообщение
    Блин щя накоплю на дорогущие аналоговые датчики, и сделаю отдельно плату проца и плату IMU через SPI АЦП
    Сергей, набор можешь огласить?

  29. #1946

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

  30. #1947

    Регистрация
    16.12.2005
    Адрес
    Москва
    Возраст
    34
    Сообщений
    4,452
    Записей в дневнике
    13
    Цитата Сообщение от rual Посмотреть сообщение
    странно, а гиру пользовать не модно?
    не совсем видимо корректно выразился.. Не "один мотор - 4 сервы", а "один мотор - одна серва, с вращающимся мозгом"
    Вот что имел в виду


    Подобная проблема с определением ориентации есть и у аппаратов на эффекте Коанда - слишком быстро вращаемся

  31. #1948

    Регистрация
    26.04.2013
    Адрес
    Санкт-Петербург
    Возраст
    42
    Сообщений
    19
    Ок. Спасибо за ответы.
    кстати, vis.asta, я так понял, что тоже AVR использует, только с нуля написанную, несколькими людьми. У него на скриншотах - просто вытащенная телеметрия, явно дистанционная.
    ........
    Я пока на фильтрах вибрации застрял. В статике - всё ОК. и картинки и углы, но как включаю двигатели с винтами, так ужас. Не то, что бы ужас-ужас, но надо ещё до ума доводить. А времени не хватает.

  32. #1949
    DVE
    DVE вне форума

    Регистрация
    16.06.2008
    Адрес
    EU
    Возраст
    37
    Сообщений
    4,386
    Цитата Сообщение от SergDoc Посмотреть сообщение
    Как писал выше где-то mahowik -напихали фич, что в проц не влазит, а нормально так и не одна не работает - вот где раздолье программерам
    Ага, чтобы у всех так не работало





    Для старенькой Атмеги имхо просто отличные результаты Цена платы-то 80$ всего.

  33. #1950

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от Stiger Посмотреть сообщение
    кстати, vis.asta, я так понял, что тоже AVR использует,
    нет 32f4...

  34. #1951

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

  35. #1952

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    тут вся периферия F1 и F4 , у меня так сказать найдите 10 отличий, но блин этот код работает(проверял), а мой нет, что за беда не знаю, ибо затыкается не только уарт затыкается и i2c- просто перестаёт считывать данные с датчиков, да и с гиры тоже (с акселя данные есть всегда), попробовать что-ли туда прикрутить SPI и посмотреть что будет, правда с наскоку чёт не удалось собрать проект, но я особо не упирался не смотрел....

  36. #1953

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от SergDoc Посмотреть сообщение
    тут вся периферия F1 и F4
    под эклипсом собрал, изначально он под Atollic, попробую адаптировать под своё железо посмотрю что будет, а то запёрся совсем....

  37. #1954

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    воевал с версией 2_2 симптомы теже плюс cycleTime взбесился, что-то с математикой не то ибо если отключаю fpu Uart даже не пытается запустится - странно, наверно я где-то проект неправильно настраиваю. В проекте что лежит в git мелкоплата отрабатывает за 2600 новая за 730, а на "чистом" вие (без Калмана ) новая завелась на 3500

  38. #1955

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

  39. #1956

    Регистрация
    19.04.2010
    Адрес
    Ханты
    Возраст
    40
    Сообщений
    1,471
    Цитата Сообщение от SergDoc Посмотреть сообщение
    запустил эту же версию на мелкоплате - цикл тотже 3500 странно
    У Ф4 частота выше настолько же, на сколько он быстрее. Если формирование millis() и micros() не испарвлено , то твои миллисекунды будут быстрее на соотношение частот процев

  40. #1957

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    Цитата Сообщение от rual Посмотреть сообщение
    Если формирование millis() и micros() не испарвлено
    Исправлено и в отладчике смотрел - всё правильно, боюсь что-то или в прерываниях или в настройке самого проекта намудрил....

  41. #1958

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    А теперь на пальцах, для особоодарённых - тоесть меня
    Код:
    // cycles per microsecond
    static volatile uint32_t usTicks = 0;
    // current uptime for 1kHz systick timer. will rollover after 49 days. hopefully we won't care.
    static volatile uint32_t sysTickUptime = 0;
    
    static void cycleCounterInit(void)
    {
        RCC_ClocksTypeDef clocks;
        RCC_GetClocksFreq(&clocks);
        usTicks = clocks.SYSCLK_Frequency / 1000000; // ну тут, если не путаю, 8 - на обеих платах одинаково - от кварца в 8мГц отталкиваемся?
    }
    
    // SysTick
    void SysTick_Handler(void)  // откуда вызывается прерывание? незнаю :(
    {
        sysTickUptime++; // а один ли кГц? 
    }
    
    // Return system uptime in microseconds (rollover in 70minutes)
    uint32_t micros(void)
    {
        register uint32_t ms, cycle_cnt;
        do {
            ms = sysTickUptime;  
            cycle_cnt = SysTick->VAL;
        } while (ms != sysTickUptime);
        return (ms * 1000) + (168000 - cycle_cnt) / 168; // тот же кГц умноженый на 1000 вернули с поправкой на что? тактовую проца?
    }
    
    // Return system uptime in milliseconds (rollover in 49 days)
    uint32_t millis(void)
    {
        return sysTickUptime; // ну и вернули тот-же кГц ?
    }

  42. #1959

    Регистрация
    06.04.2012
    Адрес
    Moscow
    Возраст
    34
    Сообщений
    202
    [QUOTE=SergDoc;4177128]А теперь на пальцах, для особоодарённых - тоесть меня
    Сергей, вы столько уже провели времени в компиляторах, что давно бы уже разобрались с устройством и выбрали одну среду, а адаптировали под нее только чистую логику из других проектов. Вместо этого вы тратите многие часы борясь с чужими глюками
    clocks.SYSCLK_Frequency - это точно частота кварца, а не системной шины? Вообще частота кварца программно вроде недоступна. Только после прескалеров.

  43. #1960

    Регистрация
    01.11.2010
    Адрес
    Belarus Slonim
    Возраст
    36
    Сообщений
    4,459
    Записей в дневнике
    8
    вроде как-то так:
    RCC_Clocks->SYSCLK_Frequency = HSE_VALUE; // HSE_VALUE=8000000

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

Похожие темы

  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

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

Ваши права

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