?? main.asm
字號:
//=====================================================================
// The information contained herein is the exclusive property of
// Sunnnorth Technology Co. And shall not be distributed, reproduced,
// or disclosed in whole in part without prior written permission.
// (C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO.
// ALL RIGHTS RESERVED
// The entire notice above must be reproduced on all authorized copies.
//======================================================================
//======================================================================
// 工程名稱: ex19_asm_MIC
// 功能描述: 《實驗儀實驗指導書》基礎應用實驗
// 一路輸入的錄音
// 通過音頻通道輸入,同時通過DAC1、DAC2輸出
// 采樣率為8KHz
// IDE環境: SUNPLUS u'nSPTM IDE 2.0.0(or later)
// 涉及的庫: CMacro1016.lib
// 組成文件: main.asm
// 硬件連接: DAC輸出選擇跳線的"DAC1"與"音頻"連接,"DAC2"與"音頻"連接
// 維護記錄: 2005-09-12 v1.0
//
//======================================================================
//======================================================================
// 文件名稱: main.asm
// 功能描述: 通過音頻通道輸入,同時通過DAC1、DAC2輸出
// 采樣率為8KHz
// 維護記錄: 2005-09-12 v1.0
//======================================================================
.DEFINE P_TimerA_Data 0x700A
.DEFINE P_TimerA_Ctrl 0x700B
.DEFINE P_ADC 0x7014
.DEFINE P_ADC_Ctrl 0x7015
.DEFINE P_DAC2 0x7016
.DEFINE P_DAC1 0x7017
.DEFINE P_DAC_Ctrl 0x702A
.DEFINE P_INT_Ctrl 0x7010
.DEFINE P_INT_Clear 0x7011
.DEFINE P_Watchdog_Clear 0x7012
.DEFINE C_Fosc_2 0x0000
.DEFINE C_B1 0x0030
.DEFINE C_TIMERA_8KHZ (0xffff-0x600)
.RAM
.CODE
//==========================================================================
// 匯編格式: _main
// C格式: int main(void);
// 實現功能: 通過音頻通道輸入,同時通過DAC1、DAC2輸出
// 采樣率為8KHz
// 入口參數: 無
// 出口參數: 無
// 破壞寄存器:r1,r2
//==========================================================================
.PUBLIC _main
_main:
int off
r1 = C_Fosc_2 | C_B1
[P_TimerA_Ctrl] = r1
r1 = C_TIMERA_8KHZ //設置定時器計數初值
[P_TimerA_Data] = r1
r1 = 0x0005 //使能自動增益AGC、MIC、ADC
[P_ADC_Ctrl] = r1
r1 = 0x00a8 //通過定時器A的溢出鎖存數據,ADC為自動方式
[P_DAC_Ctrl] = r1
r1 = 0x1000
[P_INT_Ctrl] = r1 //允許IRQ1中斷
int irq //開IRQ總中斷,關FIQ中斷
?Loop:
r1 = 0x0001
[P_Watchdog_Clear] = r1 //清看門狗
jmp ?Loop
.TEXT
.PUBLIC _IRQ1
_IRQ1:
push r1,r5 to [sp]
r1 = [P_ADC] //取MIC輸入并轉換后數據
[P_DAC1] = r1 //把輸入數據送到DAC1和DAC2輸出播放
[P_DAC2] = r1
r1 = 0x0001
[P_Watchdog_Clear] = r1 //清看門狗
r1 = 0x1000
[P_INT_Clear] = r1 //清IRQ1中斷標志
pop r1,r5 from [sp]
reti
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -