⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ltc2449.lis

📁 LTC2449 AD转换 LTC2449 AD转换 LTC2449 AD转换
💻 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 + -