tm3d
/
owSlave2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Change from 16 to 24 Byte Config Code
[owSlave2.git]
/
common
/
OWRomFunctionsDual.s
diff --git
a/common/OWRomFunctionsDual.s
b/common/OWRomFunctionsDual.s
index
9bbf71d
..
3c2d152
100644
(file)
--- a/
common/OWRomFunctionsDual.s
+++ b/
common/OWRomFunctionsDual.s
@@
-1,4
+1,4
@@
-// Copyright (c) 201
5
, Tobias Mueller tm(at)tm3d.de
\r
+// Copyright (c) 201
7
, Tobias Mueller tm(at)tm3d.de
\r
// All rights reserved.
\r
//
\r
// Redistribution and use in source and binary forms, with or without
\r
// All rights reserved.
\r
//
\r
// Redistribution and use in source and binary forms, with or without
\r
@@
-61,18
+61,20
@@
#define OW_SEARCHROMR 4 ; next resive master answer
\r
#define OW_READ_COMMAND1 5
\r
#define OW_READ_COMMAND2 6
\r
#define OW_SEARCHROMR 4 ; next resive master answer
\r
#define OW_READ_COMMAND1 5
\r
#define OW_READ_COMMAND2 6
\r
-#define OW_FWCONFIGINFO1 7
\r
-#define OW_FWCONFIGINFO2 8
\r
+#define OW_READ_COMMAND12 7 ;Skip ROM.... eigentlich nicht mit mehreren geraeten, aber bei loxone schon (CC 44)
\r
+#define OW_FWCONFIGINFO1 8
\r
+#define OW_FWCONFIGINFO2 9
\r
\r
.comm idtable,64
\r
\r
#ifdef _CHANGEABLE_ID_
\r
\r
.comm idtable,64
\r
\r
#ifdef _CHANGEABLE_ID_
\r
-#define OW_WRITE_NEWID
9
\r
-#define OW_READ_NEWID 1
0
\r
-#define OW_SET_NEWID 1
1
\r
-#define OW_FIRST_COMMAND 1
2
\r
+#define OW_WRITE_NEWID
10
\r
+#define OW_READ_NEWID 1
1
\r
+#define OW_SET_NEWID 1
2
\r
+#define OW_FIRST_COMMAND 1
3
\r
.comm newid,8
\r
.comm newid,8
\r
-
\r
+
\r
+
\r
.macro CHANGE_ID_COMMANDS
\r
cset 0x75,OW_WRITE_NEWID
\r
cljmp 0xA7,hrc_set_readid
\r
.macro CHANGE_ID_COMMANDS
\r
cset 0x75,OW_WRITE_NEWID
\r
cljmp 0xA7,hrc_set_readid
\r
@@
-81,7
+83,7
@@
\r
\r
#else
\r
\r
\r
#else
\r
-#define OW_FIRST_COMMAND
9
\r
+#define OW_FIRST_COMMAND
10
\r
#endif
\r
\r
#ifndef _DIS_FLASH_
\r
#endif
\r
\r
#ifndef _DIS_FLASH_
\r
@@
-153,6
+155,11
@@
handle_stable:
rjmp h_searchromr
\r
rjmp h_readcommand1
\r
rjmp h_readcommand2
\r
rjmp h_searchromr
\r
rjmp h_readcommand1
\r
rjmp h_readcommand2
\r
+#ifdef _HANDLE_CC_COMMAND_
\r
+ rjmp h_readcommand12
\r
+#else
\r
+ rjmp handle_end_no_bcount
\r
+#endif
\r
rjmp h_fwconfiginfo1
\r
rjmp h_fwconfiginfo2
\r
#ifdef _CHANGEABLE_ID_
\r
rjmp h_fwconfiginfo1
\r
rjmp h_fwconfiginfo2
\r
#ifdef _CHANGEABLE_ID_
\r
@@
-169,7
+176,9
@@
h_readromcommand:
cjmp 0x55,hrc_set_matchrom
\r
cjmp 0xF0,hrc_set_searchrom
\r
cjmp 0xEC,hrc_set_alarm_search
\r
cjmp 0x55,hrc_set_matchrom
\r
cjmp 0xF0,hrc_set_searchrom
\r
cjmp 0xEC,hrc_set_alarm_search
\r
-
\r
+#ifdef _HANDLE_CC_COMMAND_
\r
+ cjmp 0xCC,hrc_start_read_command12
\r
+#endif
\r
rjmp handle_end_sleep
\r
\r
#ifndef _DIS_FLASH_
\r
rjmp handle_end_sleep
\r
\r
#ifndef _DIS_FLASH_
\r
@@
-218,6
+227,11
@@
hrc_start_read_command2:
ldi r_mode,OW_READ_COMMAND2
\r
rjmp handle_end
\r
\r
ldi r_mode,OW_READ_COMMAND2
\r
rjmp handle_end
\r
\r
+#ifdef _HANDLE_CC_COMMAND_
\r
+hrc_start_read_command12:
\r
+ ldi r_mode,OW_READ_COMMAND12
\r
+ rjmp handle_end
\r
+#endif
\r
\r
hrc_set_alarm_search:
\r
lds r_temp,alarmflag
\r
\r
hrc_set_alarm_search:
\r
lds r_temp,alarmflag
\r
@@
-387,29
+401,36
@@
h_fwconfiginfo2:
configZ config_info2,r_bytep
\r
\r
h_fwconfiginfo_go:
\r
configZ config_info2,r_bytep
\r
\r
h_fwconfiginfo_go:
\r
- cpi r_bytep,
16
\r
+ cpi r_bytep,
24
\r
breq h_fwconfiginfo_crc
\r
#ifdef _CRC8_
\r
breq h_fwconfiginfo_crc
\r
#ifdef _CRC8_
\r
- cpi r_bytep,
17
\r
+ cpi r_bytep,
25
\r
breq h_fwconfiginfo_all
\r
#elif defined _CRC16_
\r
breq h_fwconfiginfo_all
\r
#elif defined _CRC16_
\r
- cpi r_bytep,17
\r
- breq h_fwconfiginfo_crc2
\r
- cpi r_bytep,18
\r
+ cpi r_bytep,26
\r
breq h_fwconfiginfo_all
\r
#else
\r
breq h_fwconfiginfo_all
\r
#else
\r
- cpi r_bytep,
16
\r
+ cpi r_bytep,
25
\r
breq h_fwconfiginfo_all
\r
#warning No CRC known code implemented
\r
#endif
\r
breq h_fwconfiginfo_all
\r
#warning No CRC known code implemented
\r
#endif
\r
+h_fwconfiginfo_end:
\r
+ //configZ config_info1,r_bytep //crc16 wird in config_info1 gespeichert, auch bei config_info2
\r
ld r_rwbyte,Z
\r
rjmp handle_end_inc
\r
h_fwconfiginfo_crc:
\r
ld r_rwbyte,Z
\r
rjmp handle_end_inc
\r
h_fwconfiginfo_crc:
\r
+#ifdef _CRC8_
\r
lds r_rwbyte,crc
\r
rjmp handle_end_inc
\r
lds r_rwbyte,crc
\r
rjmp handle_end_inc
\r
-h_fwconfiginfo_crc2:
\r
- lds r_rwbyte,crc+1
\r
- rjmp handle_end_inc
\r
+#elif defined _CRC16_
\r
+ lds r_temp,crc
\r
+ com r_temp
\r
+ sts config_info1+24,r_temp
\r
+ lds r_temp,crc+1
\r
+ com r_temp
\r
+ sts config_info1+25,r_temp
\r
+ rjmp h_fwconfiginfo_end
\r
+#endif
\r
h_fwconfiginfo_all:
\r
rjmp handle_end_sleep
\r
\r
h_fwconfiginfo_all:
\r
rjmp handle_end_sleep
\r
\r
@@
-616,8
+637,8
@@
owinit_odgen2:
;copy ids in config bytes
\r
ldi xl,lo8(owid1)
\r
ldi xh,hi8(owid1)
\r
;copy ids in config bytes
\r
ldi xl,lo8(owid1)
\r
ldi xh,hi8(owid1)
\r
- ldi yl,lo8(config_info2+
9
)
\r
- ldi yh,hi8(config_info2+
9
)
\r
+ ldi yl,lo8(config_info2+
17
)
\r
+ ldi yh,hi8(config_info2+
17
)
\r
ldi r_temp,7
\r
owinit_cpconfig1:
\r
ld r_rwbyte,X+
\r
ldi r_temp,7
\r
owinit_cpconfig1:
\r
ld r_rwbyte,X+
\r
@@
-626,8
+647,8
@@
owinit_cpconfig1:
brne owinit_cpconfig1
\r
ldi xl,lo8(owid2)
\r
ldi xh,hi8(owid2)
\r
brne owinit_cpconfig1
\r
ldi xl,lo8(owid2)
\r
ldi xh,hi8(owid2)
\r
- ldi yl,lo8(config_info1+
9
)
\r
- ldi yh,hi8(config_info1+
9
)
\r
+ ldi yl,lo8(config_info1+
17
)
\r
+ ldi yh,hi8(config_info1+
17
)
\r
ldi r_temp,7
\r
owinit_cpconfig2:
\r
ld r_rwbyte,X+
\r
ldi r_temp,7
\r
owinit_cpconfig2:
\r
ld r_rwbyte,X+
\r