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

Razek
SergDoc:

Я на пробу нижнюю плату на

А у них же вроде 100 штук минимум заказ?

oleg70

Во первых всем спасибо за ссылки и поддержку.!
Смотрю примеры кода в инете в основном на F10x, вижу например следующую строку заполнения структуры:
RCC->APB2ENR|=RCC_APB2ENR_IOPCEN;
начинаю искать в хедерах на F303 сие “RCC_APB2ENR_IOPCEN” – НЕТУ !
Это чеж, на каждую линейку Cortex свою отдельную библиотеку изучать надо?
Где ж тогда “переносимость” кода и прочие удобства от CMSIS ?
Знатоки объясните…

DVE

Ну нафиг всю эту прямую работу с регистрами.

Пишется что-то типа

GPIO_SetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3);

И просто, и красиво, и переносимо.

rual
oleg70:

Смотрю примеры кода в инете в основном на F10x, вижу например следующую строку заполнения структуры: RCC->APB2ENR|=RCC_APB2ENR_IOPCEN; начинаю искать в хедерах на F303 сие “RCC_APB2ENR_IOPCEN” – НЕТУ ! Это чеж, на каждую линейку Cortex свою отдельную библиотеку изучать надо?

Для начала предлагаю пользоваться библиотеками, да и последующих проектах не вижу смысла от них отказываться. Перифирия у каждого семейства имеет особенности, Ф3 особо отличается от предшествинников - у него структура шин другая. Перифирию и библиотеки придётся изучать снова, благо там отличия не большие, но код нужно переписывать. Демо-проекты Вам в помощь.

oleg70:

Где ж тогда “переносимость” кода и прочие удобства от CMSIS ?

Это совместимость на уровне ядра, к перифириии отношения не имеет.

oleg70

Вас понял, спасибо…
Вообще конечно (мое мнение) создатели библиотек хотели показать как они классно владеют Си (а они так и владеют:)) , буквально на все “изжоги” пошли, а меня такая структуризация пока только с толку сбивает где? что?..
Да и сам проект по количеству подключаемых файлов становится не маленький.

rual
oleg70:

такая структуризация пока только с толку сбивает где? что?..

А должна помогать 😃 Каждый файл библиотеки относиться к определённому устройству.

oleg70:

Да и сам проект по количеству подключаемых файлов становится не маленький.

При выработанной привычке это не страшно, попробуйте сделать проект сложнее мигалки из одного файла (это вполне возможно) - при попытке что-то дописать огребёте счастья по полной…

SergDoc

Вернусь к нашим баранам: мелкоплате и ЛСМ, почему сейчас в вие не читают регистр статуса, раньше вроде было, может мне его читать и на основе данных решать переписывать значения по осям или нет?
ну вот что-нибудь такое?

static void LSM330ACCRead(int16_t *accelData)
{
    uint8_t buf[7];
    uint8_t status;

    i2cRead(LSM330ACC_ADDRESS, LSM330_STATUS_REG +0x80, 7, buf);
    status= buf[0]
if status>0 {
    accelData[0] = ((buf[2] << 8) | buf[1]);
    accelData[1] = ((buf[4] << 8) | buf[3]);
    accelData[2] = ((buf[6] << 8) | buf[5]);
    }

}

не, думаю лучше задействовать fifo и лапу прерывания…

DVE
oleg70:

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

Чем и хорош Coocox - выбираем в визарде нужные компоненты (например timer или gpio), он сам скопирует в проект требуемые файлы.

rual

Запрос по и2ц готовности выглядит некрасиво, т.к. тратит время шины, а вот обработка по готовности это правильное направление мысли. Можно задействовать вывод готовности акселя и опрашивать его программно, это много времени не займет. Либо считывание и расчет положения по акселю в прерывании, у меня так…

SergDoc:

не, думаю лучше задействовать fifo

Насчёт фифы не уверен, ибо отложенная обработка старых значений акселя не будет соответствовать актуальному положению как физическому, так вычисленному по ДУСам.

SergDoc

Просто плюнуть и оставить недоделанной плату как-то нехорошо, хотя давно не тестировал в полёте, только на столе, может уже и можно летать с акселем, показания вроде неплохие…

По большой

03/02/2013 In production D73414_Multirotor is coming back from production workshop.

😃

SergDoc

Прикольно goodluckbuy.com/mpu6050-6000-module-3-axis-gyro-ac…

сегодня провоевал с IDE vrobotix так и родной скетч мультиплота не скомпилировал 😦
vgt6 так и не привезли, ну и ладно vet6 есть, на первое время хватит…

SergDoc

Замучился я с eclipse как-нибудь можно перенести проект под coocox?

DVE

Как правильно не знаю, обычно самое простое - это создать новый проект, дальше перенести файлы копипастом. Это куда легче чем поштучно настройки переносить…

RaJa
SergDoc:

Замучился я с eclipse как-нибудь можно перенести проект под coocox?

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

SergDoc

Вроде разобрался с Эклипс, по крайней мере проект Acopter32 под F4 собрался 😃
теперь буду подсовывать ACopter32 rev 2.9.1rc1, ну а ежели всё нормально пойдёт, то адаптировать под свю плату, главно чтобы влезло в 256к флеши, т.к. проект под vgt6 а не под vet6 как пишут…

Уряя заработало!!! rev 2.9.1rc1 скомпилировалась!!!

402888 5849 6350 415087 6556f (TOTALS)

Final Size:
text data bss dec hex filename
350408 7296 9312 367016 599a8 build/laserlab_MP32V1F4.elf

**** Build Finished ****

правда почему-то пришлось собирать IDE из двух одну, ну а потом патчи переписывать, ну да ладно буду усиленно изучать что получилось, а то ведь не ровен час платки приедут 😃

правда проц всёже менять надо 😦

oleg70

Друзья! подскажите мне на пальцах: что из файлов (*.h и *.c) мне нужно иметь для проекта (не важно Coocox или Iar) чтобы просто настроить мой F303 без периферии а только скажем тактовый генератор, и скомпилить…
Перечитал кучу примеров и обзоров, ну ни как не пойму - одни подключают “всю кучу из CMSIS и SPL” , другие как то вообще одним Includ-ом F10x.h обходятся… Т.о. даже начать не могу…
Фирменные файлы на линейку есть, внутри - темный лес, сплошная “рыба”, один хедер инклюдит другой, запутался я …
Не откажите в ликбезе! просто минимальный набор!
(как же было просто с avr один хедер на чип)

rual

Олег, может на кейл перейдете и возьмете мой проект с этой ветки. странцу не скажу, где то сразу после нового года.