Добавлена Data Stru
This commit is contained in:
parent
e7b5a84588
commit
d35c66f00d
BIN
Doc/Balsam 165 data stru.xls
Normal file
BIN
Doc/Balsam 165 data stru.xls
Normal file
Binary file not shown.
@ -113,13 +113,14 @@
|
|||||||
|
|
||||||
#define cTermoCal Modbus[127].bit.bit4
|
#define cTermoCal Modbus[127].bit.bit4
|
||||||
#define cKoefCalc Modbus[127].bit.bit5
|
#define cKoefCalc Modbus[127].bit.bit5
|
||||||
#define cSecretBt Modbus[127].bit.bit6
|
|
||||||
|
|
||||||
#define cUMPreset Modbus[127].bit.bit6
|
#define cUMPreset Modbus[127].bit.bit6
|
||||||
#define cUMPstart Modbus[127].bit.bit7
|
#define cUMPstart Modbus[127].bit.bit7
|
||||||
#define cInitDac Modbus[127].bit.bit8
|
#define cInitDac Modbus[127].bit.bit8
|
||||||
#define cCalibrDac Modbus[127].bit.bit9
|
#define cCalibrDac Modbus[127].bit.bit9
|
||||||
|
|
||||||
|
#define cSecretBt Modbus[127].bit.bitA
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#define cUMPstart Modbus[127].bit.bit8
|
#define cUMPstart Modbus[127].bit.bit8
|
||||||
#define cUMPreset Modbus[127].bit.bit9
|
#define cUMPreset Modbus[127].bit.bit9
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
#include "RS485.h"
|
#include "RS485.h"
|
||||||
#include "message.h"
|
#include "message.h"
|
||||||
|
|
||||||
|
|
||||||
// Prototype statements for functions found within this file.
|
// Prototype statements for functions found within this file.
|
||||||
interrupt void CANa_handler(void);
|
interrupt void CANa_handler(void);
|
||||||
interrupt void CANa_reset_err(void);
|
interrupt void CANa_reset_err(void);
|
||||||
@ -50,26 +49,13 @@ void InitCan(int Port, int DevNum)
|
|||||||
// Configure CAN pins using GPIO regs here
|
// Configure CAN pins using GPIO regs here
|
||||||
EALLOW;
|
EALLOW;
|
||||||
|
|
||||||
// if(!Port)
|
ECanRegs = &ECanaRegs;
|
||||||
{
|
ECanMboxes = &ECanaMboxes;
|
||||||
ECanRegs = &ECanaRegs;
|
ECanMOTORegs = &ECanaMOTORegs;
|
||||||
ECanMboxes = &ECanaMboxes;
|
|
||||||
ECanMOTORegs = &ECanaMOTORegs;
|
|
||||||
|
|
||||||
GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 1;
|
GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 1;
|
||||||
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 1;
|
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 1;
|
||||||
}
|
|
||||||
#ifdef TUBER
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ECanRegs = &ECanbRegs;
|
|
||||||
ECanMboxes = &ECanbMboxes;
|
|
||||||
ECanMOTORegs = &ECanbMOTORegs;
|
|
||||||
|
|
||||||
GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 2;
|
|
||||||
GpioCtrlRegs.GPAMUX1.bit.GPIO13 = 2;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
// Configure the eCAN RX and TX pins for eCAN transmissions
|
// Configure the eCAN RX and TX pins for eCAN transmissions
|
||||||
ECanRegs->CANTIOC.all = 8; // only 3rd bit, TXFUNC, is significant
|
ECanRegs->CANTIOC.all = 8; // only 3rd bit, TXFUNC, is significant
|
||||||
ECanRegs->CANRIOC.all = 8; // only 3rd bit, RXFUNC, 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;
|
ECanShadow.CANGIM.bit.GIL = 1;
|
||||||
ECanRegs->CANGIM.all = ECanShadow.CANGIM.all;
|
ECanRegs->CANGIM.all = ECanShadow.CANGIM.all;
|
||||||
|
|
||||||
// if(!Port)
|
PieVectTable.ECAN0INTA = &CANa_handler;
|
||||||
{
|
PieCtrlRegs.PIEIER9.bit.INTx5=1; // PIE Group 9, INT6
|
||||||
PieVectTable.ECAN0INTA = &CANa_handler;
|
PieVectTable.ECAN1INTA = &CANa_reset_err;
|
||||||
PieCtrlRegs.PIEIER9.bit.INTx5=1; // PIE Group 9, INT6
|
PieCtrlRegs.PIEIER9.bit.INTx6=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
|
||||||
}
|
|
||||||
#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
|
|
||||||
|
|
||||||
EDIS;
|
EDIS;
|
||||||
|
|
||||||
@ -182,19 +157,8 @@ void CAN_send(int Port, int data[], int Addr)
|
|||||||
volatile struct ECAN_REGS * ECanRegs;
|
volatile struct ECAN_REGS * ECanRegs;
|
||||||
volatile struct ECAN_MBOXES * ECanMboxes;
|
volatile struct ECAN_MBOXES * ECanMboxes;
|
||||||
|
|
||||||
// if(!Port)
|
ECanRegs = &ECanaRegs;
|
||||||
{
|
ECanMboxes = &ECanaMboxes;
|
||||||
ECanRegs = &ECanaRegs;
|
|
||||||
ECanMboxes = &ECanaMboxes;
|
|
||||||
}
|
|
||||||
#ifdef TUBER
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ECanRegs = &ECanbRegs;
|
|
||||||
ECanMboxes = &ECanbMboxes;
|
|
||||||
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if(wait)
|
if(wait)
|
||||||
if(!(ECanRegs->CANTA.all & 1))
|
if(!(ECanRegs->CANTA.all & 1))
|
||||||
@ -293,49 +257,6 @@ interrupt void CANa_reset_err(void)
|
|||||||
PieCtrlRegs.PIEIER9.all = TempPIEIER;
|
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.
|
// No more.
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
@ -154,7 +154,6 @@ void main()
|
|||||||
calc_temper_koef();
|
calc_temper_koef();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
get_Buttons();
|
get_Buttons();
|
||||||
|
|
||||||
if(WAKEpowse) bTermoCal=0;
|
if(WAKEpowse) bTermoCal=0;
|
||||||
|
@ -128,7 +128,6 @@ interrupt void cpu_timer1_isr_SENS(void)
|
|||||||
CanPowse = 0; CanGO = 1;
|
CanPowse = 0; CanGO = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TST = cTestLamp;//|bTestLamp;
|
TST = cTestLamp;//|bTestLamp;
|
||||||
|
|
||||||
if(!sig.bit.Error|TST) toggle_READY();
|
if(!sig.bit.Error|TST) toggle_READY();
|
||||||
@ -507,7 +506,7 @@ modbus[0x64+chan]=Numb;
|
|||||||
// if(Desk == dsk_COMM)
|
// if(Desk == dsk_COMM)
|
||||||
// if(ist) Current = -Current;
|
// 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)
|
if(ist)
|
||||||
@ -524,7 +523,7 @@ modbus[0x64+chan]=Numb;
|
|||||||
|
|
||||||
if((sens_type[chan]==CURRENT)||(Desk==dsk_COMM))
|
if((sens_type[chan]==CURRENT)||(Desk==dsk_COMM))
|
||||||
{
|
{
|
||||||
ffLev += (fLev-ffLev)/1000.0;
|
ffLev += (fLev-ffLev)/(ADC_FREQ/5);
|
||||||
modbus[sens+DATASTART-1] = ffLev;
|
modbus[sens+DATASTART-1] = ffLev;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -536,7 +535,7 @@ modbus[0x64+chan]=Numb;
|
|||||||
if(Desk==dsk_COMM) Numb = Current-aCurrent;
|
if(Desk==dsk_COMM) Numb = Current-aCurrent;
|
||||||
else 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 + 0].all = lev_count[chan];
|
||||||
Modbus[0x68 + (chan >>1)*3 + 1].all = lev_count[pair];
|
Modbus[0x68 + (chan >>1)*3 + 1].all = lev_count[pair];
|
||||||
|
@ -32,10 +32,10 @@ void get_Mode()
|
|||||||
|
|
||||||
Mode=1;
|
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.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)||
|
if( (Mode==adr_POW1)||(Mode==adr_POW2)||
|
||||||
(Mode==adr_LOA1)||(Mode==adr_LOA2) ) Currentoz = 1;
|
(Mode==adr_LOA1)||(Mode==adr_LOA2) ) Currentoz = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user