Ярлыки

_GetPixelIndex (1) _SetPixelIndex (1) 3-phase (1) 800x480 (1) АЦП (1) генератор (1) синхронный усилитель (2) структура (1) учебный курс (1) шаговый двигатель (1) ШИМ (2) accert (1) AD7608 (1) AD8429 (1) ADC (5) amplifer (1) arccos (1) arcsin (1) arctang (2) arctg (3) ARM (2) arm_sqrt_q15 (2) assembler (6) ASSERT (1) atan (2) bit (1) Bitband (1) boot (3) bootlloader (1) BUTTON (1) C (5) C# (1) CAN (2) CC2530 (5) CMSIS (4) command (1) Cordic (1) Core746I (1) CubeMX (4) DBGMCU (2) debug (2) debug.ini (1) delegate (1) Digital Potentiometers (1) DigitalPOT (1) Discovery (1) DMA (9) DMA2D (1) DSP (1) DSP library (1) DWT (1) EFM32 (5) EmWin (9) EXTI (1) FATFS (1) FMC (2) FreeRTOS (2) gl868-dual cmux (1) GPIO (4) GUI (2) GUIBuilder (1) GUIDRV_CompactColor_16 (1) HAL (3) HappyGecko (1) Hard Fault (2) heap (1) I2C (1) ID (1) ILI9320 (1) ILI9325 (1) Initialisation (1) InitLTDC (1) Instrumentithion (1) Interrupt (4) ITR (1) JTAG (1) Keil (5) LCDConf (2) lock-in (1) LTCD (1) LTDC (3) main (1) memory (1) MINI_STM32 Revision 01 (1) nBoot0 (1) NVIC (1) OnePulse (2) OSAL (4) pack (1) phase (1) printf (3) Pulse (1) PWM (12) RCC (2) RCR (1) Register (1) RESET (2) RS232 (3) RSS (1) RTC (3) RTOS-RTX (1) RTT (1) RTX-RTOS (1) SDCard (1) SDRAM (6) Segger (2) SPI (3) sqrt (3) SSD1298 (1) SSD1963 (1) Standart Peripherial Library (3) STANDBAY (1) startup (1) STemWin (8) stepper motor (1) STlink (2) STM32 (17) STM32429ZI (1) STM32Cube (1) STM32DBG.IN (1) STM32F (28) STM32F0 (4) STM32F1 (13) STM32F4 (10) STM32F4 Discovery (1) STM32F407ZG (1) STM32F429 (2) STM32F746 (1) STOP (1) string (1) struct (1) SWD (1) SWD JTAG (1) Synhronization (1) system_stm32f4xx.c (1) SystemInit (1) SysTick (1) task (4) telit (1) TIM (27) typedef (1) UART (1) USART (9) viewer (2) WM_PAINT (1) Z-stack (5) ZigBee (5)
Показаны сообщения с ярлыком CMSIS. Показать все сообщения
Показаны сообщения с ярлыком CMSIS. Показать все сообщения

среда, 4 февраля 2015 г.

CMSIS DSP Library: arm_sqrt_q15

Определение функции:

arm_status arm_sqrt_q15(q15_t in, q15_t * pOut)

q15 - формат с фиксированной точкой  1.15 в котором 0 представлен как 0х0000, а 1 представлена как 0х7FFF. Это значит, что например 1/2 будет представлена в формате 0х4000, а 1/4 как 0х2000. Функция возвращает статус  ARM_MATH_SUCCESS или ARM_MATH_ARGUMENT_ERROR. Результат функция возвращает по ссылке pOut. Результат представлен также в формате q15. Например

arm_sqrt_q15(0x1000,&out);

0х1000 является представлением в формате q15 числа 1/8 или 0.125. Корень квадратный sqrt(0.125)=0.3536. Функция дает результат 0х2D42 = 11586/2^15 = 0,3536. Время выполнения функции для 32F103 @72MHz  - 244 такта  (3,39 mks).

Аналогичным образом используется и более точная функция:

arm_sqrt_q31(q31_t in, q31_t * pOut);

Ее время выполнения функции для 32F103 @72MHz  - 286 тактов  (3,97 mks).

Для плавающей точки:

arm_sqrt_f32(float32_t in, float32_t * pOut);

Время выполнения функции для 32F103 @72MHz  - 544 такта  (7,56 mks).

Указанное время выполнения функций были определены для версии V1.4.4 библиотеки CMSIS DSP (Date: 12. March 2014), которая идентична предыдущим версиям V1.4.3, V1.4.2, и V1.4.1.

Для справки: при использовании стандартной библиотеки Си math.h для различных типов переменных получим примерно такие (в зависимости от аргумента) времена выполнения функций в тактах

float         sqrtf(float)     ~ 575
double      sqrt(double)  ~ 2640


воскресенье, 21 декабря 2014 г.

ARM CMSIS DSP Library example (пример)

Определение функции arm_sqrt_q15

arm_status arm_sqrt_q15(q15_t in, q15_t * pOut)

“in” вводится в формате q15. В этом формате 0 соответствует 0×0000, а 1 - 0x7FFF. А зачению 1/2 соответствует 0×4000. Функция возвращает ARM_MATH_SUCCESS или ARM_MATH_ARGUMENT_ERROR. Ссылка на результат вычисления корня - pOut. Результат также выдается в формате 1.15 или q15. Пример:

arm_sqrt_q15(0x4000, &jj);

1/2 записано как 0×4000. sqrt(1/2) примерно 0.707. Функция возвращает 0x5A82 = 23170 / 2^15 = 0.707.

http://en.wikipedia.org/wiki/Q_(number_format)

вторник, 22 апреля 2014 г.

CMSIS ::Device:Startup

In actual file names, <device> is the name of the microcontroller device.

startup_<device>.s   file with reset handler and exception vectors

system_<device>.c   configuration file for basic device setup (clock and memory BUS)

<device>.h                include file for user code access to the microcontroller device.

The <device>.h header file is included in C source files and defines:

 Peripheral Access with standardized register layout.
 Access to Interrupts and Exceptions and the Nested Interrupt Vector Controller (NVIC).
 Intrinsic Functions to generate special instructions, for example to activate sleep mode.
 Systick Timer (SYSTICK) functions to configure and start a periodic timer interrupt.
 Debug Access for printf-style I/O and ITM communication via on-chip CoreSight.

mdk5-getting-started