X-Git-Url: https://git.smho.de/gw/?p=owSlave2.git;a=blobdiff_plain;f=common%2FOWDS18B20_DS2438.S;h=a95559e82ffe7429885dff0e861b86a837536344;hp=3694b11e455aac07418403ce2cb89e5ab495b108;hb=refs%2Fheads%2Fmaster;hpb=3f2aceaf525eeceff3baece206b2048bbf286c40 diff --git a/common/OWDS18B20_DS2438.S b/common/OWDS18B20_DS2438.S index 3694b11..a95559e 100644 --- a/common/OWDS18B20_DS2438.S +++ b/common/OWDS18B20_DS2438.S @@ -1,5 +1,5 @@ -// Copyright (c) 2015, Tobias Mueller tm(at)tm3d.de +// Copyright (c) 2017, Tobias Mueller tm(at)tm3d.de // All rights reserved. // // Redistribution and use in source and binary forms, with or without @@ -34,6 +34,8 @@ #define _CHANGEABLE_ID_ #define _ZERO_POLLING_ #define _HANDLE_CC_COMMAND_ +#define _NO_BOOTLOADER_PIN_ +//#define __4MHZ__ //#define _DB_ #include "../common/OWConfig.s" @@ -41,19 +43,21 @@ .extern pack1,8 -//.extern am2302_temp,2 - #if defined(__AVR_ATtiny25__) .extern pack2,16 #else .extern pack2,64 #endif -.extern am2302_temp,2 -.extern am2302_hum,2 + + + .comm block,1 ; Block der augegeben, geschrieben wird (Parameter von READ/WRITE Scratchpad) +.comm cpsp,1 ; Copy Scratchpad marker .macro CHIP_INIT ;r_temp is pushed other Registers should be saved + ldi r_temp,0 + sts cpsp,r_temp Init_EEPROM_read: push r_bytep push r_rwbyte @@ -79,6 +83,7 @@ Init_EEPROM_read: rjmp h_readscratchpad2 rjmp h_writescratchpad_adr2 rjmp h_writescratchpad2 + rjmp h_copyscratchpad_adr2 .endm #include "../common/OWRomFunctionsDual.s" @@ -94,6 +99,7 @@ Init_EEPROM_read: #define OW_READ_SCRATCHPAD2 OW_FIRST_COMMAND+4 #define OW_WRITE_SCRATCHPAD_ADR2 OW_FIRST_COMMAND+5 #define OW_WRITE_SCRATCHPAD2 OW_FIRST_COMMAND+6 +#define OW_COPY_SCRATCHPAD_ADR2 OW_FIRST_COMMAND+7 ;--------------------------------------------------- @@ -104,8 +110,9 @@ Init_EEPROM_read: h_readcommand12: clr r_bytep cjmp 0x44,hrc_set_convertT12 - ldi r_mode,OW_SLEEP - rjmp handle_end + rjmp h_readcccommand ;fuehre DS2438 commands aus... + //ldi r_mode,OW_SLEEP + //rjmp handle_end #endif @@ -114,9 +121,10 @@ h_readcommand1: #ifndef _DIS_FLASH_ FLASH_COMMANDS ; muss zu erst sein.... #endif + cjmp 0x44,hrc_set_convertT1 +h_readcccommand: cjmp 0xBE,hrc_set_readscratchpad1 cjmp 0x4E,hrc_set_writescratchpad1 - cjmp 0x44,hrc_set_convertT1 cjmp 0x48,hrc_copy_scratchpad1 cjmp 0xB8,hrc_recall_eeprom1 FW_CONFIG_INFO1 @@ -145,9 +153,9 @@ hrc_recall_eeprom1: hrc_set_convertT12: ldi r_temp,3 sts gcontrol,r_temp - lds r_temp,am2302_temp + lds r_temp,DS2438_2_TEMP sts pack2+1,r_temp - lds r_temp,am2302_temp+1 + lds r_temp,DS2438_2_TEMP+1 sts pack2+2,r_temp rjmp hrc_set_convertT12b #endif @@ -270,6 +278,7 @@ h_readcommand2: cset 0x4E,OW_WRITE_SCRATCHPAD_ADR2 cjmp 0x44,hrc_set_convertT2 cjmp 0xB4,hrc_set_convertV2 + cset 0x48,OW_COPY_SCRATCHPAD_ADR2 FW_CONFIG_INFO2 //cljmp 0x85,hrc_fw_configinfo2 #ifdef _CHANGEABLE_ID_ @@ -281,26 +290,28 @@ h_readcommand2: hrc_set_convertT2: ldi r_temp,2 sts gcontrol,r_temp - lds r_temp,am2302_temp + lds r_temp,DS2438_2_TEMP sts pack2+1,r_temp - lds r_temp,am2302_temp+1 + lds r_temp,DS2438_2_TEMP+1 sts pack2+2,r_temp rjmp handle_end_sleep hrc_set_convertV2: + ldi r_temp,4 + sts gcontrol,r_temp lds r_temp,pack2 sbrs r_temp,3 rjmp hrc_set_convertVV2 - ldi r_temp,0xF4 + lds r_temp,DS2438_2_VDD sts pack2+3,r_temp - ldi r_temp,0x01 + lds r_temp,DS2438_2_VDD+1 sts pack2+4,r_temp rjmp hrc_set_convertend2 hrc_set_convertVV2: - ldi r_temp,3 + ldi r_temp,8 sts gcontrol,r_temp - lds r_temp,am2302_hum + lds r_temp,DS2438_2_VAD sts pack2+3,r_temp - lds r_temp,am2302_hum+1 + lds r_temp,DS2438_2_VAD+1 sts pack2+4,r_temp hrc_set_convertend2: rjmp handle_end_sleep @@ -367,7 +378,10 @@ h_writescratchpad_all2: rjmp handle_end_sleep - +h_copyscratchpad_adr2: + ori r_rwbyte,0x80 ;hoechstes bit ist 1 zum Testen + sts cpsp,r_rwbyte + rjmp handle_end_sleep