New I2C devices
[owSlave2.git] / common / OWDS18B20_DS2438.S
index 109891d..73fd42e 100644 (file)
@@ -34,6 +34,7 @@
 #define _CHANGEABLE_ID_\r
 #define _ZERO_POLLING_\r
 #define _HANDLE_CC_COMMAND_\r
+               \r
 //#define _DB_\r
 \r
 #include "../common/OWConfig.s"\r
 #else\r
 .extern pack2,64\r
 #endif\r
-.extern  am2302_temp,2\r
-.extern  am2302_hum,2\r
+//.extern  am2302_temp,2\r
+//.extern  am2302_hum,2\r
 .comm block,1 ; Block der augegeben, geschrieben wird (Parameter von READ/WRITE Scratchpad)\r
+.comm cpsp,1 ; Copy Scratchpad marker\r
 \r
 \r
 .macro CHIP_INIT       ;r_temp is pushed other Registers should be saved\r
+       ldi r_temp,0\r
+       sts cpsp,r_temp\r
 Init_EEPROM_read:\r
        push r_bytep\r
        push r_rwbyte\r
@@ -79,6 +83,7 @@ Init_EEPROM_read:
                rjmp h_readscratchpad2\r
                rjmp h_writescratchpad_adr2\r
                rjmp h_writescratchpad2\r
+               rjmp h_copyscratchpad_adr2\r
 .endm\r
 \r
 #include "../common/OWRomFunctionsDual.s"\r
@@ -94,6 +99,7 @@ Init_EEPROM_read:
 #define OW_READ_SCRATCHPAD2 OW_FIRST_COMMAND+4\r
 #define OW_WRITE_SCRATCHPAD_ADR2 OW_FIRST_COMMAND+5\r
 #define OW_WRITE_SCRATCHPAD2 OW_FIRST_COMMAND+6\r
+#define OW_COPY_SCRATCHPAD_ADR2 OW_FIRST_COMMAND+7\r
 \r
 \r
 ;---------------------------------------------------\r
@@ -270,6 +276,7 @@ h_readcommand2:
        cset 0x4E,OW_WRITE_SCRATCHPAD_ADR2\r
        cjmp 0x44,hrc_set_convertT2\r
        cjmp 0xB4,hrc_set_convertV2\r
+       cset 0x48,OW_COPY_SCRATCHPAD_ADR2\r
        FW_CONFIG_INFO2\r
        //cljmp 0x85,hrc_fw_configinfo2\r
 #ifdef _CHANGEABLE_ID_\r
@@ -367,7 +374,10 @@ h_writescratchpad_all2:
        rjmp handle_end_sleep\r
 \r
 \r
-\r
+h_copyscratchpad_adr2:\r
+       ori r_rwbyte,0x80 ;hoechstes bit ist 1 zum Testen\r
+       sts cpsp,r_rwbyte\r
+       rjmp handle_end_sleep\r
 \r
 \r
 \r