X-Git-Url: https://git.smho.de/gw/?p=owSlave2.git;a=blobdiff_plain;f=common%2FOWRomFunctions.s;h=0b1488dd9b9d074ae9e191e9460dc8e96807965e;hp=fdcc9197bafd92763b708e29acd375b47b73ef59;hb=6aa7a2df05f4f65bf6c7260487a470798a5ed1b1;hpb=22f8e0389304cc3f78fec16d8ecc30069afe8584 diff --git a/common/OWRomFunctions.s b/common/OWRomFunctions.s index fdcc919..0b1488d 100644 --- a/common/OWRomFunctions.s +++ b/common/OWRomFunctions.s @@ -61,13 +61,14 @@ #define OW_SEARCHROMR 4 ; next resive master answer #define OW_READROM 5 #define OW_READ_COMMAND 6 +#define OW_FWCONFIGINFO 7 #ifdef _CHANGEABLE_ID_ -#define OW_WRITE_NEWID 7 -#define OW_READ_NEWID 8 -#define OW_SET_NEWID 9 -#define OW_FIRST_COMMAND 10 +#define OW_WRITE_NEWID 8 +#define OW_READ_NEWID 9 +#define OW_SET_NEWID 10 +#define OW_FIRST_COMMAND 11 .comm newid,8 @@ -79,7 +80,7 @@ #else -#define OW_FIRST_COMMAND 7 +#define OW_FIRST_COMMAND 8 #endif #ifndef _DIS_FLASH_ @@ -93,6 +94,9 @@ .endm #endif +.macro FW_CONFIG_INFO + cljmp 0x85,hrc_fw_configinfo +.endm #ifdef _CHANGEABLE_ID_ @@ -135,6 +139,7 @@ handle_stable: rjmp h_searchromr rjmp h_readrom rjmp h_readcommand + rjmp h_fwconfiginfo #ifdef _CHANGEABLE_ID_ rjmp h_writeid rjmp h_readid @@ -160,7 +165,7 @@ hrc_jmp_flasher: lds r_temp,flashmarker cpi r_temp,2 brne hrc_jmp_flasher_inc - ldi r_temp,0xE0 + ldi r_temp,0xC0 push r_temp ldi r_temp,0x0E push r_temp @@ -193,6 +198,14 @@ hrc_set_alarm_search: ; sonst tue nichts rjmp handle_end_sleep + +hrc_fw_configinfo: + ldi r_mode,OW_FWCONFIGINFO + ldi r_sendflag,1 + CRCInit2 + rjmp h_fwconfiginfo + + ;--------------------------------------------------- ; MATCH ROM ;--------------------------------------------------- @@ -290,6 +303,39 @@ h_readrom_all: rjmp handle_end_sleep +;--------------------------------------------------- +; FW_CONFIG_INFO +;--------------------------------------------------- + +h_fwconfiginfo: + cpi r_bytep,16 + breq h_fwconfiginfo_crc +#ifdef _CRC8_ + cpi r_bytep,17 + breq h_fwconfiginfo_all +#elif defined _CRC16_ + cpi r_bytep,17 + breq h_fwconfiginfo_crc2 + cpi r_bytep,18 + breq h_fwconfiginfo_all +#else + cpi r_bytep,16 + breq h_fwconfiginfo_all +#warning No CRC known code implemented +#endif + configZ config_info,r_bytep + ld r_rwbyte,Z + rjmp handle_end_inc +h_fwconfiginfo_crc: + lds r_rwbyte,crc + rjmp handle_end_inc +h_fwconfiginfo_crc2: + lds r_rwbyte,crc+1 + rjmp handle_end_inc +h_fwconfiginfo_all: + rjmp handle_end_sleep + + ;--------------------------------------------------- ; CHANGE ROM FUNCTIONS ;--------------------------------------------------- @@ -407,7 +453,7 @@ OWINIT: sbic _SFR_IO_ADDR(PINA),PINA5 rjmp owinit_botest_end ;PINA5 nicht 0.... nicht verbunden cbi _SFR_IO_ADDR(DDRA),PINA4 - ldi r_temp,0xE0 + ldi r_temp,0xC0 push r_temp ldi r_temp,0x0E push r_temp