Chương trình bộ lọc FIR

2 9 0
  • Loading ...
1/2 trang

Thông tin tài liệu

Ngày đăng: 01/04/2019, 20:59

;************************************************************************ nolist include 'ioequ.asm' include 'intequ.asm' include 'ada_equ.asm' include 'ada_init.asm' ; XBASE equ $0 ; Hằng địa bắt đầu số liệu nhớ X YBASE equ $0 ; Hằng địa bắt đầu số liệu nhớ Y PBASE equ $100 ; Hằng địa bắt đầu chương trình nhớ P P_RESET equ $0 ; Hằng địa Véc tơ ngắt RESET ORDER equ 101 ; Hằng số bậc N lọc số FIR START_X equ $100 ; Địa đầu mảng số liệu tác động x(n) nhớ Y ; ; ****** ****** org x:XBASE ; Thiết lập địa đầu số liệu nhớ X List dc 0.00049189988593 ; Nhập mảng 101 phần tử giá trị dc 0.00031992920792 ; mẫu h(k) đặc tính xung h(n) (Mảng hệ … … ; số lọc số FIR pha tuyến tính bậc N=101) ; ; ****** ****** org y:YBASE ; Thiết lập địa đầu số liệu nhớ Y ; ****** ****** org p:P_RESET ; Địa véc tơ ngắt RESET jmp MAIN ; Nhẩy đến điểm bắt đầu chương trình ; ****** ****** org p:PBASE ; Điểm bắt đầu chương trình tương ứng ; với địa p:PBASE MAIN ; ****** Khởi tạo hệ thống ****** movep #$040004,x:M_PCTL ; Khởi tạo vòng khóa pha PLL vi xử lý ; DSP563xx : PLL 5*19.6608=98.304MHz ori #3,mr ; Thiết lập bit che ngắt ghi MR movec #0,sp ; Xóa trỏ ngăn xếp move #0,omr ; Thiết lập chế độ làm việc Mode0 move #$40,r7 ; Nạp số $40 cho ghi r7 move #-1,m7 ; Nạp địa -1 cho ghi m7 jsr ada_init ; Gọi chương khởi tạo AUDIO CODEC move #START_X,r4 ; Nạp địa đầu mảng x(n) vào ghi R4 move #64,m4 ; Nạp độ dài mảng x(n) vào ghi M4 clr a ; Xóa chứa A rep m4 ; Quay vòng lặp lệnh 64 lần 101 move a,y:(r4)+ movep x:M_SSISR0,a0 movep a0,x:M_TX00 ; Xóa vùng nhớ 64 từ mảng x(n) nhớ Y ; Đọc ghi trạng thái ESSI0 vào A0 ; nạp vào ghi số liệu phát ; LOOP_0 ; Điểm bắt đầu vòng lặp lọc FIR FRAME brset #3,x:M_SSISR0,FRAME ; Đợi sườn lên xung đồng movep x:M_SSISR0,a0 ; Đọc ghi trạng thái ESSI0 vào A0 movep x:M_RX0,a0 ; Đọc ghi số liệu đến cổng ESSI0 Lap_1 brclr #7,x:M_SSISR0,Lap_1 ; Đợi thiết lập cờ rxdf clr a ; ****** ****** move #start_adress,r6 ; Thuc hien thao tac ghi dịch move #(start_adress-1),r4 #ORDER,end_do move y:(r6)+,a0 move a0,y:(r4)+ end_do ; Kết thúc ghi dịch, nạp mẫu ; ****** ****** clr a movep x:M_SSISR0,a0 movep x:M_RX0,a0 move #(400+ORDER -1),r6 ; 400 + order -1 =499 move a0,y:(r6) ; ****** Vòng lặp tính phần tử phản ứng y(n) gửi vể CS4270 ****** fir clr a move #List,r0 move x:(r0),x0 move y:(r6),y0 rep #order mac x0,y0,a x:(r0)+,x0 y:(r6)-,y0 Lap_2 brclr #6,x:M_SSISR0,Lap_2 ; Đợi thiết lập cờ tdre movep a,x:M_TX00 jmp LOOP_0 ; Nhẩy nhận mảng tác động x(k) tiếp nolist end ;************************************************************************ ... ; Đọc ghi trạng thái ESSI0 vào A0 ; nạp vào ghi số liệu phát ; LOOP_0 ; Điểm bắt đầu vòng lặp lọc FIR FRAME brset #3,x:M_SSISR0,FRAME ; Đợi sườn lên xung đồng movep x:M_SSISR0,a0 ; Đọc ghi trạng... order -1 =499 move a0,y:(r6) ; ****** Vòng lặp tính phần tử phản ứng y(n) gửi vể CS4270 ****** fir clr a move #List,r0 move x:(r0),x0 move y:(r6),y0 rep #order mac x0,y0,a x:(r0)+,x0 y:(r6)-,y0
- Xem thêm -

Xem thêm: Chương trình bộ lọc FIR, Chương trình bộ lọc FIR

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay