roboforum.ru

Технический форум по робототехнике.
Текущее время: 18 фев 2025, 18:30

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 127 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 9  След.
Автор Сообщение
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 27 ноя 2012, 16:01 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
ваууууууу :friends:
Когда забрать можно? скока денег?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 27 ноя 2012, 16:17 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
забирать-то когда хошь. деньги ща посчитаю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 27 ноя 2012, 23:57 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Все, больше нету плат.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 28 ноя 2012, 03:14 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Ждем новых анонсов :roll: :beer:
Уже подкрутил демку и проверил гир, впечатления положительные, по характеристикам лучше гира в дроне. Пойду флудить в свою тему :P


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 04 дек 2012, 21:07 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Написал asm поигралку для этой STM32F3-Discovery :crazy:
Ваши эти армы - рекламная афера, ппц.

поигралку написал по мотивам SysTick_Example
Размер оригинала:
Код:
  1 746 bytes of readonly  code memory
     90 bytes of readonly  data memory
  1 080 bytes of readwrite data memory

поигралка:
Код:
     832 bytes of readonly  code memory
     40 bytes of readwrite  data memory


Стмовский CMSIS - быдлокод полнейший.
Работа с GPIO:
настройка пина: 376 тактов
установка пина: 16 тактов
инверсия пина:19 тактов
Это avr на 8 мгц. :)

Если управлять GPIO из асм методом "Bit Banding" (CMSIS не имеет этого), то на частоте 72 МГц выполнит их за 80 нс. по нынешним временам - медленно. Простая 10 мипсовая пикина делает это за 100 нс. 40 мипсовая PIC33f за 25 нс.
Неоторым программерам "Bit Banding" вынесет мозг, тогда остается стандартный способ установки бит, а это > 180 нс. :o


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 04 дек 2012, 23:31 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
/* Check the parameters */
assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
assert_param(IS_GPIO_PIN(GPIO_Pin));

GPIOx->BSRRL = GPIO_Pin;
}

????????????????

void GPIO_ToggleBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
/* Check the parameters */
assert_param(IS_GPIO_ALL_PERIPH(GPIOx));

GPIOx->ODR ^= GPIO_Pin;
}

???????????????
???????????????

А еще можно DMA использовать, чтобы ногами дергать.

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 04 дек 2012, 23:32 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
при правильно заданных опциях ассерт превращается в ничто.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 04 дек 2012, 23:44 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
они выкл. по умолчанию.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 04 дек 2012, 23:45 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Ну а так чего? Прямая работа с регистрами, чем тебе цмсис не угодил?

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 04 дек 2012, 23:50 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
а ты сделай и пройдись дебагером :)
Самый быстрый "Bit Banding" это три 16-битных инструкции, примерно 6 тактов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 04 дек 2012, 23:51 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Я не умею
Почему вот это "плохой" битбанг: GPIOx->BSRRL = GPIO_Pin; ???

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 05 дек 2012, 00:06 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
dccharacter писал(а):
Почему вот это "плохой" битбанг: GPIOx->BSRRL = GPIO_Pin; ???

это компилится в:
Код:
    0x80002bc: 0x490c         LDR.N     R1, ??DataTable13       ; GPIO_PORT
    0x80002be: 0xf20f 0x0234  ADR.W     R2, GPIO_PIN            ; 0x1000200 (16777728)
    0x80002c2: 0xf851 0x1020  LDR.W     R1, [R1, R0, LSL #2]
    0x80002c6: 0xf832 0x0010  LDRH.W    R0, [R2, R0, LSL #1]
    0x80002ca: 0x6188         STR       R0, [R1, #0x18]

;In section .text, align 4, keep-with-next
;??DataTable13:
0x........         DC32     GPIO_PORT

Т.е чтоб установить пин, надо потратить 20 байт и 8 тактов :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 05 дек 2012, 00:26 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
а если оптимизацию включить?
Кста, я не совсем прав - cmsis это не только стартовалка. В то же время - рассматриваемый код - это все-таки Std Periph Lib.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 05 дек 2012, 00:28 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
опс, это с указателем на светодиод.
Если просто установить бит, то:
Код:
  GPIOB->BSRR |= 0x00000001;
    0x80001e6: 0x4828         LDR.N     R0, ??DataTable3_3      ; GPIOB_BSRR.BR0
    0x80001e8: 0x6801         LDR       R1, [R0]
    0x80001ea: 0xf041 0x0101  ORR.W     R1, R1, #1
    0x80001ee: 0x6001         STR       R1, [R0]
\??DataTable3_3:
\   00000000   0x48000418         DC32     0x48000418

14 байт, 6 тактов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очередная дискавери. Уже хачу!
СообщениеДобавлено: 05 дек 2012, 00:31 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
А тут (я не понимаю):

GPIO_SetBits:
08000ef4: push {r7}
08000ef6: sub sp, #12
08000ef8: add r7, sp, #0
08000efa: str r0, [r7, #4]
08000efc: mov r3, r1
08000efe: strh r3, [r7, #2]
364 GPIOx->BSRR = GPIO_Pin;
08000f00: ldrh r2, [r7, #2]
08000f02: ldr r3, [r7, #4]
08000f04: str r2, [r3, #16]
365 }
08000f06: add.w r7, r7, #12
08000f0a: mov sp, r7
08000f0c: pop {r7}
08000f0e: bx lr
375 {
GPIO_ResetBits:
08000f10: push {r7}
08000f12: sub sp, #12
08000f14: add r7, sp, #0
08000f16: str r0, [r7, #4]
08000f18: mov r3, r1
08000f1a: strh r3, [r7, #2]
380 GPIOx->BRR =

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 127 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 9  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO