?? ltc2449.s
字號:
.module LTC2449.c
.area text(rom, con, rel)
.dbfile E:\mysoft\DH980\LTC2449.c
.dbfunc e LTC2449_init _LTC2449_init fV
.even
_LTC2449_init::
.dbline -1
.dbline 9
; #define _LTC2449_C
; #include <iom169v.h>
; #include <macros.h>
; #include <stdio.h>
; #include "LTC2449.h"
; #include "main.h"
;
; void LTC2449_init()
; {
.dbline 10
; SET_CS;
sbi 0xe,3
.dbline 11
; CLR_SCK;
in R24,0xe
andi R24,239
out 0xe,R24
.dbline 12
; CLR_CS;
in R24,0xe
andi R24,247
out 0xe,R24
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbend
.dbfunc e LTC2449_RW _LTC2449_RW fl
; setup -> R20,R21
; AD_data -> R22,R23
; l -> R10
; chunnel -> R16,R17
.even
_LTC2449_RW::
xcall push_gset3
.dbline -1
.dbline 15
; }
; unsigned long LTC2449_RW(unsigned int chunnel)
; {
.dbline 17
; unsigned char l;
; unsigned int AD_data=0;
clr R22
clr R23
.dbline 18
; unsigned int setup=0xa050;
ldi R20,41040
ldi R21,160
.dbline 19
; CLR_CS;
in R24,0xe
andi R24,247
out 0xe,R24
.dbline 20
; chunnel=chunnel<<8;chunnel&=0b0000011100000000;
mov R17,R16
clr R16
.dbline 20
andi R16,0
andi R17,7
.dbline 21
; setup|=chunnel;
or R20,R16
or R21,R17
L3:
.dbline 23
.dbline 23
.dbline 23
L4:
.dbline 22
; while(SDO!=0)
sbic 0xc,5
rjmp L3
.dbline 24
; {;}
; for(l=0;l<32;l++)
clr R10
xjmp L9
L6:
.dbline 25
; {
.dbline 26
; if(l<13)
mov R24,R10
cpi R24,13
brsh L10
.dbline 27
; {
.dbline 28
; if((setup&0x8000)!=0)
sbrs R21,7
rjmp L12
.dbline 29
; SET_SDI;
sbi 0xe,6
xjmp L13
L12:
.dbline 31
; else
; CLR_SDI;
in R24,0xe
andi R24,191
out 0xe,R24
L13:
.dbline 32
; setup=setup<<1;
lsl R20
rol R21
.dbline 33
; }
L10:
.dbline 34
; SET_SCK;
sbi 0xe,4
.dbline 35
; if(l>2 && l<19)//取最高16位
ldi R24,2
cp R24,R10
brsh L14
mov R24,R10
cpi R24,19
brsh L14
.dbline 36
; {
.dbline 37
; AD_data=AD_data<<1;
lsl R22
rol R23
.dbline 38
; if(SDO!=0)
sbis 0xc,5
rjmp L16
.dbline 39
; AD_data|=0x0001;
ori R22,1
xjmp L17
L16:
.dbline 41
; else
; AD_data&=0xfffe;
andi R22,254
L17:
.dbline 42
; }
L14:
.dbline 43
in R24,0xe
andi R24,239
out 0xe,R24
.dbline 44
L7:
.dbline 24
inc R10
L9:
.dbline 24
mov R24,R10
cpi R24,32
brlo L6
.dbline 46
; CLR_SCK;
; }
; //SET_CS;
; return AD_data;
movw R2,R22
clr R4
clr R5
movw R16,R2
movw R18,R4
.dbline -2
L2:
xcall pop_gset3
.dbline 0 ; func end
ret
.dbsym r setup 20 i
.dbsym r AD_data 22 i
.dbsym r l 10 c
.dbsym r chunnel 16 i
.dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -