[an error occurred while processing this directive]
|
#define _EEPUT_(ADR,VAL) {while (EECR & EEWE_BIT); \
EEAR=(ADR);EEDR=(VAL);_CLI();EECR=EEMWE_BIT;EECR=EEWE_BIT;_SEI();}#define _EEGET_(VAR, ADR) {while (EECR & EEWE_BIT); \
EEAR =(ADR);EECR = EERE_BIT;while (EECR & EERE_BIT);(VAR) = EEDR;}
//----------------------------------------------------------------
void clean_eeprom (void)
{
word addr;
byte eedat=0;
for (addr=0; addr<512; addr++){ _EEPUT_ (addr,eedat)}
}
//----------------------------------------------------------------
Что привело к:
//-----------------------------------------------------------------
49 void clean_eeprom (void)
\ 00000000 .... RCALL ?PROLOGUE2_L09
50 {
51 word addr;
\ 00000002 0027 CLR R16
52 byte eedat=0;
\ 00000004 8827 CLR R24
\ 00000006 9927 CLR R25
\ ?0011:
\ 00000008 8030 CPI R24,LOW(0)
\ 0000000A 12E0 LDI R17,LOW(2)
\ 0000000C 9107 CPC R25,R17
\ 0000000E 68F4 BRCC ?0010
\ ?0012:
\ 00000010 E199 SBIC LOW(28),LOW(1)
\ 00000012 FECF RJMP ?0012
\ 00000014 9FBB OUT LOW(31),R25
\ 00000016 8EBB OUT LOW(30),R24
\ 00000018 0DBB OUT LOW(29),R16
\ 0000001A F894 CLI
\ 0000001C 14E0 LDI R17,4
\ 0000001E 1CBB OUT LOW(28),R17
\ 00000020 12E0 LDI R17,2
\ 00000022 1CBB OUT LOW(28),R17
\ 00000024 7894 SEI
\ 00000026 0196 ADIW R24,LWRD(1)
53 for (addr=0; addr<512; addr++){ _EEPUT_ (addr,eedat)}
\ 00000028 EFCF RJMP ?0011
\ ?0010:
\ 0000002A E2E0 LDI R30,2
\ 0000002C .... RJMP ?EPILOGUE_B2_L09
\ ; addr R24-R25
\ ; eedat R16
E-mail: info@telesys.ru