📄 main.lss
字号:
ad_write(3,0x01);
3d6: 61 e0 ldi r22, 0x01 ; 1
3d8: 83 e0 ldi r24, 0x03 ; 3
3da: 0e df rcall .-484 ; 0x1f8 <ad_write>
ad_write(4,0x00);
3dc: 60 e0 ldi r22, 0x00 ; 0
3de: 84 e0 ldi r24, 0x04 ; 4
3e0: 0b df rcall .-490 ; 0x1f8 <ad_write>
ad_write(5,0x00);
3e2: 60 e0 ldi r22, 0x00 ; 0
3e4: 85 e0 ldi r24, 0x05 ; 5
3e6: 08 df rcall .-496 ; 0x1f8 <ad_write>
ad_write(6,0x00);
3e8: 60 e0 ldi r22, 0x00 ; 0
3ea: 86 e0 ldi r24, 0x06 ; 6
3ec: 05 df rcall .-502 ; 0x1f8 <ad_write>
ad_write(7,0x00);
3ee: 60 e0 ldi r22, 0x00 ; 0
3f0: 87 e0 ldi r24, 0x07 ; 7
3f2: 02 df rcall .-508 ; 0x1f8 <ad_write>
ad_write(8,0xff);
3f4: 6f ef ldi r22, 0xFF ; 255
3f6: 88 e0 ldi r24, 0x08 ; 8
3f8: ff de rcall .-514 ; 0x1f8 <ad_write>
}
3fa: cf 91 pop r28
3fc: df 91 pop r29
3fe: 08 95 ret
00000400 <SPI_MasterInit>:
#include "ADS1156.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~配置SPI~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void SPI_MasterInit(void) //配置SPI为主机
{
400: df 93 push r29
402: cf 93 push r28
404: cd b7 in r28, 0x3d ; 61
406: de b7 in r29, 0x3e ; 62
/* 设置MOSI 和SCK 为输出,其他为输入 */
DDRB|=(1<<PB1)|(1<<PB2)|(1<<PB3)|(1<<PB5);
408: a7 e3 ldi r26, 0x37 ; 55
40a: b0 e0 ldi r27, 0x00 ; 0
40c: e7 e3 ldi r30, 0x37 ; 55
40e: f0 e0 ldi r31, 0x00 ; 0
410: 80 81 ld r24, Z
412: 8e 62 ori r24, 0x2E ; 46
414: 8c 93 st X, r24
DDRB&=~(1<<PB4);
416: a7 e3 ldi r26, 0x37 ; 55
418: b0 e0 ldi r27, 0x00 ; 0
41a: e7 e3 ldi r30, 0x37 ; 55
41c: f0 e0 ldi r31, 0x00 ; 0
41e: 80 81 ld r24, Z
420: 8f 7e andi r24, 0xEF ; 239
422: 8c 93 st X, r24
PORTB|=(1<<PB1)|(1<<PB2)|(1<<PB4); //定义SS的使能端
424: a8 e3 ldi r26, 0x38 ; 56
426: b0 e0 ldi r27, 0x00 ; 0
428: e8 e3 ldi r30, 0x38 ; 56
42a: f0 e0 ldi r31, 0x00 ; 0
42c: 80 81 ld r24, Z
42e: 86 61 ori r24, 0x16 ; 22
430: 8c 93 st X, r24
/* 使能SPI 主机模式,设置时钟速率为fck/16 */
SPCR = 0x52; //7e 高位首发,SPI使能,主机模式,SCK空闲保持为低电平,数据在上升沿采样,速率为1:64(FOSC/128)
432: ed e2 ldi r30, 0x2D ; 45
434: f0 e0 ldi r31, 0x00 ; 0
436: 82 e5 ldi r24, 0x52 ; 82
438: 80 83 st Z, r24
//SPSR = 0x01; //使能倍速1:32
}
43a: cf 91 pop r28
43c: df 91 pop r29
43e: 08 95 ret
00000440 <port>:
//--------------------------------------------------------------------------------------------//
void port (void)
{
440: df 93 push r29
442: cf 93 push r28
444: cd b7 in r28, 0x3d ; 61
446: de b7 in r29, 0x3e ; 62
DDRD|=(1<<PD2); //485 cs
448: a1 e3 ldi r26, 0x31 ; 49
44a: b0 e0 ldi r27, 0x00 ; 0
44c: e1 e3 ldi r30, 0x31 ; 49
44e: f0 e0 ldi r31, 0x00 ; 0
450: 80 81 ld r24, Z
452: 84 60 ori r24, 0x04 ; 4
454: 8c 93 st X, r24
PORTD&=~(1<<PD2);
456: a2 e3 ldi r26, 0x32 ; 50
458: b0 e0 ldi r27, 0x00 ; 0
45a: e2 e3 ldi r30, 0x32 ; 50
45c: f0 e0 ldi r31, 0x00 ; 0
45e: 80 81 ld r24, Z
460: 8b 7f andi r24, 0xFB ; 251
462: 8c 93 st X, r24
DDRB|=(1<<PB0); //power 灯
464: a7 e3 ldi r26, 0x37 ; 55
466: b0 e0 ldi r27, 0x00 ; 0
468: e7 e3 ldi r30, 0x37 ; 55
46a: f0 e0 ldi r31, 0x00 ; 0
46c: 80 81 ld r24, Z
46e: 81 60 ori r24, 0x01 ; 1
470: 8c 93 st X, r24
PORTB&=~(1<<PB0);
472: a8 e3 ldi r26, 0x38 ; 56
474: b0 e0 ldi r27, 0x00 ; 0
476: e8 e3 ldi r30, 0x38 ; 56
478: f0 e0 ldi r31, 0x00 ; 0
47a: 80 81 ld r24, Z
47c: 8e 7f andi r24, 0xFE ; 254
47e: 8c 93 st X, r24
DDRD&=~(1<<PD3); //DRDY
480: a1 e3 ldi r26, 0x31 ; 49
482: b0 e0 ldi r27, 0x00 ; 0
484: e1 e3 ldi r30, 0x31 ; 49
486: f0 e0 ldi r31, 0x00 ; 0
488: 80 81 ld r24, Z
48a: 87 7f andi r24, 0xF7 ; 247
48c: 8c 93 st X, r24
PORTD|=(1<<PD3);
48e: a2 e3 ldi r26, 0x32 ; 50
490: b0 e0 ldi r27, 0x00 ; 0
492: e2 e3 ldi r30, 0x32 ; 50
494: f0 e0 ldi r31, 0x00 ; 0
496: 80 81 ld r24, Z
498: 88 60 ori r24, 0x08 ; 8
49a: 8c 93 st X, r24
DDRD|=(1<<PD4); //START
49c: a1 e3 ldi r26, 0x31 ; 49
49e: b0 e0 ldi r27, 0x00 ; 0
4a0: e1 e3 ldi r30, 0x31 ; 49
4a2: f0 e0 ldi r31, 0x00 ; 0
4a4: 80 81 ld r24, Z
4a6: 80 61 ori r24, 0x10 ; 16
4a8: 8c 93 st X, r24
PORTD|=(1<<PD4);
4aa: a2 e3 ldi r26, 0x32 ; 50
4ac: b0 e0 ldi r27, 0x00 ; 0
4ae: e2 e3 ldi r30, 0x32 ; 50
4b0: f0 e0 ldi r31, 0x00 ; 0
4b2: 80 81 ld r24, Z
4b4: 80 61 ori r24, 0x10 ; 16
4b6: 8c 93 st X, r24
PORTB&=~(1<<PB2); //复位ADS1256
4b8: a8 e3 ldi r26, 0x38 ; 56
4ba: b0 e0 ldi r27, 0x00 ; 0
4bc: e8 e3 ldi r30, 0x38 ; 56
4be: f0 e0 ldi r31, 0x00 ; 0
4c0: 80 81 ld r24, Z
4c2: 8b 7f andi r24, 0xFB ; 251
4c4: 8c 93 st X, r24
PORTB|=1<<PB2;
4c6: a8 e3 ldi r26, 0x38 ; 56
4c8: b0 e0 ldi r27, 0x00 ; 0
4ca: e8 e3 ldi r30, 0x38 ; 56
4cc: f0 e0 ldi r31, 0x00 ; 0
4ce: 80 81 ld r24, Z
4d0: 84 60 ori r24, 0x04 ; 4
4d2: 8c 93 st X, r24
}
4d4: cf 91 pop r28
4d6: df 91 pop r29
4d8: 08 95 ret
000004da <main>:
//--------------------------------------------------------------------------------------------
main(void)
{
4da: df 93 push r29
4dc: cf 93 push r28
4de: cd b7 in r28, 0x3d ; 61
4e0: de b7 in r29, 0x3e ; 62
4e2: c1 54 subi r28, 0x41 ; 65
4e4: d0 40 sbci r29, 0x00 ; 0
4e6: 0f b6 in r0, 0x3f ; 63
4e8: f8 94 cli
4ea: de bf out 0x3e, r29 ; 62
4ec: 0f be out 0x3f, r0 ; 63
4ee: cd bf out 0x3d, r28 ; 61
unsigned long int d=0,p[12],n=0,m=0;
4f0: 1e 86 std Y+14, r1 ; 0x0e
4f2: 1f 86 std Y+15, r1 ; 0x0f
4f4: 18 8a std Y+16, r1 ; 0x10
4f6: 19 8a std Y+17, r1 ; 0x11
4f8: 1a 86 std Y+10, r1 ; 0x0a
4fa: 1b 86 std Y+11, r1 ; 0x0b
4fc: 1c 86 std Y+12, r1 ; 0x0c
4fe: 1d 86 std Y+13, r1 ; 0x0d
500: 1e 82 std Y+6, r1 ; 0x06
502: 1f 82 std Y+7, r1 ; 0x07
504: 18 86 std Y+8, r1 ; 0x08
506: 19 86 std Y+9, r1 ; 0x09
unsigned char aa=0,a=0,b=0,c=0,i=0;
508: 1d 82 std Y+5, r1 ; 0x05
50a: 1c 82 std Y+4, r1 ; 0x04
50c: 1b 82 std Y+3, r1 ; 0x03
50e: 1a 82 std Y+2, r1 ; 0x02
510: 19 82 std Y+1, r1 ; 0x01
port(); //端口初始化
512: 96 df rcall .-212 ; 0x440 <port>
SPI_MasterInit(); //SPI端口初始化
514: 75 df rcall .-278 ; 0x400 <SPI_MasterInit>
USART_Init(1); //串口初始化
516: 81 e0 ldi r24, 0x01 ; 1
518: 90 e0 ldi r25, 0x00 ; 0
51a: a1 dd rcall .-1214 ; 0x5e <USART_Init>
ADS1158(); //初始化ADS1158
51c: 25 df rcall .-438 ; 0x368 <ADS1158>
sei();
51e: 78 94 sei
while(1)
{
aa=sum;
520: 80 91 60 00 lds r24, 0x0060
524: 8d 83 std Y+5, r24 ; 0x05
if(aa==1)
526: 8d 81 ldd r24, Y+5 ; 0x05
528: 81 30 cpi r24, 0x01 ; 1
52a: 39 f5 brne .+78 ; 0x57a <main+0xa0>
{sum=0;
52c: 10 92 60 00 sts 0x0060, r1
d=ad_read();
530: 84 de rcall .-760 ; 0x23a <ad_read>
532: dc 01 movw r26, r24
534: cb 01 movw r24, r22
536: 8e 87 std Y+14, r24 ; 0x0e
538: 9f 87 std Y+15, r25 ; 0x0f
53a: a8 8b std Y+16, r26 ; 0x10
53c: b9 8b std Y+17, r27 ; 0x11
a=d%256;
53e: 8e 85 ldd r24, Y+14 ; 0x0e
540: 8c 83 std Y+4, r24 ; 0x04
d=d>>8;
542: 8e 85 ldd r24, Y+14 ; 0x0e
544: 9f 85 ldd r25, Y+15 ; 0x0f
546: a8 89 ldd r26, Y+16 ; 0x10
548: b9 89 ldd r27, Y+17 ; 0x11
54a: 89 2f mov r24, r25
54c: 9a 2f mov r25, r26
54e: ab 2f mov r26, r27
550: bb 27 eor r27, r27
552: 8e 87 std Y+14, r24 ; 0x0e
554: 9f 87 std Y+15, r25 ; 0x0f
556: a8 8b std Y+16, r26 ; 0x10
558: b9 8b std Y+17, r27 ; 0x11
b=d%256;
55a: 8e 85 ldd r24, Y+14 ; 0x0e
55c: 8b 83 std Y+3, r24 ; 0x03
d=d>>8;
55e: 8e 85 ldd r24, Y+14 ; 0x0e
560: 9f 85 ldd r25, Y+15 ; 0x0f
562: a8 89 ldd r26, Y+16 ; 0x10
564: b9 89 ldd r27, Y+17 ; 0x11
566: 89 2f mov r24, r25
568: 9a 2f mov r25, r26
56a: ab 2f mov r26, r27
56c: bb 27 eor r27, r27
56e: 8e 87 std Y+14, r24 ; 0x0e
570: 9f 87 std Y+15, r25 ; 0x0f
572: a8 8b std Y+16, r26 ; 0x10
574: b9 8b std Y+17, r27 ; 0x11
c=d%256;
576: 8e 85 ldd r24, Y+14 ; 0x0e
578: 8a 83 std Y+2, r24 ; 0x02
//USART_Transmit(b);
//USART_Transmit(a);
}
if(aa==2)
57a: 8d 81 ldd r24, Y+5 ; 0x05
57c: 82 30 cpi r24, 0x02 ; 2
57e: 71 f4 brne .+28 ; 0x59c <main+0xc2>
{
PORTB&=~(1<<PB2); //复位ADS1256
580: a8 e3 ldi r26, 0x38 ; 56
582: b0 e0 ldi r27, 0x00 ; 0
584: e8 e3 ldi r30, 0x38 ; 56
586: f0 e0 ldi r31, 0x00 ; 0
588: 80 81 ld r24, Z
58a: 8b 7f andi r24, 0xFB ; 251
58c: 8c 93 st X, r24
PORTB|=1<<PB2;
58e: a8 e3 ldi r26, 0x38 ; 56
590: b0 e0 ldi r27, 0x00 ; 0
592: e8 e3 ldi r30, 0x38 ; 56
594: f0 e0 ldi r31, 0x00 ; 0
596: 80 81 ld r24, Z
598: 84 60 ori r24, 0x04 ; 4
59a: 8c 93 st X, r24
}
if(aa==3)
59c: 8d 81 ldd r24, Y+5 ; 0x05
59e: 83 30 cpi r24, 0x03 ; 3
5a0: 51 f4 brne .+20 ; 0x5b6 <main+0xdc>
{USART_Transmit(aa);
5a2: 8d 81 ldd r24, Y+5 ; 0x05
5a4: 77 dd rcall .-1298 ; 0x94 <USART_Transmit>
sum=0;
5a6: 10 92 60 00 sts 0x0060, r1
ad_write(7,0);
5aa: 60 e0 ldi r22, 0x00 ; 0
5ac: 87 e0 ldi r24, 0x07 ; 7
5ae: 24 de rcall .-952 ; 0x1f8 <ad_write>
ad_write(8,0xff);
5b0: 6f ef ldi r22, 0xFF ; 255
5b2: 88 e0 ldi r24, 0x08 ; 8
5b4: 21 de rcall .-958 ; 0x1f8 <ad_write>
}
if(aa==4)
5b6: 8d 81 ldd r24, Y+5 ; 0x05
5b8: 84 30 cpi r24, 0x04 ; 4
5ba: 09 f0 breq .+2 ; 0x5be <main+0xe4>
5bc: b1 cf rjmp .-158 ; 0x520 <main+0x46>
{USART_Transmit(aa);
5be: 8d 81 ldd r24, Y+5 ; 0x05
5c0: 69 dd rcall .-1326 ; 0x94 <USART_Transmit>
sum=0;
5c2: 10 92 60 00 sts 0x0060, r1
ad_write(7,0);
5c6: 60 e0 ldi r22, 0x00 ; 0
5c8: 87 e0 ldi r24, 0x07 ; 7
5ca: 16 de rcall .-980 ; 0x1f8 <ad_write>
ad_write(8,0x0f);
5cc: 6f e0 ldi r22, 0x0F ; 15
5ce: 88 e0 ldi r24, 0x08 ; 8
5d0: 13 de rcall .-986 ; 0x1f8 <ad_write>
5d2: a6 cf rjmp .-180 ; 0x520 <main+0x46>
000005d4 <_exit>:
5d4: f8 94 cli
000005d6 <__stop_program>:
5d6: ff cf rjmp .-2 ; 0x5d6 <__stop_program>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -