Устранено выставление высокого уровня на линиях CAN при перезагрузке
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
extern int Mode,Desk,CanDevAdr,TermoAD,TermoRS,TermoSW;
|
||||
|
||||
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
|
||||
@@ -56,6 +57,33 @@ static inline void clear_LED_OUT_2(void)
|
||||
else GpioDataRegs.GPBSET.bit.GPIO63=1; }
|
||||
static inline void toggle_LED_OUT_2(void)
|
||||
{ GpioDataRegs.GPBTOGGLE.bit.GPIO63=1;}
|
||||
// RES OUT 1 -----------------------------------------------------
|
||||
static inline void dat_RES_OUT_1(int x)
|
||||
{
|
||||
if(Desk==dsk_BKSD) GpioDataRegs.GPBDAT.bit.GPIO62=!x; else
|
||||
GpioDataRegs.GPBDAT.bit.GPIO58=!x; }
|
||||
static inline void set_RES_OUT_1(void)
|
||||
{
|
||||
if(Desk==dsk_BKSD) GpioDataRegs.GPBCLEAR.bit.GPIO62=1; else
|
||||
GpioDataRegs.GPBCLEAR.bit.GPIO58=1; }
|
||||
static inline void clear_RES_OUT_1(void)
|
||||
{
|
||||
if(Desk==dsk_BKSD) GpioDataRegs.GPBSET.bit.GPIO62=1; else
|
||||
GpioDataRegs.GPBSET.bit.GPIO58=1; }
|
||||
static inline void toggle_RES_OUT_1(void)
|
||||
{
|
||||
if(Desk==dsk_BKSD) GpioDataRegs.GPBTOGGLE.bit.GPIO62=1;else
|
||||
GpioDataRegs.GPBTOGGLE.bit.GPIO58=1;}
|
||||
|
||||
// RES OUT 2 -----------------------------------------------------
|
||||
static inline void dat_RES_OUT_2(int x)
|
||||
{ GpioDataRegs.GPBDAT.bit.GPIO61=x; }
|
||||
static inline void set_RES_OUT_2(void)
|
||||
{ GpioDataRegs.GPBCLEAR.bit.GPIO61=1; }
|
||||
static inline void clear_RES_OUT_2(void)
|
||||
{ GpioDataRegs.GPBSET.bit.GPIO61=1; }
|
||||
static inline void toggle_RES_OUT_2(void)
|
||||
{ GpioDataRegs.GPBTOGGLE.bit.GPIO61=1;}
|
||||
|
||||
extern int ExtraCanal[];
|
||||
void select_tpl_canal(int n_tpl);
|
||||
|
||||
@@ -78,6 +78,13 @@ void main()
|
||||
|
||||
init_zone7();
|
||||
|
||||
get_Mode();
|
||||
InitCan(0,CanDevAdr);
|
||||
create_uart_vars(sizeof(CMD_TO_TMS));
|
||||
setup_uart(COM_1,115200);
|
||||
setup_uart(COM_2,115200);
|
||||
InitSeeprom();
|
||||
|
||||
setup_leds_line();
|
||||
led1_on();
|
||||
led2_off();
|
||||
@@ -89,17 +96,12 @@ void main()
|
||||
}
|
||||
led1_off();
|
||||
led2_off();
|
||||
unsetup_leds_line();
|
||||
|
||||
get_Mode();
|
||||
|
||||
set_cntrl_addr(Mode,16);
|
||||
create_uart_vars(sizeof(CMD_TO_TMS));
|
||||
setup_uart(COM_1,115200);
|
||||
setup_uart(COM_2,115200);
|
||||
InitSeeprom();
|
||||
InitCan(0,CanDevAdr);
|
||||
timer_Init();
|
||||
clear_mem();
|
||||
set_cntrl_addr(Mode,16);
|
||||
timer_Init();
|
||||
EnableInterrupts();
|
||||
|
||||
if(Desk!=dsk_PULT)
|
||||
{
|
||||
@@ -107,7 +109,6 @@ void main()
|
||||
}
|
||||
Init_sensors();
|
||||
|
||||
EnableInterrupts();
|
||||
|
||||
Load_params();
|
||||
|
||||
|
||||
@@ -11,9 +11,15 @@
|
||||
|
||||
int Mode,Desk,CanDevAdr,TermoAD=0,TermoRS=0,TermoSW=0;
|
||||
int ExtraCanal[24];
|
||||
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;
|
||||
@@ -22,13 +28,23 @@ 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;
|
||||
|
||||
GpioCtrlRegs.GPAMUX1.all &= 0xFF000000; // 00—11
|
||||
GpioCtrlRegs.GPAMUX2.all &= 0xFF00003F; // 19—27
|
||||
GpioCtrlRegs.GPBMUX1.all &= 0xFFFFFCC0; // 32<EFBFBD>34
|
||||
GpioCtrlRegs.GPBMUX1.all &= 0xFFFFFFC0; // 32—34
|
||||
GpioCtrlRegs.GPBMUX2.all &= 0x000FF000; // 48—53, 58—63
|
||||
|
||||
GpioCtrlRegs.GPADIR.bit.GPIO20 = 0;
|
||||
@@ -53,6 +69,11 @@ void get_Mode()
|
||||
if (Desk==dsk_COMM) { TermoSW = 2; TermoAD = 1;}
|
||||
if (Desk==dsk_BKSD) { TermoSW = 1; TermoRS = 1;}
|
||||
|
||||
clear_LED_OUT_1();
|
||||
clear_LED_OUT_2();
|
||||
clear_RES_OUT_1();
|
||||
clear_RES_OUT_2();
|
||||
|
||||
EALLOW;
|
||||
switch(Desk)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user