#include "DSP2833x_Device.h" // DSP281x Headerfile Include File #include "filter_bat2.h" #include "measure.h" #include "RS485.h" #include "message.h" #include "package.h" #include "peripher.h" #include "GPIO_table.h" int Mode,Desk,CanDevAdr,TermoAD=0,TermoRS=0,TermoSW=0; int ExtraCanal[24]; void setup_leds_line() { EALLOW; GpioCtrlRegs.GPBMUX1.bit.GPIO32 = 0; GpioCtrlRegs.GPBMUX2.bit.GPIO48 = 0; GpioCtrlRegs.GPBDIR.bit.GPIO32 = 1; GpioCtrlRegs.GPBDIR.bit.GPIO48 = 1; EDIS; } void get_Mode() { EALLOW; GpioCtrlRegs.GPAMUX1.all &= 0xFF000000; // 00—11 GpioCtrlRegs.GPAMUX2.all &= 0xFF00003F; // 19—27 GpioCtrlRegs.GPBMUX1.all &= 0xFFFFFCC0; // 32—34 GpioCtrlRegs.GPBMUX2.all &= 0x000FF000; // 48—53, 58—63 GpioCtrlRegs.GPADIR.bit.GPIO20 = 0; GpioCtrlRegs.GPADIR.bit.GPIO21 = 0; GpioCtrlRegs.GPADIR.bit.GPIO22 = 0; GpioCtrlRegs.GPBDIR.bit.GPIO51 = 0; EDIS; CanDevAdr = 1 * !GpioDataRegs.GPBDAT.bit.GPIO51; CanDevAdr += 2 * !GpioDataRegs.GPADAT.bit.GPIO22; CanDevAdr += 4 * !GpioDataRegs.GPADAT.bit.GPIO20; CanDevAdr += 8 * !GpioDataRegs.GPADAT.bit.GPIO21; Mode = CanDevAdr + 1; if( (Mode==adr_INV1)||(Mode==adr_INV2)|| (Mode==adr_FLT1)||(Mode==adr_FLT2)) Desk = dsk_COMM; if( (Mode==adr_PLT1)||(Mode==adr_PLT2)) Desk = dsk_PULT; if (Mode==adr_ENG1) Desk = dsk_BKSD; if (Desk==dsk_COMM) { TermoSW = 2; TermoAD = 1;} if (Desk==dsk_BKSD) { TermoSW = 1; TermoRS = 1;} EALLOW; switch(Desk) { case dsk_COMM: GpioCtrlRegs.GPADIR.all = COMM_GPADIR; GpioCtrlRegs.GPBDIR.all = COMM_GPBDIR; break; case dsk_PULT: GpioCtrlRegs.GPADIR.all = PULT_GPADIR; GpioCtrlRegs.GPBDIR.all = PULT_GPBDIR; break; case dsk_BKSD: GpioCtrlRegs.GPADIR.all = BKSD_GPADIR; GpioCtrlRegs.GPBDIR.all = BKSD_GPBDIR; break; } EDIS; buttons = inputs = 0; } void select_tpl_255(void) { if(Desk==dsk_BKSD) { #define BKSD_A_tpl_255 ((1L<<11) + (1L<<9) + (1L<<7) + (1L<<3)) GpioDataRegs.GPACLEAR.all = BKSD_A_tpl_255; } if(Desk==dsk_COMM) { #define COMM_A_tpl_255 ((1L<<27) + (1L<<24) + (1L<<25)) #define COMM_B_tpl_255 ((1L<<(49-32)) + (1L<<(52-32))) GpioDataRegs.GPASET.all = COMM_A_tpl_255; GpioDataRegs.GPBSET.all = COMM_B_tpl_255; } } void select_tpl_canal(int n_tpl) { unsigned long GPIO_A_tpl_set = 0; unsigned long GPIO_B_tpl_set = 0; if(Desk==dsk_BKSD) { if(!(n_tpl&0x01)) GPIO_A_tpl_set|=(1L<<11); if(!(n_tpl&0x02)) GPIO_A_tpl_set|=(1L<<9); if(!(n_tpl&0x04)) GPIO_A_tpl_set|=(1L<<7); if(!(n_tpl&0x08)) GPIO_A_tpl_set|=(1L<<3); GpioDataRegs.GPASET.all = GPIO_A_tpl_set; } if(Desk==dsk_COMM) { if(!(n_tpl&0x01)) GPIO_A_tpl_set|=(1L<<27); if(!(n_tpl&0x02)) GPIO_A_tpl_set|=(1L<<24); if(!(n_tpl&0x04)) GPIO_A_tpl_set|=(1L<<25); if(!(n_tpl&0x08)) GPIO_B_tpl_set|=(1L<<(49-32)); if(!(n_tpl&0x10)) GPIO_B_tpl_set|=(1L<<(52-32)); GpioDataRegs.GPACLEAR.all = GPIO_A_tpl_set; GpioDataRegs.GPBCLEAR.all = GPIO_B_tpl_set; } } void get_Buttons() { unsigned int butt = 0; if(Desk==dsk_BKSD) { if(!GpioDataRegs.GPBDAT.bit.GPIO50) butt +=0x01; if(!GpioDataRegs.GPBDAT.bit.GPIO49) butt +=0x02; buttons = butt; // òåñò è ñåêðåò } if(Desk==dsk_COMM) { if(!GpioDataRegs.GPBDAT.bit.GPIO53) butt +=0x01; if(!GpioDataRegs.GPBDAT.bit.GPIO50) butt +=0x02; buttons = butt << 1; // ñåêðåò è êàëèáð } if(Desk==dsk_PULT) { if(!GpioDataRegs.GPADAT.bit.GPIO27) butt +=0x01; if(!GpioDataRegs.GPADAT.bit.GPIO24) butt +=0x02; if(!GpioDataRegs.GPBDAT.bit.GPIO53) butt +=0x04; if(!GpioDataRegs.GPBDAT.bit.GPIO50) butt +=0x08; if(!GpioDataRegs.GPADAT.bit.GPIO26) butt +=0x10; if(!GpioDataRegs.GPADAT.bit.GPIO23) butt +=0x20; if(!GpioDataRegs.GPBDAT.bit.GPIO52) butt +=0x40; if(!GpioDataRegs.GPBDAT.bit.GPIO49) butt +=0x80; buttons = butt & 1; // òîëüêî òåñò ëàìï } butt += 0x0100 * !GpioDataRegs.GPBDAT.bit.GPIO51; butt += 0x0200 * !GpioDataRegs.GPADAT.bit.GPIO22; butt += 0x0400 * !GpioDataRegs.GPADAT.bit.GPIO20; butt += 0x0800 * !GpioDataRegs.GPADAT.bit.GPIO21; inputs = butt; }