1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
--- a/tpic.cc
+++ b/tpic.cc
@@ -438,13 +438,15 @@ TRegister TPic::Read(TData_Address addr)
TBool Page1 = Bit_Read(Regs.STATUS,STATUS_RP0);
if (addr == 0x00)
- if( (addr = Regs.FSR) == 0x00 )
- return 0x00;
- else
- {
- Page1 = (addr & 0x80) != 0x00;
- addr &= 0x7F;
- }
+ {
+ if( (addr = Regs.FSR) == 0x00 )
+ return 0x00;
+ else
+ {
+ Page1 = (addr & 0x80) != 0x00;
+ addr &= 0x7F;
+ }
+ }
switch (addr)
{
@@ -575,26 +577,28 @@ void TPic::Write(TData_Address addr, TRe
break;
case 0x07: break;
- case f_EEDATA: if (Page1) {
+
+ case f_EEDATA:
+ if (Page1) {
- if (Bit_Read(Regs.EECON1,EECON1_WREN) == 0)
- data=Bit_Clear(data,EECON1_WR);
+ if (Bit_Read(Regs.EECON1,EECON1_WREN) == 0)
+ data=Bit_Clear(data,EECON1_WR);
- if (Bit_Read(data,EECON1_WR) && (EEPROM_Write_Status==-1)) {
- EEPROM_Write_Data=Regs.EEDATA;
- EEPROM_Write_Addr=Regs.EEADR;
- EEPROM_Write_Status=(unsigned long int) (0.010*(Clock_Frequency/4.0)); /* 10ms */
- }
-
- if (Bit_Read(data,EECON1_RD)) {
- Regs.EEDATA=EEPROM.Mem[Regs.EEADR & 0x7F];
- data=Bit_Clear(data,EECON1_RD);
- }
- Regs.EECON1=data & 0x1F;
- }
- else
- Regs.EEDATA=data;
- break;
+ if (Bit_Read(data,EECON1_WR) && (EEPROM_Write_Status==-1)) {
+ EEPROM_Write_Data=Regs.EEDATA;
+ EEPROM_Write_Addr=Regs.EEADR;
+ EEPROM_Write_Status=(unsigned long int) (0.010*(Clock_Frequency/4.0)); /* 10ms */
+ }
+
+ if (Bit_Read(data,EECON1_RD)) {
+ Regs.EEDATA=EEPROM.Mem[Regs.EEADR & 0x7F];
+ data=Bit_Clear(data,EECON1_RD);
+ }
+ Regs.EECON1=data & 0x1F;
+ }
+ else
+ Regs.EEDATA=data;
+ break;
case f_EEADR:
if (Page1) {
@@ -926,10 +930,12 @@ void TPic::Clock()
Reset=FALSE;
if (WDT_Fuse && Update_WDT())
+ {
if (Sleep)
Reset_WDT_Sleep();
else
Reset_WDT_Normal();
+ }
if (Sleep && (INT_Event() || RB_Change_Event() || (EEPROM_Write_Status==1)))
Reset_Int_Wake_Up();
|