;______________________________________ ; GESTION DE TEMPERATURE ; Matériel : ATtiny 85 16,5MHz 5V ; DS18B20 ; (c) sammy76.free.fr ;V1.0 Sauvegarde dans l'EEPROM ;sans controle de nbr de bytes ;V2.0 Sauvegarde dans la FLASH ;______________________________________ ;ATtiny85 - 16.5MHz Digispark ;P0 : ;P1 : SENSELED (Interne) ;P2 : ;P3 : DATA DS18X20 ;P4 : ;P5 : .define F_CPU 16500000 ;16.5MHz ;FUSE H:FE, E:DD, L:E1 ;w lfuse 0 0xe1 ;w hfuse 0 0xdd ;w efuse 0 0xfe .CSEG .include "../includes/tn85def.inc" .dseg SerialNumber: .byte 8 ; 28fff8206b140472 pour mon DS18B20 ; tempC: .byte 9 ;9 bytes .cseg .def A =r16 ; GENERAL PURPOSE ACCUMULATOR .def crc =r20 ;CRC .def DATA =R18 ; Data to EEPROM ou FLASH ou SRAM .equ SENSELED=PORTB1 ; SENSELED pin (Output on AVR) .equ mesure_temps=5 ; les mesures toutes les X min .equ time_wait=(mesure_temps*60)/8 ;mettre 225 (x8S) pour 30min ******************************************************* ;ZH:ZL EEPROM ;YH:YL DDRAM .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 rjmp WDTinterrupt zUSI_STARTaddr: ; USI START reti zUSI_OVFaddr: ; USI Overflow reti ;______________________________________ ; SETUP ;______________________________________ ON_RESET: ldi A, LOW(RAMEND) ;Setup of stack pointer 0x15F t45/0x25F t85 out SPL, A ldi A, HIGH(RAMEND) out SPH, A ;Eteint le CAN cbi ADCSRA, ADEN ;switch Analog to Digitalconverter OFF rcall WDT_off ;Stop le watchdog ldi A, (1<