- /*******************************************************************************
- High Pass Filter coefficients file
- //高通滤波系数文件
- Company:
- Microchip Technology Inc.
- File Name:
- examplehpf.s
- Summary:
- Consists of coefficients used by the filter function
- //包含了滤波函数的系数
- Description:
- This file composes of the high pass filter coefficients that are used
- by the IIRTransposed filter function to filter the incoming analog
- signal. These coefficients reside in the x-memory area.
- //这些系数存在于X-memory存储区域
- *******************************************************************************/
- /*******************************************************************************
- Copyright (c) 2012 released Microchip Technology Inc. All rights reserved.
- Microchip licenses to you the right to use, modify, copy and distribute
- Software only when embedded on a Microchip microcontroller or digital signal
- controller that is integrated into your product or third party product
- (pursuant to the sublicense terms in the accompanying license agreement).
- You should refer to the license agreement accompanying this Software for
- additional information regarding your rights and obligations.
- SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
- EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
- MERCHANTABILITY, TITLE, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE.
- IN NO EVENT SHALL MICROCHIP OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER
- CONTRACT, NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR
- OTHER LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
- INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE OR
- CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT OF
- SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
- (INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
- *******************************************************************************/
- ; *****************************************************************************
- ; *****************************************************************************
- ; Section: Constants
- ; *****************************************************************************
- ; *****************************************************************************
- .equ ExampleHPFNumSections, 5
- ; ..............................................................................
- ;
- ; Allocate and initialize filter coefficients
- ;
- ; These coefficients have been designed for use in the Transpose filter only
- .section .xdata, xmemory, data ;THIS line was modified
- ;to be compatible with C30 v1.3x
- ExampleHPFCoefs:
- .hword 0x2392 ; b( 1,0)/2
- .hword 0xB8FF ; b( 1,1)/2
- .hword 0x3D5F ; a( 1,1)/2
- .hword 0x2392 ; b( 1,2)/2
- .hword 0xEF39 ; a( 1,2)/2
- .hword 0x2FBB ; b( 2,0)/2
- .hword 0xA1F2 ; b( 2,1)/2
- .hword 0x579D ; a( 2,1)/2
- .hword 0x2FBB ; b( 2,2)/2
- .hword 0xDA17 ; a( 2,2)/2
- .hword 0x3818 ; b( 3,0)/2
- .hword 0x9344 ; b( 3,1)/2
- .hword 0x68F9 ; a( 3,1)/2
- .hword 0x3818 ; b( 3,2)/2
- .hword 0xCC0D ; a( 3,2)/2
- .hword 0x3C51 ; b( 4,0)/2
- .hword 0x8C80 ; b( 4,1)/2
- .hword 0x7150 ; a( 4,1)/2
- .hword 0x3C51 ; b( 4,2)/2
- .hword 0xC52E ; a( 4,2)/2
- .hword 0x3E73 ; b( 5,0)/2
- .hword 0x8920 ; b( 5,1)/2
- .hword 0x7583 ; a( 5,1)/2
- .hword 0x3E73 ; b( 5,2)/2
- .hword 0xC175 ; a( 5,2)/2
- ; ..............................................................................
- ; Allocate states buffers in (uninitialized) Y data space
- .section .yconst
- ExampleHPFStates1:
- .space ExampleHPFNumSections*2
- ExampleHPFStates2:
- .space ExampleHPFNumSections*2
- ; ..............................................................................
- ; Allocate and intialize filter structure
- ;配置和初始化,滤波器结构体
- .section .data
- .global _ExampleHPFFilter
- ;这个是对ExampleHPFFilter定义么????否则该变量是在哪里定义的??
- _ExampleHPFFilter:
- .hword ExampleHPFNumSections-1
- .hword ExampleHPFCoefs
- .hword 0xFF00
- .hword ExampleHPFStates1
- .hword ExampleHPFStates2
- .hword 0x0000
- ; ..............................................................................
- ; Sample assembly language calling program
- ; The following declarations can be cut and pasted as needed into a program
- ; .extern _IIRTransposeFilterInit
- ; .extern _BlockIIRTransposeFilter
- ; .extern _ExampleHPFFilter
- ;
- ; .section .bss
- ;
- ; The input and output buffers can be made any desired size
- ; the value 40 is just an example - however, one must ensure
- ; that the output buffer is at least as long as the number of samples
- ; to be filtered (parameter 4)
- ;input: .space 40
- ;output: .space 40
- ; .text
- ;
- ;
- ; This code can be copied and pasted as needed into a program
- ;
- ;
- ; Set up pointers to access input samples, filter taps, delay line and
- ; output samples.
- ; mov #_ExampleHPFFilter, W0 ; Initalize W0 to filter structure
- ; call _IIRTransposeFilterInit ; call this function once
- ;
- ; The next 4 instructions are required prior to each subroutine call
- ; to _BlockIIRTransposeFilter
- ; mov #_ExampleHPFFilter, W0 ; Initalize W0 to filter structure
- ; mov #input, W1 ; Initalize W1 to input buffer
- ; mov #output, W2 ; Initalize W2 to output buffer
- ; mov #20, W3 ; Initialize W3 with number of required output samples
- ; call _BlockIIRTransposeFilter ; call as many times as needed