108 lines
2.4 KiB
C
108 lines
2.4 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,Currentoz=0;
|
|
WORDE Inputs;
|
|
|
|
long INcount0=0,INcount1=0;
|
|
|
|
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()
|
|
{
|
|
int i,qua;
|
|
|
|
EALLOW;
|
|
|
|
GpioCtrlRegs.GPAMUX1.all &= 0xFF000000; // 00—11
|
|
GpioCtrlRegs.GPAMUX2.all &= 0xFF00003F; // 19—27
|
|
GpioCtrlRegs.GPBMUX1.all &= 0xFFFFFFC0; // 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;
|
|
|
|
Mode=0;
|
|
|
|
qua=0;
|
|
for(i=0;i<100;i++)
|
|
qua += !GpioDataRegs.GPADAT.bit.GPIO22;
|
|
if(qua>50) Mode += 1;
|
|
|
|
qua=0;
|
|
for(i=0;i<100;i++)
|
|
qua += !GpioDataRegs.GPADAT.bit.GPIO20;
|
|
if(qua>50) Mode += 2;
|
|
|
|
qua=0;
|
|
for(i=0;i<100;i++)
|
|
qua += !GpioDataRegs.GPADAT.bit.GPIO21;
|
|
if(qua>50) Mode += 4;
|
|
|
|
Addrr = Mode*2;
|
|
|
|
Mode+= 1;
|
|
|
|
qua=0;
|
|
for(i=0;i<100;i++)
|
|
qua += !GpioDataRegs.GPBDAT.bit.GPIO51;
|
|
if(qua>50) Addrr += 1;
|
|
|
|
if( (Mode==adr_REC1)||(Mode==adr_REC2)) Currentoz = 1;
|
|
if( (Mode==adr_REC1)||(Mode==adr_REC2)||
|
|
(Mode==adr_INV1)||(Mode==adr_INV2)) Desk = dsk_COMM;
|
|
|
|
EALLOW;
|
|
switch(Desk)
|
|
{
|
|
case dsk_COMM: GpioCtrlRegs.GPADIR.all = COMM_GPADIR;
|
|
GpioCtrlRegs.GPBDIR.all = COMM_GPBDIR; break;
|
|
}
|
|
EDIS;
|
|
}
|
|
|
|
void get_Inputs()
|
|
{
|
|
static long butthurt[2] ={0,0};
|
|
unsigned long butt=0;
|
|
|
|
if(!GpioDataRegs.GPADAT.bit.GPIO7) butthurt[0]=0;
|
|
else if(butthurt[0]<MAX_BUTTHURT) butthurt[0]++;
|
|
if(butthurt[0]<MAX_BUTTHURT) butt = 0x01;
|
|
|
|
if(!GpioDataRegs.GPADAT.bit.GPIO6) butthurt[1]=0;
|
|
else if(butthurt[1]<MAX_BUTTHURT) butthurt[1]++;
|
|
if(butthurt[1]<MAX_BUTTHURT) butt+= 0x02;
|
|
|
|
if(!GpioDataRegs.GPADAT.bit.GPIO26) butt += 0x04; // êîíòðîëü íàïðàæåíèà +24V
|
|
if(!GpioDataRegs.GPADAT.bit.GPIO23) butt += 0x08; // êîíòðîëü íàïðàæåíèà -24V
|
|
|
|
butt += 0x10 * !GpioDataRegs.GPBDAT.bit.GPIO51;
|
|
butt += 0x20 * !GpioDataRegs.GPADAT.bit.GPIO22;
|
|
butt += 0x40 * !GpioDataRegs.GPADAT.bit.GPIO20;
|
|
butt += 0x80 * !GpioDataRegs.GPADAT.bit.GPIO21;
|
|
|
|
Inputs.all = butt;
|
|
|
|
KeyPressed = Inputs;
|
|
}
|
|
|