Différence de code pour la lecture de l'ADC entre PIC et AVR

Différence de code assembleur pour la lecture de l'ADC entre un PIC et un AVR

Code pour le PIC

BANKSEL	TRISIO	
BSF	TRISIO,0	;Set GP0 to input
BANKSEL	ANSEL
MOVLW	B’01110001’	;ADC Frc clock,
IORWF	ANSEL		;and GP0 as analog
BANKSEL	ADCON0
MOVWF	ADCON0		;Vdd Vref, AN0, On
CALL	SampleTime	;Acquisiton delay
BSF	ADCON0,GO	;Start conversion
BTFSC	ADCON0,GO	;Is conversion done?
GOTO	$-1			;No, test again
BANKSEL	ADRESH
MOVF	ADRESH,W	;Read upper 2 bits
MOVWF	RESULTHI	;Store in GPR space
BANKSEL	ADRESL
MOVF	ADRESL,W	;Read lower 8 bits
MOVWF	RESULTLO	;Store in GPR space

 

Code pour l'AVR

ldi	r16,0b10001111	;internal 1.1V ref, ADC4 is input (Thermal) 
out	ADMUX,r16 
ldi	r16,0b11000111	;adc on, start adc, no interrupt, CLK = sysclk / 128 
out	ADCSRA,r16
sbic 	ADCSRA,ADSC	;wait for conversion complete
rjmp 	$-1
in 	fbinL,ADCL 
in  	fbinH,ADCH

 

 (c) 2007 www.zufferey.com