Il y avait des problèmes dans la libraire...
Dependencies: ST_FREQUENCY_DIVIDER ST_I2S USBDEVICE
Fork of X_NUCLEO_CCA02M1 by
Middlewares/OpenPDM2PCM/OpenPDMFilter.h@16:4ab2eac7be21, 2017-05-03 (annotated)
- 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?
User | Revision | Line number | New 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>© 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****/ |