Bonjour à tous,
j'utilise un ATmega8-16 en DIP28 avec l'horloge interne à 8MHz
http://www.atmel.com/dyn/products/pr...p?part_id=2004
la routine Hexa->BCD fonctionne mais ça affiche 640
j'ai mis le potar sur la pin 28, la tension est ok
veuillez excuser le manque de professionnalisme
un billet de 5 en récompense. SVP MERCI
Code:.include "m8def.inc" reset: LDI R16,0xFF OUT DDRD,R16 ;aff dizaines & unités LDI R16,0x0F OUT DDRC,R16 ; aff centaines ; CLR R16 OUT PORTD,R16 OUT PORTC,R16 ; affiche 000 ; LDI R20,0x45 STS ADMUX,R20 ; Ref = AVcc IN=ADC5 LDI R20,0x87 STS ADCSRA,R20 ; En, F/128 RJMP MAIN MAIN: CLR R22 CLR R23 ; LDI R17,0x02 ; tempo2 LOOP2: SER R18 FLOOP2: SER R19 VFL2: DEC R19 BRNE VFL2 DEC R18 BRNE FLOOP2 DEC R17 BRNE LOOP2 ; LDI R20,0xC7 STS ADCSRA,R20 ;Start ADC ; LDI R17,0x02 ; tempo LOOP: SER R18 FLOOP: SER R19 VFL: DEC R19 BRNE VFL DEC R18 BRNE FLOOP DEC R17 BRNE LOOP ; LDS R26,ADCL ; lire ADC LDS R27,ADCH ; Hexa -> BCD C: TST R27 BREQ OXX SBIW R26,0x32 SBIW R26,0x32 INC R23 RJMP C OXX: CPI R26,0x64 BRLO D SUBI R26,0x64 INC R23 RJMP OXX D: CPI R26,0x0A BRLO U SUBI R26,0x0A INC R22 RJMP D U: SWAP R22 ADD R22,R26 OUT PORTD,R22 OUT PORTC,R23 RJMP MAIN
-----