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:
Tue May 02 18:06:58 2017 +0200
Revision:
15:17bdadc6aa9c
Parent:
2:9f389fd8fb2e
Child:
16:4ab2eac7be21
Improve performance with a LUT (now supports stereo@32KHz).

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 15:17bdadc6aa9c 51 /* Look-Up Table to improve performance while using more FLASH and RAM memory. */
davide.aliprandi@st.com 15:17bdadc6aa9c 52 #define USE_LUT
davide.aliprandi@st.com 15:17bdadc6aa9c 53
davide.aliprandi@st.com 15:17bdadc6aa9c 54
davide.aliprandi@st.com 2:9f389fd8fb2e 55 /* Types ---------------------------------------------------------------------*/
davide.aliprandi@st.com 2:9f389fd8fb2e 56
davide.aliprandi@st.com 2:9f389fd8fb2e 57 typedef struct {
davide.aliprandi@st.com 2:9f389fd8fb2e 58 /* Public */
davide.aliprandi@st.com 2:9f389fd8fb2e 59 uint16_t Fs;
davide.aliprandi@st.com 2:9f389fd8fb2e 60 float LP_HZ;
davide.aliprandi@st.com 2:9f389fd8fb2e 61 float HP_HZ;
davide.aliprandi@st.com 2:9f389fd8fb2e 62 uint16_t In_MicChannels;
davide.aliprandi@st.com 2:9f389fd8fb2e 63 uint16_t Out_MicChannels;
davide.aliprandi@st.com 2:9f389fd8fb2e 64 uint16_t Decimation;
davide.aliprandi@st.com 2:9f389fd8fb2e 65 uint16_t SincN;
davide.aliprandi@st.com 2:9f389fd8fb2e 66 /* Private */
davide.aliprandi@st.com 2:9f389fd8fb2e 67 uint32_t Coef[5];
davide.aliprandi@st.com 2:9f389fd8fb2e 68 uint16_t FilterLen;
davide.aliprandi@st.com 2:9f389fd8fb2e 69 int64_t OldOut, OldIn, OldZ;
davide.aliprandi@st.com 2:9f389fd8fb2e 70 uint16_t LP_ALFA;
davide.aliprandi@st.com 2:9f389fd8fb2e 71 uint16_t HP_ALFA;
davide.aliprandi@st.com 2:9f389fd8fb2e 72 uint16_t bit[5];
davide.aliprandi@st.com 2:9f389fd8fb2e 73 uint16_t byte;
davide.aliprandi@st.com 2:9f389fd8fb2e 74 } TPDMFilter_InitStruct;
davide.aliprandi@st.com 2:9f389fd8fb2e 75
davide.aliprandi@st.com 2:9f389fd8fb2e 76
davide.aliprandi@st.com 2:9f389fd8fb2e 77 /* Exported functions ------------------------------------------------------- */
davide.aliprandi@st.com 2:9f389fd8fb2e 78
davide.aliprandi@st.com 2:9f389fd8fb2e 79 void Open_PDM_Filter_Init(TPDMFilter_InitStruct *init_struct);
davide.aliprandi@st.com 2:9f389fd8fb2e 80 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 81
davide.aliprandi@st.com 2:9f389fd8fb2e 82 #ifdef __cplusplus
davide.aliprandi@st.com 2:9f389fd8fb2e 83 }
davide.aliprandi@st.com 2:9f389fd8fb2e 84 #endif
davide.aliprandi@st.com 2:9f389fd8fb2e 85
davide.aliprandi@st.com 2:9f389fd8fb2e 86 #endif // __OPENPDMFILTER_H
davide.aliprandi@st.com 2:9f389fd8fb2e 87
davide.aliprandi@st.com 2:9f389fd8fb2e 88 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/