adc.s

来自「avr单片机atmage16驱动小灯的一些例程 并且包括一些收发数据的程序利用」· S 代码 · 共 50 行

S
50
字号
	.module adc.c
	.area text(rom, con, rel)
	.dbfile E:\ICCAVR\project\AVRMEG~2\icc\008-AD-LED\adc.c
	.dbfunc e get_ad _get_ad fc
;              i -> R16
	.even
_get_ad::
	.dbline -1
	.dbline 4
; #include "iom16v.h"
; 
; /*ADC采样函数,采样第7通道信号,采样分辨率256*/
; unsigned char get_ad(void) {
	.dbline 8
; 
; 	unsigned char i;
; 	
; 	ADMUX = 0x67;			/*基准AVCC、左对齐、通道7*/
	ldi R24,103
	out 0x7,R24
	.dbline 9
; 	ADCSRA = 0xC2;			/*使能、开启、4分频*/
	ldi R24,194
	out 0x6,R24
L2:
	.dbline 10
L3:
	.dbline 10
; 	while(!(ADCSRA & (1 << ADIF)));	/*等待*/
	sbis 0x6,4
	rjmp L2
	.dbline 11
; 	i = ADCH;
	in R16,0x5
	.dbline 12
; 	ADCSRA &= ~(1 << ADIF);		/*清标志*/
	cbi 0x6,4
	.dbline 13
; 	ADCSRA &= ~(1 << ADEN);		/*关闭转换*/
	cbi 0x6,7
	.dbline 15
; 
; 	return i;
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 c
	.dbend

⌨️ 快捷键说明

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