Исправлен момент загрузки, чтоб CAN не подтягивался к единице.

This commit is contained in:
Dimas 2025-12-08 18:12:58 +03:00
parent 644ccb6a10
commit abb5ddf76b
12 changed files with 1029 additions and 1000 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -12,7 +12,7 @@ PHYSICAL MEMORY PARAMETERS
BOOT LOADER PARAMETERS
Table Type: SERIAL PORT (SCI 8 bit Mode)
Entry Point: 0x0000b753
Entry Point: 0x0000b7f1
OUTPUT TRANSLATION MAP
@ -21,9 +21,9 @@ OUTPUT TRANSLATION MAP
--------------------------------------------------------------------------------
OUTPUT FILES: D:\project2833\GIT\Balsam_166\bin\UKSSTMS320F28335.bin [b0..b7]
CONTENTS: 00000000..00007979 BOOT TABLE
.cinit : dest=0000b8e3 size=00000262 width=00000002
.text : dest=00008000 size=000038e3 width=00000002
CONTENTS: 00000000..00007ab5 BOOT TABLE
.cinit : dest=0000b981 size=00000262 width=00000002
.text : dest=00008000 size=00003981 width=00000002
ramfuncs : dest=0000c15d size=00000023 width=00000002
.econst : dest=0000c000 size=00000112 width=00000002
.switch : dest=0000c112 size=00000028 width=00000002

Binary file not shown.

View File

@ -222,18 +222,19 @@ void InitXintf16Gpio()
GpioCtrlRegs.GPCMUX2.bit.GPIO85 = 3; // XA13
GpioCtrlRegs.GPCMUX2.bit.GPIO86 = 3; // XA14
GpioCtrlRegs.GPCMUX2.bit.GPIO87 = 3; // XA15
GpioCtrlRegs.GPBMUX1.bit.GPIO39 = 3; // XA16
GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 3; // XA17
GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 3; // XA18
GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 3; // XA19
GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 3; // XREADY
GpioCtrlRegs.GPBMUX1.bit.GPIO39 = 3; // XA16
// GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 3; // XA17
// GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 3; // XA18
// GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 3; // XA19
// GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 3; // XREADY
GpioCtrlRegs.GPBMUX1.bit.GPIO35 = 3; // XRNW
GpioCtrlRegs.GPBMUX1.bit.GPIO38 = 3; // XWE0
GpioCtrlRegs.GPBMUX1.bit.GPIO36 = 3; // XZCS0
// GpioCtrlRegs.GPBMUX1.bit.GPIO36 = 3; // XZCS0
GpioCtrlRegs.GPBMUX1.bit.GPIO37 = 3; // XZCS7
GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 3; // XZCS6
// GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 3; // XZCS6
EDIS;
}

View File

@ -3,6 +3,5 @@ void Anal_output(long vrot, long maxx);
void Init_DAC(void);
void Setup_DAC_time(void);
extern unsigned long WAKEpowse;
extern unsigned long IMPowse;
extern unsigned int period_dac, time_dac;

View File

@ -1,7 +1,7 @@
#ifndef PACKAGE
#define PACKAGE
#define BALSAM 164
#define BALSAM 165
#if BALSAM == 166
#define OBOROT REVERSE

View File

@ -3,6 +3,7 @@
extern int Mode,Desk,TermoAD,TermoRS,TermoSW,Kurrent,Kalibro;
void setup_leds_line(void);
void unsetup_leds_line(void);
#define led1_toggle() GpioDataRegs.GPBTOGGLE.bit.GPIO32=1
#define led2_toggle() GpioDataRegs.GPBTOGGLE.bit.GPIO48=1

View File

@ -54,9 +54,11 @@ void main()
IFR = 0x0000;
InitPieVectTable();
init_zone7();
get_Mode();
InitCan(0,Mode);
create_uart_vars(sizeof(CMD_TO_TMS));
setup_uart(COM_1,115200);
setup_uart(COM_2,115200);
@ -73,17 +75,11 @@ void main()
}
led1_off();
led2_off();
unsetup_leds_line();
clear_mem();
get_Mode();
InitCan(0,Mode);
set_cntrl_addr(Mode,16);
timer_Init();
EnableInterrupts();
if(Desk!=dsk_EPLT)
@ -94,7 +90,6 @@ void main()
Init_packMask();
Load_params();
Init_sensors_more();
if(Desk==dsk_LOAD)
@ -159,10 +154,11 @@ void main()
get_Buttons();
if(WAKEpowse) bTermoCal=0;
if(!bTermoCal & presbyt) cSaveParam=1;
presbyt = bTermoCal;
if(Desk==dsk_COMM)
{
if(!bTermoCal & presbyt) cSaveParam=1;
presbyt = bTermoCal;
}
if(Desk==dsk_LOAD)
{

View File

@ -27,10 +27,10 @@ int cal_addr=0;
int period_ready, period_blink;
FLAG chk,sig;
long time_1_5sec, time_5msec, time_5sec;
long time_1_5sec, time_5msec, time_3sec, time_5sec;
int READY = 100;
int WAKE = 5 * ADC_FREQ;
int WAKE = 10 * ADC_FREQ;
long low_count[2] = {0,0};
long err_count[6];
@ -216,6 +216,7 @@ void Init_sensors()
time_1_5sec = (3 * ADC_FREQ) / 2;
time_5msec = (5 * ADC_FREQ) / 1000;
time_3sec = (3 * ADC_FREQ);
time_5sec = (5 * ADC_FREQ);
for(i=0;i<16;i++)
@ -301,12 +302,17 @@ void Init_sensors_more()
{
int i;
for(i=0;i<24;i++) modbus[i] &= NOER;
for(i=0;i<4; i++) zer_count[i] = Zero_lev[i];
if(Desk==dsk_LOAD)
for(i=0;i<4;i++)
for(i=0;i<24;i++)
{
modbus[i] &= NOER;
sens_data[i]=0;
}
for(i=0;i<4;i++)
{
zer_count[i] = Zero_lev[i];
if(Desk==dsk_LOAD)
if(sens_type[i]==VOLTAGE)
{
if(i&1) sens_data[i]=560;
@ -462,9 +468,12 @@ modbus[0x64+chan] = Numb;
if(Amplitude<75) Amplitude = 0;
Level = Amplitude / RADIX2;
sens_data[sens ] = Amplitude;
sens_data[sens-1] = Level;
if(!WAKE)
{
sens_data[sens ] = Amplitude;
sens_data[sens-1] = Level;
}
// Äåéñòâóþùåå (ñðåäíåêâàäðàòè÷íîå) çíà÷åíèå òðåòüåé ôàçû
Numb =-Current-aCurrent;
@ -501,15 +510,15 @@ modbus[0x68+fazz+2] = lev_count[thrd];
error.all = 0;
no_ignor = !sens_error[chan].bit.Ignor;
if(er_anal( ((Numb-lev_count[chan])/Numb > 0.2) && (Numb>Curr_Edge),
&err_count[chan],time_1_5sec,0))
if(er_anal( ((Numb-lev_count[chan])/Numb > 0.3) && (Numb>Curr_Edge),
&err_count[chan],time_3sec,0))
{
error.bit.Wry = 1;
error.bit.Stop = no_ignor;
}
if(er_anal( ((Numb-lev_count[thrd])/Numb > 0.2) && (Numb>Curr_Edge),
&err_count[thrd],time_1_5sec,0))
if(er_anal( ((Numb-lev_count[thrd])/Numb > 0.3) && (Numb>Curr_Edge),
&err_count[thrd],time_3sec,0))
{
error.bit.Wry = 1;
error.bit.Stop = no_ignor;
@ -527,7 +536,7 @@ modbus[0x68+fazz+2] = lev_count[thrd];
if(sens_type[chan]==VOLTAGE)
if(er_anal( (Level < sens_lo_edge[sens]),
&low_count[feed],time_1_5sec,0))
&low_count[feed],time_3sec,0))
{
error.bit.Out = 1;
error.bit.Stop = no_ignor;
@ -545,11 +554,11 @@ modbus[0x68+fazz+2] = lev_count[thrd];
error.bit.Over = 1;
} }
if(chan==1)
if((chan==1)||(chan==3))
if(error.all)
if(!no_write)
{
Test_mem_limit(10);
Test_mem_limit(12);
Log_to_mem(Current);
Log_to_mem(aCurrent);
@ -561,10 +570,11 @@ Log_to_mem(lev_count[thrd]);
Log_to_mem(Amplitude);
Log_to_mem(Level);
Log_to_mem(Zero_lev[chan]);
Log_to_mem(Curr_Edge);
Log_to_mem(error.all);
Log_to_mem(WAKE);
}

View File

@ -137,7 +137,7 @@ void Load_params()
crc = get_crc16(param,ANSWER_LEN);
if( (crc==param[ANSWER_LEN]) &&
(crc !=0xFFFF) &&
(Mode == param[126]) )
(Mode == param[126]))
{
for(i=0;i<ANSWER_LEN;i++) modbus[i] = param[i];
Commands=0;
@ -149,7 +149,7 @@ void Load_params()
Save_params();
if(Desk == dsk_COMM)
{
cTermoCal =1;
cTermoCal = 1;
Caliber_time = 0xFFFF;
} } }

View File

@ -14,8 +14,15 @@ int Mode,Desk,TermoAD=0,TermoRS=0,TermoSW=0,Kurrent=0,Kalibro=0;
long INcount0=0,INcount1=0;
LONGE DigErr;
int MUX_GPIO32,MUX_GPIO48,DIR_GPIO32,DIR_GPIO48;
void setup_leds_line()
{
MUX_GPIO32 = GpioCtrlRegs.GPBMUX1.bit.GPIO32;
MUX_GPIO48 = GpioCtrlRegs.GPBMUX2.bit.GPIO48;
DIR_GPIO32 = GpioCtrlRegs.GPBDIR.bit.GPIO32;
DIR_GPIO48 = GpioCtrlRegs.GPBDIR.bit.GPIO48;
EALLOW;
GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 0;
GpioCtrlRegs.GPBMUX2.bit.GPIO48 = 0;
@ -24,6 +31,16 @@ void setup_leds_line()
EDIS;
}
void unsetup_leds_line()
{
EALLOW;
GpioCtrlRegs.GPBMUX1.bit.GPIO32 = MUX_GPIO32;
GpioCtrlRegs.GPBMUX2.bit.GPIO48 = MUX_GPIO48;
GpioCtrlRegs.GPBDIR.bit.GPIO32 = DIR_GPIO32;
GpioCtrlRegs.GPBDIR.bit.GPIO48 = DIR_GPIO48;
EDIS;
}
void get_Mode()
{
EALLOW;
@ -53,15 +70,6 @@ void get_Mode()
if (Mode==adr_PLT3) Desk = dsk_EPLT;
if (Mode==adr_SHKF) Desk = dsk_SHKF;
if(Desk==dsk_LOAD)
{
GpioDataRegs.GPASET.bit.GPIO1=1;
GpioDataRegs.GPASET.bit.GPIO3=1;
GpioDataRegs.GPASET.bit.GPIO7=1;
GpioDataRegs.GPASET.bit.GPIO9=1;
GpioDataRegs.GPBSET.bit.GPIO61=1;
}
if( (Desk==dsk_COMM)||(Desk==dsk_SHKF)||
(Desk==dsk_LOAD) ) Kalibro = 1;
if( (Desk==dsk_COMM)||(Desk==dsk_LOAD)) Kurrent = 1;
@ -70,6 +78,11 @@ void get_Mode()
if( (Desk==dsk_COMM)||(Desk==dsk_BKST)) TermoSW = 2;
if (Desk==dsk_BKSD) TermoSW = 1;
clear_LED_OUT_1();
clear_LED_OUT_2();
clear_RES_OUT_1();
clear_RES_OUT_2();
EALLOW;
switch(Desk)
{
@ -91,7 +104,6 @@ void get_Mode()
case dsk_SHKF: GpioCtrlRegs.GPADIR.all = SHKF_GPADIR;
GpioCtrlRegs.GPBDIR.all = SHKF_GPBDIR; break;
}
EDIS;
}