\r
#define _CHANGEABLE_ID_\r
#define _ZERO_POLLING_\r
-//#define _HANDLE_CC_COMMAND_\r
+#define _HANDLE_CC_COMMAND_\r
//#define _DB_\r
\r
#include "../common/OWConfig.s"\r
.extern DS2438_2_TEMP,2\r
.extern DS2438_2_VAD,2\r
.comm block,1 ; Block der augegeben, geschrieben wird (Parameter von READ/WRITE Scratchpad)\r
-\r
+.comm cpsp2,1 ; Copy Scratchpad marker\r
\r
.macro CHIP_INIT ;r_temp is pushed other Registers should be saved\r
+ ldi r_temp,0\r
+ sts cpsp2,r_temp\r
.endm\r
\r
.macro COMMAND_TABLE\r
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
#define OW_READ_SCRATCHPAD2 OW_FIRST_COMMAND+5\r
#define OW_WRITE_SCRATCHPAD_ADR2 OW_FIRST_COMMAND+6\r
#define OW_WRITE_SCRATCHPAD2 OW_FIRST_COMMAND+7\r
+#define OW_COPY_SCRATCHPAD_ADR2 OW_FIRST_COMMAND+8\r
\r
\r
;---------------------------------------------------\r
#ifdef _HANDLE_CC_COMMAND_\r
h_readcommand12:\r
clr r_bytep\r
- cset 0x44,hrc_set_convertT12\r
+ cljmp 0x44,hrc_set_convertT12\r
+ cljmp 0xB4,hrc_set_convertV12\r
ldi r_mode,OW_SLEEP\r
rjmp handle_end\r
#endif\r
\r
\r
hrc_set_convertT1:\r
+ rcall chrc_set_convertT1\r
+ rjmp handle_end_sleep\r
+\r
+chrc_set_convertT1:\r
ldi r_temp,1\r
sts gcontrol,r_temp\r
lds r_temp,DS2438_1_TEMP\r
sts pack1+1,r_temp\r
lds r_temp,DS2438_1_TEMP+1\r
sts pack1+2,r_temp\r
- rjmp handle_end_sleep\r
+ ret\r
+\r
hrc_set_convertV1:\r
+ rcall chrc_set_convertV1\r
+ rjmp handle_end_sleep\r
+\r
+chrc_set_convertV1:\r
lds r_temp,pack1\r
sbrs r_temp,3\r
rjmp hrc_set_convertVV1\r
sts pack1+4,r_temp\r
rjmp hrc_set_convertend1\r
hrc_set_convertVV1:\r
- ldi r_temp,3\r
+ ldi r_temp,2\r
sts gcontrol,r_temp\r
lds r_temp,DS2438_1_VAD\r
sts pack1+3,r_temp\r
lds r_temp,DS2438_1_VAD+1\r
sts pack1+4,r_temp\r
hrc_set_convertend1:\r
- rjmp handle_end_sleep\r
+ ret\r
\r
\r
\r
\r
#ifdef _HANDLE_CC_COMMAND_\r
hrc_set_convertT12:\r
- ldi r_temp,3\r
- sts gcontrol,r_temp\r
- lds r_temp,DS2438_2_TEMP\r
- sts pack2+1,r_temp\r
- lds r_temp,DS2438_2_TEMP+1\r
- sts pack2+2,r_temp\r
- lds r_temp,DS2438_1_TEMP\r
- sts pack1+1,r_temp\r
- lds r_temp,DS2438_1_TEMP+1\r
- sts pack1+2,r_temp\r
+ rcall chrc_set_convertT1\r
+ rcall chrc_set_convertT2\r
+ rjmp handle_end_sleep\r
+\r
+hrc_set_convertV12:\r
+ rcall chrc_set_convertV1\r
+ rcall chrc_set_convertV2\r
rjmp handle_end_sleep\r
#endif\r
\r
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
#endif\r
rjmp handle_end_sleep\r
\r
-\r
hrc_set_convertT2:\r
- ldi r_temp,2\r
+ rcall chrc_set_convertT2\r
+ rjmp handle_end_sleep\r
+\r
+hrc_set_convertV2:\r
+ rcall chrc_set_convertV2\r
+ rjmp handle_end_sleep\r
+\r
+\r
+chrc_set_convertT2:\r
+ ldi r_temp,3\r
sts gcontrol,r_temp\r
lds r_temp,DS2438_2_TEMP\r
sts pack2+1,r_temp\r
lds r_temp,DS2438_2_TEMP+1\r
sts pack2+2,r_temp\r
- rjmp handle_end_sleep\r
-hrc_set_convertV2:\r
+ ret\r
+\r
+chrc_set_convertV2:\r
lds r_temp,pack2\r
sbrs r_temp,3\r
rjmp hrc_set_convertVV2\r
sts pack2+4,r_temp\r
rjmp hrc_set_convertend2\r
hrc_set_convertVV2:\r
- ldi r_temp,3\r
+ ldi r_temp,4\r
sts gcontrol,r_temp\r
lds r_temp,DS2438_2_VAD\r
sts pack2+3,r_temp\r
lds r_temp,DS2438_2_VAD+1\r
sts pack2+4,r_temp\r
hrc_set_convertend2:\r
- rjmp handle_end_sleep\r
+ ret\r
\r
\r
\r
\r
\r
\r
-\r
+h_copyscratchpad_adr2:\r
+ ori r_rwbyte,0x80 ;hoechstes bit ist 1 zum Testen\r
+ sts cpsp2,r_rwbyte\r
+ rjmp handle_end_sleep\r
\r
\r
\r