📄 ltc2449.lis
字号:
.module LTC2449.c
.area text(rom, con, rel)
0000 .dbfile E:\mysoft\DH980\LTC2449.c
0000 .dbfunc e LTC2449_init _LTC2449_init fV
.even
0000 _LTC2449_init::
0000 .dbline -1
0000 .dbline 9
0000 ; #define _LTC2449_C
0000 ; #include <iom169v.h>
0000 ; #include <macros.h>
0000 ; #include <stdio.h>
0000 ; #include "LTC2449.h"
0000 ; #include "main.h"
0000 ;
0000 ; void LTC2449_init()
0000 ; {
0000 .dbline 10
0000 ; SET_CS;
0000 739A sbi 0xe,3
0002 .dbline 11
0002 ; CLR_SCK;
0002 8EB1 in R24,0xe
0004 8F7E andi R24,239
0006 8EB9 out 0xe,R24
0008 .dbline 12
0008 ; CLR_CS;
0008 8EB1 in R24,0xe
000A 877F andi R24,247
000C 8EB9 out 0xe,R24
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbend
0010 .dbfunc e LTC2449_RW _LTC2449_RW fl
0010 ; setup -> R20,R21
0010 ; AD_data -> R22,R23
0010 ; l -> R10
0010 ; chunnel -> R16,R17
.even
0010 _LTC2449_RW::
0010 0E940000 xcall push_gset3
0014 .dbline -1
0014 .dbline 15
0014 ; }
0014 ; unsigned long LTC2449_RW(unsigned int chunnel)
0014 ; {
0014 .dbline 17
0014 ; unsigned char l;
0014 ; unsigned int AD_data=0;
0014 6627 clr R22
0016 7727 clr R23
0018 .dbline 18
0018 ; unsigned int setup=0xa050;
0018 40E5 ldi R20,41040
001A 50EA ldi R21,160
001C .dbline 19
001C ; CLR_CS;
001C 8EB1 in R24,0xe
001E 877F andi R24,247
0020 8EB9 out 0xe,R24
0022 .dbline 20
0022 ; chunnel=chunnel<<8;chunnel&=0b0000011100000000;
0022 102F mov R17,R16
0024 0027 clr R16
0026 .dbline 20
0026 0070 andi R16,0
0028 1770 andi R17,7
002A .dbline 21
002A ; setup|=chunnel;
002A 402B or R20,R16
002C 512B or R21,R17
002E L3:
002E .dbline 23
002E .dbline 23
002E .dbline 23
002E L4:
002E .dbline 22
002E ; while(SDO!=0)
002E 6599 sbic 0xc,5
0030 FECF rjmp L3
0032 .dbline 24
0032 ; {;}
0032 ; for(l=0;l<32;l++)
0032 AA24 clr R10
0034 1EC0 xjmp L9
0036 L6:
0036 .dbline 25
0036 ; {
0036 .dbline 26
0036 ; if(l<13)
0036 8A2D mov R24,R10
0038 8D30 cpi R24,13
003A 48F4 brsh L10
003C .dbline 27
003C ; {
003C .dbline 28
003C ; if((setup&0x8000)!=0)
003C 57FF sbrs R21,7
003E 02C0 rjmp L12
0040 .dbline 29
0040 ; SET_SDI;
0040 769A sbi 0xe,6
0042 03C0 xjmp L13
0044 L12:
0044 .dbline 31
0044 ; else
0044 ; CLR_SDI;
0044 8EB1 in R24,0xe
0046 8F7B andi R24,191
0048 8EB9 out 0xe,R24
004A L13:
004A .dbline 32
004A ; setup=setup<<1;
004A 440F lsl R20
004C 551F rol R21
004E .dbline 33
004E ; }
004E L10:
004E .dbline 34
004E ; SET_SCK;
004E 749A sbi 0xe,4
0050 .dbline 35
0050 ; if(l>2 && l<19)//取最高16位
0050 82E0 ldi R24,2
0052 8A15 cp R24,R10
0054 50F4 brsh L14
0056 8A2D mov R24,R10
0058 8331 cpi R24,19
005A 38F4 brsh L14
005C .dbline 36
005C ; {
005C .dbline 37
005C ; AD_data=AD_data<<1;
005C 660F lsl R22
005E 771F rol R23
0060 .dbline 38
0060 ; if(SDO!=0)
0060 659B sbis 0xc,5
0062 02C0 rjmp L16
0064 .dbline 39
0064 ; AD_data|=0x0001;
0064 6160 ori R22,1
0066 01C0 xjmp L17
0068 L16:
0068 .dbline 41
0068 ; else
0068 ; AD_data&=0xfffe;
0068 6E7F andi R22,254
006A L17:
006A .dbline 42
006A ; }
006A L14:
006A .dbline 43
006A 8EB1 in R24,0xe
006C 8F7E andi R24,239
006E 8EB9 out 0xe,R24
0070 .dbline 44
0070 L7:
0070 .dbline 24
0070 A394 inc R10
0072 L9:
0072 .dbline 24
0072 8A2D mov R24,R10
0074 8032 cpi R24,32
0076 F8F2 brlo L6
0078 .dbline 46
0078 ; CLR_SCK;
0078 ; }
0078 ; //SET_CS;
0078 ; return AD_data;
0078 1B01 movw R2,R22
007A 4424 clr R4
007C 5524 clr R5
007E 8101 movw R16,R2
0080 9201 movw R18,R4
0082 .dbline -2
0082 L2:
0082 0E940000 xcall pop_gset3
0086 .dbline 0 ; func end
0086 0895 ret
0088 .dbsym r setup 20 i
0088 .dbsym r AD_data 22 i
0088 .dbsym r l 10 c
0088 .dbsym r chunnel 16 i
0088 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -