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

📄 spi.s

📁 ATmega128和ads7864实现ATP闭环控制
💻 S
字号:
	.module SPI.c
	.area text(rom, con, rel)
	.dbfile D:\ATP_AVR\SPI.c
	.dbfunc e spi_init _spi_init fV
	.even
_spi_init::
	.dbline -1
	.dbline 9
; 
; 
; #include "public.h"
; #include <string.h>
; 
; //SPI initialize
; // clock rate: 5529498hz
; void spi_init(void)
; {
	.dbline 10
;  SPCR = 0x50; 	//disable the spi interrupt
	ldi R24,80
	out 0xd,R24
	.dbline 16
;  				//enable spi
;  				//MSB first
;  				//spi master
;  				//mode 0
;  				//spi clock rate:fosc/4
;  SPSR = 0x01; 	//
	ldi R24,1
	out 0xe,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e SPISend _SPISend fV
;         ucByte -> R16
	.even
_SPISend::
	.dbline -1
	.dbline 21
; }
; 
; 
; void SPISend(unsigned char ucByte)
; {
	.dbline 22
; 	SPDR = ucByte;
	out 0xf,R16
L3:
	.dbline 23
L4:
	.dbline 23
;     	while (!(SPSR & 0x80));
	sbis 0xe,7
	rjmp L3
	.dbline 24
;     	ucByte = SPDR;
	in R16,0xf
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbsym r ucByte 16 c
	.dbend
	.dbfunc e SPIReadData _SPIReadData fc
	.even
_SPIReadData::
	.dbline -1
	.dbline 29
; }
; 
; 
; unsigned char SPIReadData(void)
; {
	.dbline 30
; 	SPDR = 0x00;
	clr R2
	out 0xf,R2
L7:
	.dbline 31
L8:
	.dbline 31
;     	while (!(SPSR & 0x80));
	sbis 0xe,7
	rjmp L7
	.dbline 32
;     	return SPDR;
	in R16,0xf
	.dbline -2
L6:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e SPI_CSTiming _SPI_CSTiming fV
	.even
_SPI_CSTiming::
	.dbline -1
	.dbline 36
; }
; 
; void SPI_CSTiming(void)
; {
	.dbline 37
; 	SETBIT(SPI_OUT,SPI_CS);
	sbi 0x18,0
	.dbline 38
; 	NOP();
	nop
	.dbline 39
; 	NOP();
	nop
	.dbline 40
; 	NOP();
	nop
	.dbline 41
; 	NOP();
	nop
	.dbline 42
; 	NOP();
	nop
	.dbline 43
; 	NOP();
	nop
	.dbline 44
; 	NOP();
	nop
	.dbline 45
; 	NOP();
	nop
	.dbline 46
; 	NOP();
	nop
	.dbline 47
; 	NOP();
	nop
	.dbline 48
; 	NOP();
	nop
	.dbline 49
; 	CLEARBIT(SPI_OUT,SPI_CS);
	cbi 0x18,0
	.dbline -2
L10:
	.dbline 0 ; func end
	ret
	.dbend

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -