📄 mainsrc.lst
字号:
345
346 0122 _ROW_MAX_1:
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Mon Aug 2 11:21:40 2004
Copyright (c) 1987-1999 Texas Instruments Incorporated
mainsrc.asm PAGE 9
347 0122 8b99 MAR *- , AR1
348 0123 8b9a MAR *- , AR2
349 0124 7b99 BANZ _ROW_MAX , *- , AR1
0125 011b'
350
351 0126 ba20 SUB #20H
352 0127 e344 BCND NO_DTMF_SEND , LT
0128 01d6'
353
354
355 0129 GET_COL_MAX:
356 ;取出COL最大的INDEX放到DEC_COL_INDEX中
357 ;***********************************************
358 0129 8b89 MAR * , AR1
359 012a bf80 LACC #3H , 0
012b 0003
360 012c 902b SACL DEC_COL_INDEX
361 012d b202 LAR AR2 , #2H
362 012e bf09 LAR AR1 , #(GOERTZEL_EN+0EH) ;
012f 030e
363
364 0130 1090 LACC *- , 0
365 0131 8b99 MAR *- , AR1
366 0132 902d SACL DEC_COL_MAX_EN ;保存第一个数据到VAR_MAIN_TEMP_1
367
368 0133 _COL_MAX:
369 0133 102d LACC DEC_COL_MAX_EN ;
370 0134 3080 SUB * , 0
371 0135 e38c BCND _COL_MAX_1 , GEQ
0136 013a'
372
373 0137 822b SAR AR2 , DEC_COL_INDEX
374 0138 1080 LACC * , 0
375 0139 902d SACL DEC_COL_MAX_EN
376
377 013a _COL_MAX_1:
378 013a 8b99 MAR *- , AR1
379 013b 8b9a MAR *- , AR2
380 013c 7b99 BANZ _COL_MAX , *- , AR1
013d 0133'
381
382 013e ba20 SUB #20H
383 013f e344 BCND NO_DTMF_SEND , LT
0140 01d6'
384
385 ;相对峰值检测
386 ;if MAX*#2ABH-EN*800H <0则退出,不进行检测
387 ;******************************************************************
388 0141 RELPEAK_CHECK:
389 ;AR3:循环因子,作为比较能量值个数为4
390 ;AR1:能量值存放地址
391 ;AR2:为与差值大于数量参数,等于1,除了本身以外,不能比自己大
392 0141 b303 LAR AR3 , #3H
393 0142 bf09 LAR AR1 , #(GOERTZEL_EN+07H)
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Mon Aug 2 11:21:40 2004
Copyright (c) 1987-1999 Texas Instruments Incorporated
mainsrc.asm PAGE 10
0143 0307
394 0144 b201 LAR AR2 , #1H
395
396 0145 732c LT DEC_ROW_MAX_EN ;DEC_ROW_MAX_EN*#2ABH
397 0146 c2ab MPY #2ABH
398 0147 ROW_RELPEAK_CHECK:
399 0147 8b99 MAR *- , AR1 ;EN * 800H
400 0148 1b9b LACC *- ,11 , AR3
401 0149 be05 SPAC
402 014a e344 BCND ROW_RELPEAK_CHECK_0 , LT
014b 014e'
403
404 014c 8b8a MAR * , AR2
405 014d 8b9b MAR *- , AR3
406 014e ROW_RELPEAK_CHECK_0:
407 014e 7b99 BANZ ROW_RELPEAK_CHECK , *- , AR1
014f 0147'
408
409 ;如果两个数据以上的超过最大值,则不正确,有一个超过,是因为自身的数据没有设为0
410 0150 8b8a MAR * , AR2
411 0151 7b89 BANZ NO_DTMF_SEND ,* ,AR1
0152 01d6'
412
413 ;检测列
414 0153 b303 LAR AR3 , #3H
415 0154 bf09 LAR AR1 , #(GOERTZEL_EN+0FH)
0155 030f
416 0156 b201 LAR AR2 , #1H
417
418 0157 732d LT DEC_COL_MAX_EN ;DEC_COL_MAX_EN*#2ABH
419 0158 c2ab MPY #2ABH
420 0159 COL_RELPEAK_CHECK:
421 0159 8b99 MAR *- , AR1 ;其他能量值*
422 015a 1b9b LACC *- ,11 , AR3
423 015b be05 SPAC
424 015c e344 BCND COL_RELPEAK_CHECK_0 , LT
015d 0160'
425
426 015e 8b8a MAR * , AR2
427 015f 8b9b MAR *- , AR3
428 0160 COL_RELPEAK_CHECK_0:
429 0160 7b99 BANZ COL_RELPEAK_CHECK , *- , AR1
0161 0159'
430
431 ;如果两个数据以上的超过最大值,则不正确,有一个超过,是因为自身的数据没有设为0
432 0162 8b8a MAR * , AR2
433 0163 7b89 BANZ NO_DTMF_SEND ,* ,AR1
0164 01d6'
434
435
436 ;第一个音频的二次滤波
437 ;*****************************************************************
438 0165 GOERTZEL_2:
439 0165 8b8b MAR * , AR3
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Mon Aug 2 11:21:40 2004
Copyright (c) 1987-1999 Texas Instruments Incorporated
mainsrc.asm PAGE 11
440
441 0166 bf80 LACC #COSF_PARA+8H , 0
0167 0108
442 0168 202a ADD DEC_ROW_INDEX
443 0169 9045 SACL MAIN_TEMP_0
444 016a 0345 LAR AR3 , MAIN_TEMP_0
445 016b b765 LAR AR7 , #(VAL_SLOTBUF_LONG-1)
446 016c bf09 LAR AR1 , #(GOERTZEL_EN+13H)
016d 0313
447 016e 023e LAR AR2 , GOERTZEL_DEC_DATA_PTR
448
449 016f 738a LT * , AR2
450 0170 1075 LACC DIV_VALUE_VAR
451 0171 e308 BCND GOERTZEL_2_ROW_ADD1 , NEQ
0172 0181'
452
453 0173 GOERTZEL_2_ROW_ADD:
454 0173 1aa9 LACC *+ , VAL_VALUE_DIV , AR1
455 0174 6590 SUB *- , 16
456 0175 5480 MPY *
457 0176 728b LTD * , AR3
458 0177 7089 LTA * , AR1
459 0178 be04 APAC
460 0179 be04 APAC
461 017a 98af SACH *+ , 0 , AR7
462 017b e322 BCND GOERTZEL_2_ROW_COMPUTE_EN , OV ;如果溢出则开始计算能量值
017c 018d'
463 017d 7b9a BANZ GOERTZEL_2_ROW_ADD , *- , AR2
017e 0173'
464 017f 7980 B GOERTZEL_2_ROW_COMPUTE_EN
0180 018d'
465
466 0181 GOERTZEL_2_ROW_ADD1:
467 0181 1ca9 LACC *+ , VAL_VALUE_DIV1 , AR1
468 0182 6590 SUB *- , 16
469 0183 5480 MPY *
470 0184 728b LTD * , AR3
471 0185 7089 LTA * , AR1
472 0186 be04 APAC
473 0187 be04 APAC
474 0188 98af SACH *+ , 0 , AR7
475 0189 e322 BCND GOERTZEL_2_ROW_COMPUTE_EN , OV ;如果溢出则开始计算能量值
018a 018d'
476 018b 7b9a BANZ GOERTZEL_2_ROW_ADD1 , *- , AR2
018c 0181'
477
478 018d GOERTZEL_2_ROW_COMPUTE_EN:
479 018d 0245 LAR AR2 , MAIN_TEMP_0
480 018e bf09 LAR AR1 , #(GOERTZEL_EN+13H)
018f 0313
481
482 0190 7a8a CALL FUN_GOERTZEL_EN , * , AR2
0191 02b6'
483
TMS320C1x/C2x/C2xx/C5x COFF Assembler Version 7.00 Mon Aug 2 11:21:40 2004
Copyright (c) 1987-1999 Texas Instruments Incorporated
mainsrc.asm PAGE 12
484 0192 732c LT DEC_ROW_MAX_EN
485 0193 cc00 MPY #0C00H
486 ;MPY #0600H
487 0194 be05 SPAC
488 0195 be05 SPAC
489 0196 e38c BCND CHANGE_DECT_SEC , GEQ
0197 01cf'
490
491 ;第二个音频的二次滤波
492 ;**********************************************************
493 0198 8b8b MAR * , AR3
494 0199 bf80 LACC #COSF_PARA+0CH , 0
019a 010c
495 019b 202b ADD DEC_COL_INDEX
496 019c 9045 SACL MAIN_TEMP_0
497 019d 0345 LAR AR3 , MAIN_TEMP_0
498 019e b765 LAR AR7 , #(VAL_SLOTBUF_LONG-1)
499 019f bf09 LAR AR1 , #(GOERTZEL_EN+11H)
01a0 0311
500 01a1 023e LAR AR2 , GOERTZEL_DEC_DATA_PTR
501
502 01a2 738a LT * , AR2
503
504 01a3 1075 LACC DIV_VALUE_VAR
505 01a4 e308 BCND GOERTZEL_2_COL_ADD1 , NEQ
01a5 01b4'
506
507 01a6 GOERTZEL_2_COL_ADD:
508 01a6 1aa9 LACC *+ , VAL_VALUE_DIV , AR1
509 01a7 6590 SUB *- , 16
510 01a8 5480 MPY *
511 01a9 728b LTD * , AR3
512 01aa 7089 LTA * , AR1
513 01ab be04 APAC
514 01ac be04 APAC
515 01ad 98af SACH *+ , 0 , AR7
516 01ae e322 BCND GOERTZEL_2_COL_COMPUTE_EN , OV ;如果溢出则开始计算能量值
01af 01c0'
517 01b0 7b9a BANZ GOERTZEL_2_COL_ADD , *- , AR2
01b1 01a6'
518
519 01b2 7980 B GOERTZEL_2_COL_COMPUTE_EN
01b3 01c0'
520
521 01b4 GOERTZEL_2_COL_ADD1:
522 01b4 1ca9 LACC *+ , VAL_VALUE_DIV1 , AR1
523
524 01b5 6590 SUB *- , 16
525 01b6 5480 MPY *
526 01b7 728b LTD * , AR3
527 01b8 7089 LTA * , AR1
528 01b9 be04 APAC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -