diff --git a/Doc/Balsam 165 data stru.xls b/Doc/Balsam 165 data stru.xls new file mode 100644 index 0000000..d50315b Binary files /dev/null and b/Doc/Balsam 165 data stru.xls differ diff --git a/Source/Internal/Include/package.h b/Source/Internal/Include/package.h index 986042a..18af18b 100644 --- a/Source/Internal/Include/package.h +++ b/Source/Internal/Include/package.h @@ -113,13 +113,14 @@ #define cTermoCal Modbus[127].bit.bit4 #define cKoefCalc Modbus[127].bit.bit5 -#define cSecretBt Modbus[127].bit.bit6 #define cUMPreset Modbus[127].bit.bit6 #define cUMPstart Modbus[127].bit.bit7 #define cInitDac Modbus[127].bit.bit8 #define cCalibrDac Modbus[127].bit.bit9 +#define cSecretBt Modbus[127].bit.bitA + /* #define cUMPstart Modbus[127].bit.bit8 #define cUMPreset Modbus[127].bit.bit9 diff --git a/Source/Internal/ecan.c b/Source/Internal/ecan.c index 8bc42ad..a5972eb 100644 --- a/Source/Internal/ecan.c +++ b/Source/Internal/ecan.c @@ -11,7 +11,6 @@ #include "RS485.h" #include "message.h" - // Prototype statements for functions found within this file. interrupt void CANa_handler(void); interrupt void CANa_reset_err(void); @@ -50,26 +49,13 @@ void InitCan(int Port, int DevNum) // Configure CAN pins using GPIO regs here EALLOW; -// if(!Port) - { - ECanRegs = &ECanaRegs; - ECanMboxes = &ECanaMboxes; - ECanMOTORegs = &ECanaMOTORegs; + ECanRegs = &ECanaRegs; + ECanMboxes = &ECanaMboxes; + ECanMOTORegs = &ECanaMOTORegs; - GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 1; - GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 1; - } -#ifdef TUBER - else - { - ECanRegs = &ECanbRegs; - ECanMboxes = &ECanbMboxes; - ECanMOTORegs = &ECanbMOTORegs; + GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 1; + GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 1; - GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 2; - GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 2; - } -#endif // Configure the eCAN RX and TX pins for eCAN transmissions ECanRegs->CANTIOC.all = 8; // only 3rd bit, TXFUNC, is significant ECanRegs->CANRIOC.all = 8; // only 3rd bit, RXFUNC, is significant @@ -148,23 +134,12 @@ void InitCan(int Port, int DevNum) ECanShadow.CANGIM.bit.GIL = 1; ECanRegs->CANGIM.all = ECanShadow.CANGIM.all; -// if(!Port) - { - PieVectTable.ECAN0INTA = &CANa_handler; - PieCtrlRegs.PIEIER9.bit.INTx5=1; // PIE Group 9, INT6 - PieVectTable.ECAN1INTA = &CANa_reset_err; - PieCtrlRegs.PIEIER9.bit.INTx6=1; // PIE Group 9, INT6 - } -#ifdef TUBER - else - { - PieVectTable.ECAN0INTB = &CANb_handler; - PieCtrlRegs.PIEIER9.bit.INTx7=1; // PIE Group 9, INT6 - PieVectTable.ECAN1INTB = &CANb_reset_err; - PieCtrlRegs.PIEIER9.bit.INTx8=1; // PIE Group 9, INT6 - } -#endif - IER |= M_INT9; // Enable CPU INT + PieVectTable.ECAN0INTA = &CANa_handler; + PieCtrlRegs.PIEIER9.bit.INTx5=1; // PIE Group 9, INT6 + PieVectTable.ECAN1INTA = &CANa_reset_err; + PieCtrlRegs.PIEIER9.bit.INTx6=1; // PIE Group 9, INT6 + + IER |= M_INT9; // Enable CPU INT EDIS; @@ -182,19 +157,8 @@ void CAN_send(int Port, int data[], int Addr) volatile struct ECAN_REGS * ECanRegs; volatile struct ECAN_MBOXES * ECanMboxes; -// if(!Port) - { - ECanRegs = &ECanaRegs; - ECanMboxes = &ECanaMboxes; - } -#ifdef TUBER - else - { - ECanRegs = &ECanbRegs; - ECanMboxes = &ECanbMboxes; - - } -#endif + ECanRegs = &ECanaRegs; + ECanMboxes = &ECanaMboxes; if(wait) if(!(ECanRegs->CANTA.all & 1)) @@ -293,49 +257,6 @@ interrupt void CANa_reset_err(void) PieCtrlRegs.PIEIER9.all = TempPIEIER; } -interrupt void CANb_handler(void) -{ -#ifdef TUBER - // Set interrupt priority: - volatile Uint16 TempPIEIER = PieCtrlRegs.PIEIER9.all; - IER |= M_INT9; - IER &= MINT9; // Set "global" priority - PieCtrlRegs.PIEIER9.all &= MG97; // Set "group" priority - PieCtrlRegs.PIEACK.all = 0xFFFF; // Enable PIE interrupts - EINT; - - Handlai(&ECanbMboxes); - - ECanbRegs.CANRMP.all = 2; - PieCtrlRegs.PIEACK.bit.ACK9 |= 1; - // Restore registers saved: - DINT; - PieCtrlRegs.PIEIER9.all = TempPIEIER; -#endif -} - -interrupt void CANb_reset_err(void) -{ -#ifdef TUBER - // Set interrupt priority: - volatile Uint16 TempPIEIER = PieCtrlRegs.PIEIER9.all; - IER |= M_INT9; - IER &= MINT9; // Set "global" priority - PieCtrlRegs.PIEIER9.all &= MG98; // Set "group" priority - PieCtrlRegs.PIEACK.all = 0xFFFF; // Enable PIE interrupts - EINT; - - ECanbRegs.CANTRR.all = 1; - CanTimeOutErrorTR++; - - PieCtrlRegs.PIEACK.bit.ACK9 |= 1; - - // Restore registers saved: - DINT; - PieCtrlRegs.PIEIER9.all = TempPIEIER; -#endif -} - //=========================================================================== // No more. //=========================================================================== diff --git a/Source/Internal/main.c b/Source/Internal/main.c index 473f85f..a84e752 100644 --- a/Source/Internal/main.c +++ b/Source/Internal/main.c @@ -154,7 +154,6 @@ void main() calc_temper_koef(); } - get_Buttons(); if(WAKEpowse) bTermoCal=0; diff --git a/Source/Internal/measure.c b/Source/Internal/measure.c index bd962fe..4fbe3a5 100644 --- a/Source/Internal/measure.c +++ b/Source/Internal/measure.c @@ -128,7 +128,6 @@ interrupt void cpu_timer1_isr_SENS(void) CanPowse = 0; CanGO = 1; } - TST = cTestLamp;//|bTestLamp; if(!sig.bit.Error|TST) toggle_READY(); @@ -507,7 +506,7 @@ modbus[0x64+chan]=Numb; // if(Desk == dsk_COMM) // if(ist) Current = -Current; - lev_count[chan] += (fabs(Current)-lev_count[chan])/1000.0; + lev_count[chan] += (fabs(Current)-lev_count[chan])/(ADC_FREQ/5); // Запомним if(ist) @@ -524,7 +523,7 @@ modbus[0x64+chan]=Numb; if((sens_type[chan]==CURRENT)||(Desk==dsk_COMM)) { - ffLev += (fLev-ffLev)/1000.0; + ffLev += (fLev-ffLev)/(ADC_FREQ/5); modbus[sens+DATASTART-1] = ffLev; } else @@ -536,7 +535,7 @@ modbus[0x64+chan]=Numb; if(Desk==dsk_COMM) Numb = Current-aCurrent; else Numb =-Current-aCurrent; - lev_count[thrd] += (fabs(Numb)-lev_count[thrd])/1000.0; + lev_count[thrd] += (fabs(Numb)-lev_count[thrd])/(ADC_FREQ/5); Modbus[0x68 + (chan >>1)*3 + 0].all = lev_count[chan]; Modbus[0x68 + (chan >>1)*3 + 1].all = lev_count[pair]; diff --git a/Source/Internal/peripher.c b/Source/Internal/peripher.c index 3694345..e8259e5 100644 --- a/Source/Internal/peripher.c +++ b/Source/Internal/peripher.c @@ -32,10 +32,10 @@ void get_Mode() Mode=1; - if(!GpioDataRegs.GPBDAT.bit.GPIO51) Mode += 8; - if(!GpioDataRegs.GPADAT.bit.GPIO22) Mode += 4; - if(!GpioDataRegs.GPADAT.bit.GPIO20) Mode += 2; if(!GpioDataRegs.GPADAT.bit.GPIO21) Mode += 1; + if(!GpioDataRegs.GPADAT.bit.GPIO20) Mode += 2; + if(!GpioDataRegs.GPADAT.bit.GPIO22) Mode += 4; + if(!GpioDataRegs.GPBDAT.bit.GPIO51) Mode += 8; if( (Mode==adr_POW1)||(Mode==adr_POW2)|| (Mode==adr_LOA1)||(Mode==adr_LOA2) ) Currentoz = 1;