; ============================================================================== ; SHT41 Ansteuerung über Hardware-TWI (I2C) am ATmega88 ; Takt: 8 MHz (interner Oszillator) - SCL Takt: ca. 100 kHz ; ============================================================================== .include "m88def.inc" ; --- Registerdefinitionen --- .def temp = r16 .def twi_status = r17 .def timeout_l = r18 .def timeout_h = r19 ; Speicherplatz für die empfangenen Sensordaten (SRAM) .dseg .org SRAM_START sht_data: .byte 6 ; [0]=T_MSB, [1]=T_LSB, [2]=T_CRC, [3]=RH_MSB, [4]=RH_LSB, [5]=RH_CRC ; --- Code-Segment --- .cseg .org 0x0000 rjmp reset reset: ; 1. Stackpointer initialisieren ldi temp, high(RAMEND) out SPH, temp ldi temp, low(RAMEND) out SPL, temp ; 2. TWI-Schnittstelle initialisieren (8 MHz / (16 + 2*TWBR * Prescaler)) ; Für ~100kHz bei 8MHz: TWBR = 32, Prescaler = 1 (TWSR = 0) ldi temp, 32 sts TWBR, temp ldi temp, 0x00 sts TWSR, temp ldi temp, (1<