;______________________________________ ; ADS1115/CAN 12 bits/4 entrées ; ; Matériel : ATtiny 45/85 8MHz 5V ; ADS1115 I²C ; (c) sammy76.free.fr ; V1.0 2016/06/01 Juin 2016 ;______________________________________ ; V1.0 ESSAI ; ATtiny45 - 8MHz interne ; +-\/-+ ; PB5 1|- -|8 Vcc ; PB3 2|- -|7 PB2 SENSELED ; PB4 3|- -|6 PB1 SDA LCD/ADS1115 ; GND 4|- -|5 PB0 SCL LCD/ADS1115 ; +----+ ;I2C : Registres utilisés r16 (A),r19 (Adresse I²C), r20 (DATA) .dseg .equ txt=0x60 ;Adresse variable du texte .CSEG .include "../includes/tn45def.inc" ;.def bin16r0=R16 ;.def bin16r1=R17 .define F_CPU 8000000 ;8MHz .def A = r16 ; .def digit = r4 ;Digit .equ SENSELED=PB3 ; SENSELED pin (Output on AVR) .equ ERRORLED=PB4 ; ERRORLED pin (Output on AVR) ;----------------------------------------------------------------- .org 0000 ;************************************************ ;* Interrupt Vectors * ;************************************************ zRESET: ; Reset Handler rjmp ON_RESET zINT0addr: ; External Interrupt 0 reti zPCI0addr: ; Pin change Interrupt Request 0 reti zOC1Aaddr: ; Timer/Counter1 Compare Match 1A reti zOVF1addr: ; Timer/Counter1 Overflow reti zOVF0addr: ; Timer/Counter0 Overflow reti zERDYaddr: ; EEPROM Ready reti zACIaddr: ; Analog comparator reti zADCCaddr: ; ADC Conversion ready reti zOC1Baddr: ; Timer/Counter1 Compare Match B reti zOC0Aaddr: ; Timer/Counter0 Compare Match A reti zOC0Baddr: ; Timer/Counter0 Compare Match B reti zWDTaddr: ; Watchdog Time-out reti ;rjmp WDTinterrupt zUSI_STARTaddr: ; USI START reti zUSI_OVFaddr: ; USI Overflow reti .include "../utils/i2c_attiny.inc" .include "bin2asc5.asm" .include "../utils/ADS1115.inc" .include "../utils/lcd_.inc" ;______________________________________ ; SETUP ;______________________________________ ON_RESET: ldi A, LOW(RAMEND) ;Setup of stack pointer 0x15F out SPL, A ldi A, HIGH(RAMEND) out SPH, A ldi A,0b10000000 ;Attention, ces 2 instructions sont importantes pour le changement de fréquence (sécurité AVR) out CLKPR,A ldi A,0b0000000 ;divise par 0le clock RC de 8MHz, donc 8MHz out CLKPR,A ;Eteint le CAN cbi ADCSRA, ADEN ;switch Analog to Digitalconverter OFF ;rcall WDT_on ;Set le watchdog rcall WDT_off ;Stop le watchdog ;Configure les sorties ;ldi A, (1<