Модераторы: Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DSP аудио ЦФ 
:(
    Опции темы
overmet
Дата 6.5.2011, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 15.8.2009
Где: Gomel

Репутация: нет
Всего: -2



Нужны советы с кодом и по усовершенствованию схемы.
user posted image
Код

_CPU_ .set 5                                         ; ID11X
.copy ”STD_DEF.ASM”                      ; стандартная библиотека
 ; MSP430F169 - Digital TAS3001
Stack .EQU 00210h 
I_vectors .EQU 0FFFFh                        ;вектор прерывания
Main .EQU 0F000h 
SCL .EQU 010h 
SDA .EQU 020h 
SCLIN .EQU 020h 
SDAIN .EQU 020h 
SCLDAT .EQU 021h 
SDADAT .EQU 021h 
SCLEN .EQU 022h 
SDAEN .EQU 022h 
SCLFUNC .EQU 026h 
SDAFUNC .EQU 026h 
Tbl_Pntr .EQU R4 
Strng_Pntr .EQU R5 
Mask .EQU R6 
Count1 .set R7 
Count2 .set R8 
Delta .set 150                                        ;SMCLK = 1,228,800 Hz
OSC_OE .set 080h 
RST .set 001h                                       ;использование ”RESET” 
EXP .set 008h 
SW1 .equ 08h 
SW2 .equ 04h 
SW3 .equ 02h
SW4 .equ 01h 
SW5 .equ 02h 
SW6 .equ 04h 
SW1_3IF .equ 023h 
SW4_6IF .equ 02Bh 
SW1_3IE .equ 025h 
SW4_6IE .equ 02Dh 
SW1_3IN .equ 020h 
SW4_6IN .equ 028h 
LED .equ 020h 
LED_OUT .equ 029h                               ; P2OUT
Vol_Pntr .equ R9                                     ;указатель «громкости»
Bass_Pntr .equ R10                                  ;указатель «бассов»
Trbl_Pntr .equ R11 
MUTE .equ R12 
Trbl_Setpnt .equ R13 
Bass_Setpnt .equ R14 
.sect ”MAIN”,Main
RESET MOV #Stack,SP 
CALL #Setup                                          ;вызов устройства
CALL #Set_DCO 
Begin MOV #1669,Tbl_Pntr 
CALL #Loop                                            ;вызов отправки I2C
Finish BIC.b #EXP,&P2OUT
EINT 
LPM BIS #LPM3,SR 
JMP LPM 
Setup MOV #WDTPW+WDTHOLD,&WDTCTL 
MOV #TASSEL1+CLR,&TACTL                      ;счетчик 16-bit
MOV.b #XTOFF+DIVA1+RSEL2+RSEL0,&BCSCTL1 
BIC.b #0FFh,&P1SEL 
BIC.b #0FFh,&P2SEL
BIC.b #0FEh,&P1OUT 
BIS.b #0C1h,&P1DIR 
BIS.b #RST,&P1OUT 
BIS.b #OSC_OE,&P1OUT 
BIC.b #0FFh,&P2OUT 
CALL #DELAY2 
BIC.b #RST,&P1OUT 
CALL #NOP9                                                   
BIS.b #RST,&P1OUT 
BIC.b #SW1+SW2+SW3,&P1DIR 
BIC.b #SW4+SW5+SW6,&P2DIR 
BIS.b #SW1+SW2+SW3,&P1IES 
BIS.b #SW4+SW5+SW6,&P2IES 
BIS.b #SW1+SW2+SW3,&SW1_3IE 
BIS.b #SW4+SW5+SW6,&SW4_6IE 
BIS.b #EXP+LED,&P2DIR 
BIS.b #LED,&LED_OUT 
MOV #180,Vol_Pntr 
MOV #415,Bass_Pntr 
MOV #415,Bass_Setpnt 
MOV #510,Trbl_Pntr 
MOV #510,Trbl_Setpnt 
CLR MUTE ;set mute = 0 = initial state of mute = off
BIC.b #SW1+SW2+SW3,&SW1_3IF 
BIC.b #SW4+SW5+SW6,&SW4_6IF 
RET
DELAY0 push #03000h 
JMP DELAY3
DELAY push #06000h 
JMP DELAY3
DELAY2 push #09000h 
DELAY3 dec 0(SP) 
jnz DELAY3 
incd SP 
RET
Set_DCO
BIS #MC1,&TACTL                                    ;старт timer
CLR Count1 ;clear counter
MOV #CCIS0+CM0+CAP,&CCTL2 
Test_DCO BIT #CCIFG,&CCTL2 
JZ Test_DCO                                               ;флаг не установлен
BIC #CCIFG,&CCTL2                                ;очистка флага прерываний
AdjDCO MOV &CCR2,Count2 
SUB Count1,Count2 
MOV &CCR2,Count1 
CMP #Delta,Count2 
JL IncDCO 
JEQ DoneDCO 
DecDCO DEC.b &DCOCTL 
JMP Test_DCO                                           ;переход к DCO
IncDCO INC.b &DCOCTL                        ;увеличение DCO частоты
JMP Test_DCO 
DoneDCO CLR &CCTL2 
RET 
Loop XOR.b #LED,&LED_OUT 
 Loop2 CMP.b #0,Data(Tbl_Pntr) 
JZ LP_END 
MOV.b Data(Tbl_Pntr),Strng_Pntr 
CALL #I2C                                                   ;вызов I2C
JMP Loop2 
LP_END CALL #DELAY
XOR.b #LED,&LED_OUT 
RET                                                               ;выход
I2C BIS.B #SDA,&SDAEN 
INC Tbl_Pntr 
CALL #NOP9 
I2C_Send MOV.b #80h,Mask 
I2C_Send1 BIT.B Mask,Data(Tbl_Pntr)      ;если bit = 1
JC I2C_Send2 
BIS.B #SCL,&SCLEN 
CALL #NOP9 
BIS.B #SDA,&SDAEN 
BIC.B #SCL,&SCLEN 
DS_busy BIT.b #SCL,&SCLIN 
JNC DS_busy 
JMP I2C_Send3
I2C_Send2 BIS.B #SCL,&SCLEN 
CALL #NOP9 
BIC.B #SDA,&SDAEN 
CALL #NOP9                                        ;задержка
BIC.B #SCL,&SCLEN 
DS_busy2 BIT.b #SCL,&SCLIN 
JNC DS_busy2 
I2C_Send3 CLRC                                  ;очистка бита переноса
RRC.B Mask 
JNCI2C_Send1 
CALL #NOP9 
I2C_Ackn BIS.B #SCL,&SCLEN 
 BIC.B #SDA,&SDAEN 
CALL #NOP8 
BIC.B #SCL,&SCLEN 
Ackn_Test BIT.B #SDA,&SDAIN 
JC Ackn_Test 
BIS.b #SDA,&SDAEN 


PM MAIL WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
overmet
Дата 9.5.2011, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 15.8.2009
Где: Gomel

Репутация: нет
Всего: -2



схему надо сохранить на компьютере, все видно.Должен получиться цифровой аудио фильтр, с цифровыми и аналоговыми входами и выходами, и БИХ фильтрация на DSP. В принципе схема построена по датащиту, все должно работать, как и код. 
PM MAIL WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разное (электроника) | Следующая тема »


 




[ Время генерации скрипта: 0.0500 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.