?? main.lis
字號:
.module main.c
.area data(ram, con, rel)
0000 _receive_addr::
0000 .blkb 2
.area idata
0000 5631 .byte 'V,49
.area data(ram, con, rel)
0002 .blkb 2
.area idata
0002 5631 .byte 'V,49
.area data(ram, con, rel)
0004 .dbfile E:\心電監(jiān)護(hù)系統(tǒng)\測試程序\第一階段\無線測試\發(fā)送端\main.c
0004 .dbsym e receive_addr _receive_addr A[4:4]c
0004 _send_addr::
0004 .blkb 2
.area idata
0004 1365 .byte 19,'e
.area data(ram, con, rel)
0006 .dbfile E:\心電監(jiān)護(hù)系統(tǒng)\測試程序\第一階段\無線測試\發(fā)送端\main.c
0006 .blkb 2
.area idata
0006 1365 .byte 19,'e
.area data(ram, con, rel)
0008 .dbfile E:\心電監(jiān)護(hù)系統(tǒng)\測試程序\第一階段\無線測試\發(fā)送端\main.c
0008 .dbsym e send_addr _send_addr A[4:4]c
0008 _w_ptr::
0008 .blkw 1
.area idata
0008 2A00 .word _ECG_data
.area data(ram, con, rel)
000A .dbfile E:\心電監(jiān)護(hù)系統(tǒng)\測試程序\第一階段\無線測試\發(fā)送端\main.c
000A .dbsym e w_ptr _w_ptr pc
000A _r_ptr::
000A .blkw 1
.area idata
000A 2A00 .word _ECG_data
.area data(ram, con, rel)
000C .dbfile E:\心電監(jiān)護(hù)系統(tǒng)\測試程序\第一階段\無線測試\發(fā)送端\main.c
000C .dbsym e r_ptr _r_ptr pc
000C _second::
000C .blkb 1
.area idata
000C 80 .byte 128
.area data(ram, con, rel)
000D .dbfile E:\心電監(jiān)護(hù)系統(tǒng)\測試程序\第一階段\無線測試\發(fā)送端\main.c
000D .dbsym e second _second c
000D _led_flag::
000D .blkb 1
.area idata
000D 00 .byte 0
.area data(ram, con, rel)
000E .dbfile E:\心電監(jiān)護(hù)系統(tǒng)\測試程序\第一階段\無線測試\發(fā)送端\main.c
000E .dbsym e led_flag _led_flag c
.area vector(rom, abs)
.org 24
0018 0C940000 jmp _Int_DR
.area data(ram, con, rel)
000E .dbfile E:\心電監(jiān)護(hù)系統(tǒng)\測試程序\第一階段\無線測試\發(fā)送端\main.c
.area text(rom, con, rel)
0000 .dbfile E:\心電監(jiān)護(hù)系統(tǒng)\測試程序\第一階段\無線測試\發(fā)送端\main.c
0000 .dbfunc e Int_DR _Int_DR fV
.even
0000 _Int_DR::
0000 0E940000 xcall push_lset
0004 .dbline -1
0004 .dbline 39
0004 ; /*
0004 ; *2008,浙江工業(yè)大學(xué)信息與控制研究所
0004 ; *All rights reserved
0004 ; *
0004 ; *文件名稱:ECG_NRF905.C
0004 ; *摘 要:主函數(shù),實現(xiàn)心電數(shù)據(jù)的采集,發(fā)送
0004 ; *
0004 ; *當(dāng)前版本:1.0
0004 ; *作 者:董齊芬
0004 ; *完成日期:2008.5.17
0004 ; *
0004 ; *取代版本:
0004 ; *原 作 者:
0004 ; *完成日期:
0004 ; */
0004 ;
0004 ; //#include "time.h"
0004 ; //#include "mcp42010.h"
0004 ; //#include "adc.h"
0004 ; #include "nrf.h"
0004 ; #include "common.h"
0004 ; #include "spi.h"
0004 ; #include "int.h"
0004 ;
0004 ; unsigned char receive_addr[4]={0x56,0x31,0x56,0x31}; //4字節(jié)的接收地址a513d36a
0004 ; unsigned char send_addr[4]={0x13,0x65,0x13,0x65}; //4字節(jié)的發(fā)送地址
0004 ; unsigned char ECG_data[ECG_LENGTH]; //存放心電數(shù)據(jù)1024個
0004 ; unsigned char *w_ptr=ECG_data; //將采集到的數(shù)據(jù)存放到存儲區(qū)的地址指針
0004 ; unsigned char *r_ptr=ECG_data; //無線發(fā)送時數(shù)據(jù)存儲區(qū)的地址指針
0004 ; unsigned char nrf_data[PACKAGE_LENGTH]; //正要發(fā)送的無線數(shù)據(jù)包 0x5f+心電數(shù)據(jù)+序列號
0004 ; unsigned char receive_data[PACKAGE_LENGTH]; //接收到的無線數(shù)據(jù)包 0x5f+心電數(shù)據(jù)+序列號
0004 ; unsigned char second=0x80; //秒的次序,8秒一次循環(huán)
0004 ; unsigned char led_flag=0;
0004 ;
0004 ; void mcu_init(void); //聲明處理器初始化函數(shù)
0004 ;
0004 ; #pragma interrupt_handler Int_DR: 7
0004 ; void Int_DR(void) //外部中斷INT5,中斷向量號為7,接收數(shù)無線據(jù)
0004 ; {
0004 .dbline 40
0004 ; LED_YELLOW;
0004 D89A sbi 0x1b,0
0006 .dbline 40
0006 D998 cbi 0x1b,1
0008 .dbline 40
0008 .dbline 41
0008 ; RxPacket(receive_data);
0008 00E0 ldi R16,<_receive_data
000A 10E0 ldi R17,>_receive_data
000C 0E940000 xcall _RxPacket
0010 .dbline -2
0010 L1:
0010 0E940000 xcall pop_lset
0014 .dbline 0 ; func end
0014 1895 reti
0016 .dbend
0016 .dbfunc e main _main fV
0016 ; j -> <dead>
0016 ; s -> R20
0016 ; i -> R22
.even
0016 _main::
0016 .dbline -1
0016 .dbline 53
0016 ; //////////////////////還應(yīng)改變一下緩沖區(qū)的指針(接收多個包時)
0016 ;
0016 ; }
0016 ;
0016 ; /*
0016 ; *函數(shù)功能:主函數(shù)
0016 ; *輸入?yún)?shù):無
0016 ; *輸出參數(shù):無
0016 ; *返 回 值:無
0016 ; */
0016 ; void main(void)
0016 ; {
0016 .dbline 55
0016 ; unsigned char i,j,s;
0016 ; s=0;
0016 4427 clr R20
0018 .dbline 57
0018 ;
0018 ; CLI(); //disable all interrupts
0018 F894 cli
001A .dbline 58
001A ; mcu_init(); //處理器各模塊初始化
001A 3DD0 xcall _mcu_init
001C .dbline 60
001C ;
001C ; for (i=0;i<PACKAGE_LENGTH-1;i++)
001C 6627 clr R22
001E 08C0 xjmp L6
0020 L3:
0020 .dbline 61
0020 .dbline 62
0020 80E0 ldi R24,<_nrf_data
0022 90E0 ldi R25,>_nrf_data
0024 E62F mov R30,R22
0026 FF27 clr R31
0028 E80F add R30,R24
002A F91F adc R31,R25
002C 6083 std z+0,R22
002E .dbline 63
002E L4:
002E .dbline 60
002E 6395 inc R22
0030 L6:
0030 .dbline 60
0030 6431 cpi R22,20
0032 B0F3 brlo L3
0034 2EC0 xjmp L8
0036 L7:
0036 .dbline 66
0036 ; {
0036 ; nrf_data[i]=i; //測試數(shù)據(jù),每個數(shù)據(jù)包的前PACKAGE_LENGTH-1個數(shù)據(jù)都一致,最后一個字節(jié)為數(shù)據(jù)包的序列號
0036 ; }
0036 ;
0036 ; while (1)
0036 ; {
0036 .dbline 68
0036 ;
0036 ; nrf_data[PACKAGE_LENGTH-1]=s; //代表數(shù)據(jù)包的序列號
0036 40932900 sts _nrf_data+20,R20
003A .dbline 69
003A ; set_Tmode(); //把905設(shè)置成發(fā)送模式
003A 0E940000 xcall _set_Tmode
003E .dbline 70
003E ; EIMSK&=~BIT(5); //發(fā)送時將屏蔽外部中斷5
003E 89B7 in R24,0x39
0040 8F7D andi R24,223
0042 89BF out 0x39,R24
0044 .dbline 71
0044 ; LED_RED;
0044 D898 cbi 0x1b,0
0046 .dbline 71
0046 D99A sbi 0x1b,1
0048 .dbline 71
0048 .dbline 72
0048 ; set_Taddr(send_addr);
0048 00E0 ldi R16,<_send_addr
004A 10E0 ldi R17,>_send_addr
004C 0E940000 xcall _set_Taddr
0050 .dbline 73
0050 ; TxPacket(nrf_data);
0050 00E0 ldi R16,<_nrf_data
0052 10E0 ldi R17,>_nrf_data
0054 0E940000 xcall _TxPacket
0058 .dbline 75
0058 ;
0058 ; if (led_flag)
0058 20900D00 lds R2,_led_flag
005C 2220 tst R2
005E 31F0 breq L11
0060 .dbline 76
0060 ; {
0060 .dbline 77
0060 ; LED_RED;
0060 D898 cbi 0x1b,0
0062 .dbline 77
0062 D99A sbi 0x1b,1
0064 .dbline 77
0064 .dbline 78
0064 ; led_flag=0;
0064 2224 clr R2
0066 20920D00 sts _led_flag,R2
006A .dbline 79
006A ; }
006A 05C0 xjmp L12
006C L11:
006C .dbline 81
006C ; else
006C ; {
006C .dbline 82
006C ; LED_YELLOW;
006C D89A sbi 0x1b,0
006E .dbline 82
006E D998 cbi 0x1b,1
0070 .dbline 82
0070 .dbline 83
0070 ; led_flag=1;
0070 81E0 ldi R24,1
0072 80930D00 sts _led_flag,R24
0076 .dbline 84
0076 ; }
0076 L12:
0076 .dbline 86
0076 ;
0076 ; EIFR|=0XFF; //清除外部中斷的標(biāo)志位
0076 88B7 in R24,0x38
0078 8F6F ori R24,255
007A 88BF out 0x38,R24
007C .dbline 87
007C ; set_Rmode(); //nRF設(shè)置成接收模式 必須有下一句的開啟外部中斷5和上一句的清除外部中斷的標(biāo)志位
007C 0E940000 xcall _set_Rmode
0080 .dbline 88
0080 ; EIMSK|=BIT(5); //開啟外部中斷5,以監(jiān)測是無線模塊是否收到數(shù)據(jù)
0080 89B7 in R24,0x39
0082 8062 ori R24,32
0084 89BF out 0x39,R24
0086 .dbline 90
0086 ;
0086 ; Delays(); //延時一段時間繼續(xù)發(fā)送
0086 0E940000 xcall _Delays
008A .dbline 91
008A ; s++;
008A 4395 inc R20
008C .dbline 92
008C ; if (s==250)
008C 4A3F cpi R20,250
008E 09F4 brne L13
0090 .dbline 93
0090 ; {
0090 .dbline 94
0090 ; s=0;
0090 4427 clr R20
0092 .dbline 95
0092 ; }
0092 L13:
0092 .dbline 96
0092 L8:
0092 .dbline 65
0092 D1CF xjmp L7
0094 X0:
0094 .dbline -2
0094 L2:
0094 .dbline 0 ; func end
0094 0895 ret
0096 .dbsym l j 1 c
0096 .dbsym r s 20 c
0096 .dbsym r i 22 c
0096 .dbend
0096 .dbfunc e mcu_init _mcu_init fV
.even
0096 _mcu_init::
0096 .dbline -1
0096 .dbline 107
0096 ; }
0096 ; }
0096 ;
0096 ;
0096 ; /*
0096 ; *函數(shù)功能:處理器初始化函數(shù),將要用到的各個模塊的初始化函數(shù)放在一起
0096 ; *輸入?yún)?shù):無
0096 ; *輸出參數(shù):無
0096 ; *返 回 值:無
0096 ; */
0096 ; void mcu_init(void)
0096 ; {
0096 .dbline 108
0096 ; initled(); //led燈初始化
0096 0E940000 xcall _initled
009A .dbline 109
009A ; initbuzzer(); //蜂鳴器初始化
009A 0E940000 xcall _initbuzzer
009E .dbline 110
009E ; init_spi();
009E 0E940000 xcall _init_spi
00A2 .dbline 111
00A2 ; init_905(); //nrf905上電初始化
00A2 0E940000 xcall _init_905
00A6 .dbline 112
00A6 ; set_confword(receive_addr);//設(shè)置905配置寄存器
00A6 00E0 ldi R16,<_receive_addr
00A8 10E0 ldi R17,>_receive_addr
00AA 0E940000 xcall _set_confword
00AE .dbline 113
00AE ; send_conf(); //配置寄存器內(nèi)容
00AE 0E940000 xcall _send_conf
00B2 .dbline 114
00B2 ; init_INT(); //DR引腳中斷初始化
00B2 0E940000 xcall _init_INT
00B6 .dbline -2
00B6 L15:
00B6 .dbline 0 ; func end
00B6 0895 ret
00B8 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\心電監(jiān)護(hù)系統(tǒng)\測試程序\第一階段\無線測試\發(fā)送端\main.c
0000 _receive_data::
0000 .blkb 21
0015 .dbsym e receive_data _receive_data A[21:21]c
0015 _nrf_data::
0015 .blkb 21
002A .dbsym e nrf_data _nrf_data A[21:21]c
002A _ECG_data::
002A .blkb 1024
042A .dbsym e ECG_data _ECG_data A[1024:1024]c
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -