Добавлена Data Stru

This commit is contained in:
Dimas 2021-11-30 17:58:35 +03:00
parent e7b5a84588
commit d35c66f00d
6 changed files with 21 additions and 101 deletions

Binary file not shown.

View File

@ -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

View File

@ -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.
//===========================================================================

View File

@ -154,7 +154,6 @@ void main()
calc_temper_koef();
}
get_Buttons();
if(WAKEpowse) bTermoCal=0;

View File

@ -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];

View File

@ -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;