161 lines
3.9 KiB
C
161 lines
3.9 KiB
C
#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,Addrr,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;
|
|
|
|
Addrr = 1 * !GpioDataRegs.GPBDAT.bit.GPIO51;
|
|
Addrr += 2 * !GpioDataRegs.GPADAT.bit.GPIO22;
|
|
Addrr += 4 * !GpioDataRegs.GPADAT.bit.GPIO20;
|
|
Addrr += 8 * !GpioDataRegs.GPADAT.bit.GPIO21;
|
|
|
|
Mode = Addrr + 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;
|
|
}
|
|
|
|
|