Il y avait des problèmes dans la libraire...

Dependencies:   ST_FREQUENCY_DIVIDER ST_I2S USBDEVICE

Fork of X_NUCLEO_CCA02M1 by ST

Committer:
davide.aliprandi@st.com
Date:
Wed May 03 18:10:29 2017 +0200
Revision:
16:4ab2eac7be21
Parent:
15:17bdadc6aa9c
Child:
20:9952bef19da1
Improving performances with LUT; keeping only default configuration with SincN = 3.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davide.aliprandi@st.com 2:9f389fd8fb2e 1 /**
davide.aliprandi@st.com 2:9f389fd8fb2e 2 ******************************************************************************
davide.aliprandi@st.com 2:9f389fd8fb2e 3 * @file OpenPDMFilter.h
davide.aliprandi@st.com 2:9f389fd8fb2e 4 * @author CL
davide.aliprandi@st.com 2:9f389fd8fb2e 5 * @version V1.0.0
davide.aliprandi@st.com 2:9f389fd8fb2e 6 * @date 9-September-2015
davide.aliprandi@st.com 2:9f389fd8fb2e 7 * @brief Header file for Open PDM audio software decoding Library.
davide.aliprandi@st.com 2:9f389fd8fb2e 8 * This Library is used to decode and reconstruct the audio signal
davide.aliprandi@st.com 2:9f389fd8fb2e 9 * produced by ST MEMS microphone (MP45Dxxx, MP34Dxxx).
davide.aliprandi@st.com 2:9f389fd8fb2e 10 ******************************************************************************
davide.aliprandi@st.com 2:9f389fd8fb2e 11 * @attention
davide.aliprandi@st.com 2:9f389fd8fb2e 12 *
davide.aliprandi@st.com 2:9f389fd8fb2e 13 * <h2><center>&copy; COPYRIGHT 2013 STMicroelectronics</center></h2>
davide.aliprandi@st.com 2:9f389fd8fb2e 14 *
davide.aliprandi@st.com 2:9f389fd8fb2e 15 * Licensed under MCD-ST Image SW License Agreement V2, (the "License");
davide.aliprandi@st.com 2:9f389fd8fb2e 16 * You may not use this file except in compliance with the License.
davide.aliprandi@st.com 2:9f389fd8fb2e 17 * You may obtain a copy of the License at:
davide.aliprandi@st.com 2:9f389fd8fb2e 18 *
davide.aliprandi@st.com 2:9f389fd8fb2e 19 * http://www.st.com/software_license_agreement_image_v2
davide.aliprandi@st.com 2:9f389fd8fb2e 20 *
davide.aliprandi@st.com 2:9f389fd8fb2e 21 * Unless required by applicable law or agreed to in writing, software
davide.aliprandi@st.com 2:9f389fd8fb2e 22 * distributed under the License is distributed on an "AS IS" BASIS,
davide.aliprandi@st.com 2:9f389fd8fb2e 23 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
davide.aliprandi@st.com 2:9f389fd8fb2e 24 * See the License for the specific language governing permissions and
davide.aliprandi@st.com 2:9f389fd8fb2e 25 * limitations under the License.
davide.aliprandi@st.com 2:9f389fd8fb2e 26 *
davide.aliprandi@st.com 2:9f389fd8fb2e 27 ******************************************************************************
davide.aliprandi@st.com 2:9f389fd8fb2e 28 */
davide.aliprandi@st.com 2:9f389fd8fb2e 29
davide.aliprandi@st.com 2:9f389fd8fb2e 30 /* Define to prevent recursive inclusion -------------------------------------*/
davide.aliprandi@st.com 2:9f389fd8fb2e 31
davide.aliprandi@st.com 2:9f389fd8fb2e 32 #ifndef __OPENPDMFILTER_H
davide.aliprandi@st.com 2:9f389fd8fb2e 33 #define __OPENPDMFILTER_H
davide.aliprandi@st.com 2:9f389fd8fb2e 34
davide.aliprandi@st.com 2:9f389fd8fb2e 35 #ifdef __cplusplus
davide.aliprandi@st.com 2:9f389fd8fb2e 36 extern "C" {
davide.aliprandi@st.com 2:9f389fd8fb2e 37 #endif
davide.aliprandi@st.com 2:9f389fd8fb2e 38
davide.aliprandi@st.com 2:9f389fd8fb2e 39
davide.aliprandi@st.com 2:9f389fd8fb2e 40 /* Includes ------------------------------------------------------------------*/
davide.aliprandi@st.com 2:9f389fd8fb2e 41
davide.aliprandi@st.com 2:9f389fd8fb2e 42 #include <stdint.h>
davide.aliprandi@st.com 2:9f389fd8fb2e 43
davide.aliprandi@st.com 2:9f389fd8fb2e 44
davide.aliprandi@st.com 2:9f389fd8fb2e 45 /* Definitions ---------------------------------------------------------------*/
davide.aliprandi@st.com 2:9f389fd8fb2e 46
davide.aliprandi@st.com 2:9f389fd8fb2e 47 #define HTONS(A) ((((uint16_t)(A) & 0xff00) >> 8) | \
davide.aliprandi@st.com 2:9f389fd8fb2e 48 (((uint16_t)(A) & 0x00ff) << 8))
davide.aliprandi@st.com 2:9f389fd8fb2e 49
davide.aliprandi@st.com 2:9f389fd8fb2e 50
davide.aliprandi@st.com 16:4ab2eac7be21 51 /*
davide.aliprandi@st.com 16:4ab2eac7be21 52 * Enable to use a Look-Up Table to improve performances while using more FLASH
davide.aliprandi@st.com 16:4ab2eac7be21 53 * and RAM memory.
davide.aliprandi@st.com 16:4ab2eac7be21 54 */
davide.aliprandi@st.com 15:17bdadc6aa9c 55 #define USE_LUT
davide.aliprandi@st.com 15:17bdadc6aa9c 56
davide.aliprandi@st.com 15:17bdadc6aa9c 57
davide.aliprandi@st.com 2:9f389fd8fb2e 58 /* Types ---------------------------------------------------------------------*/
davide.aliprandi@st.com 2:9f389fd8fb2e 59
davide.aliprandi@st.com 2:9f389fd8fb2e 60 typedef struct {
davide.aliprandi@st.com 2:9f389fd8fb2e 61 /* Public */
davide.aliprandi@st.com 2:9f389fd8fb2e 62 uint16_t Fs;
davide.aliprandi@st.com 2:9f389fd8fb2e 63 float LP_HZ;
davide.aliprandi@st.com 2:9f389fd8fb2e 64 float HP_HZ;
davide.aliprandi@st.com 2:9f389fd8fb2e 65 uint16_t In_MicChannels;
davide.aliprandi@st.com 2:9f389fd8fb2e 66 uint16_t Out_MicChannels;
davide.aliprandi@st.com 2:9f389fd8fb2e 67 /* Private */
davide.aliprandi@st.com 2:9f389fd8fb2e 68 uint32_t Coef[5];
davide.aliprandi@st.com 2:9f389fd8fb2e 69 uint16_t FilterLen;
davide.aliprandi@st.com 2:9f389fd8fb2e 70 int64_t OldOut, OldIn, OldZ;
davide.aliprandi@st.com 2:9f389fd8fb2e 71 uint16_t LP_ALFA;
davide.aliprandi@st.com 2:9f389fd8fb2e 72 uint16_t HP_ALFA;
davide.aliprandi@st.com 2:9f389fd8fb2e 73 uint16_t bit[5];
davide.aliprandi@st.com 2:9f389fd8fb2e 74 uint16_t byte;
davide.aliprandi@st.com 2:9f389fd8fb2e 75 } TPDMFilter_InitStruct;
davide.aliprandi@st.com 2:9f389fd8fb2e 76
davide.aliprandi@st.com 2:9f389fd8fb2e 77
davide.aliprandi@st.com 2:9f389fd8fb2e 78 /* Exported functions ------------------------------------------------------- */
davide.aliprandi@st.com 2:9f389fd8fb2e 79
davide.aliprandi@st.com 2:9f389fd8fb2e 80 void Open_PDM_Filter_Init(TPDMFilter_InitStruct *init_struct);
davide.aliprandi@st.com 2:9f389fd8fb2e 81 void Open_PDM_Filter(uint8_t* data, uint16_t* data_out, uint16_t mic_gain, TPDMFilter_InitStruct *init_struct);
davide.aliprandi@st.com 2:9f389fd8fb2e 82
davide.aliprandi@st.com 2:9f389fd8fb2e 83 #ifdef __cplusplus
davide.aliprandi@st.com 2:9f389fd8fb2e 84 }
davide.aliprandi@st.com 2:9f389fd8fb2e 85 #endif
davide.aliprandi@st.com 2:9f389fd8fb2e 86
davide.aliprandi@st.com 2:9f389fd8fb2e 87 #endif // __OPENPDMFILTER_H
davide.aliprandi@st.com 2:9f389fd8fb2e 88
davide.aliprandi@st.com 2:9f389fd8fb2e 89 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/