Снижена частота прерываний АЦП (для стабильности)

This commit is contained in:
Dimas 2024-05-30 15:59:56 +03:00
parent 2c4f7289bc
commit d7d8888db6
14 changed files with 1395 additions and 7220 deletions

BIN
Bin/MODUL_SBORKA_UKSS.bin Normal file

Binary file not shown.

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: 0x0000b28b
Entry Point: 0x0000b281
OUTPUT TRANSLATION MAP
@ -21,9 +21,9 @@ OUTPUT TRANSLATION MAP
--------------------------------------------------------------------------------
OUTPUT FILES: D:\project2833\ICE_22220_4\bin\UKSSTMS320F28335.bin [b0..b7]
CONTENTS: 00000000..00006e79 BOOT TABLE
.cinit : dest=0000b401 size=000001cb width=00000002
.text : dest=00008000 size=00003401 width=00000002
CONTENTS: 00000000..00006e65 BOOT TABLE
.cinit : dest=0000b3f7 size=000001cb width=00000002
.text : dest=00008000 size=000033f7 width=00000002
ramfuncs : dest=0000c12e size=0000002b width=00000002
.econst : dest=0000c000 size=00000103 width=00000002
.switch : dest=0000c15a size=00000028 width=00000002

Binary file not shown.

View File

@ -74,7 +74,7 @@ void setup_adc()
AdcRegs.ADCCHSELSEQ3.bit.CONV10 = 0x06;
AdcRegs.ADCCHSELSEQ3.bit.CONV11 = 0x07;
AdcRegs.ADCCHSELSEQ4.bit.CONV12 = 0x0F; // Òîêè-íàïðÿæåíèÿ
AdcRegs.ADCCHSELSEQ4.bit.CONV12 = 0x0F; // Òîêè-íàïðàæåíèà
AdcRegs.ADCCHSELSEQ4.bit.CONV13 = 0x0D;
AdcRegs.ADCCHSELSEQ4.bit.CONV14 = 0x0E;
AdcRegs.ADCCHSELSEQ4.bit.CONV15 = 0x0C;
@ -124,8 +124,6 @@ interrupt void adc_isr(void)
PieCtrlRegs.PIEACK.all = 0xFFFF; // Enable PIE interrupts
EINT;
GpioDataRegs.GPBSET.bit.GPIO58=1;
if(!Read_Log)
if(MAY)
{
@ -159,9 +157,6 @@ GpioDataRegs.GPBSET.bit.GPIO58=1;
chk.all = 0;
} }
GpioDataRegs.GPBCLEAR.bit.GPIO58=1;
// Reinitialize for next ADC sequence
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // Reset SEQ1
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // Clear INT SEQ1 bit

View File

@ -1,4 +1,3 @@
// âãâ
#ifndef _MEASURE
#define _MEASURE
@ -57,7 +56,7 @@ typedef union
#define READY_FREQ 1000 // Ãö
#define BLINK_FREQ 2 // Ãö
#define ADC_FREQ 3000//3125 //3750//5000//3885//777//2000//20000 //777 //3885 // Ãö (777*5)
#define ADC_FREQ 2500 //3000 //3125 //3750 //5000 //3885 // Ãö
#define DAC_FREQ 50 // Ãö
#define LOAD_TIME 10 // sec
@ -68,8 +67,6 @@ typedef union
#define maximum_bright 10
//#define ZERO 27
#define Cooling 5 // (°Ñ) Ãèñòåðåçèñ ïî ñíàòèþ ïåðåãðåâà
#define COSPi6 0.86602540378443864676372317075294

View File

@ -12,7 +12,6 @@ void setup_leds_line(void);
#define led1_on() GpioDataRegs.GPBCLEAR.bit.GPIO32=1
#define led2_on() GpioDataRegs.GPBCLEAR.bit.GPIO48=1
// READY ---------------------------------------------------------
static inline void dat_READY(int x)
{ GpioDataRegs.GPBDAT.bit.GPIO59=!x; }
@ -23,6 +22,67 @@ static inline void clear_READY(void)
static inline void toggle_READY(void)
{ GpioDataRegs.GPBTOGGLE.bit.GPIO59=1;}
// DIOD1 ---------------------------------------------------------
static inline void dat_LED1(int x)
{ GpioDataRegs.GPBDAT.bit.GPIO52=x; }
static inline void set_LED1(void)
{ GpioDataRegs.GPBCLEAR.bit.GPIO52=1; }
static inline void clear_LED1(void)
{ GpioDataRegs.GPBSET.bit.GPIO52=1; }
static inline void toggle_LED1(void)
{ GpioDataRegs.GPBTOGGLE.bit.GPIO52=1;}
// DIOD2 ---------------------------------------------------------
static inline void dat_LED2(int x)
{ GpioDataRegs.GPBDAT.bit.GPIO49=x; }
static inline void set_LED2(void)
{ GpioDataRegs.GPBCLEAR.bit.GPIO49=1; }
static inline void clear_LED2(void)
{ GpioDataRegs.GPBSET.bit.GPIO49=1; }
static inline void toggle_LED2(void)
{ GpioDataRegs.GPBTOGGLE.bit.GPIO49=1;}
// LAMPA1 ---------------------------------------------------------
static inline void dat_LMP1(int x)
{ GpioDataRegs.GPBDAT.bit.GPIO60=!x; }
static inline void set_LMP1(void)
{ GpioDataRegs.GPBCLEAR.bit.GPIO60=1; }
static inline void clear_LMP1(void)
{ GpioDataRegs.GPBSET.bit.GPIO60=1; }
static inline void toggle_LMP1(void)
{ GpioDataRegs.GPBTOGGLE.bit.GPIO60=1;}
// LAMPA2 ---------------------------------------------------------
static inline void dat_LMP2(int x)
{ GpioDataRegs.GPBDAT.bit.GPIO58=!x; }
static inline void set_LMP2(void)
{ GpioDataRegs.GPBCLEAR.bit.GPIO58=1; }
static inline void clear_LMP2(void)
{ GpioDataRegs.GPBSET.bit.GPIO58=1; }
static inline void toggle_LMP2(void)
{ GpioDataRegs.GPBTOGGLE.bit.GPIO58=1;}
// RESERVE1 ---------------------------------------------------------
static inline void dat_RES1(int x)
{ GpioDataRegs.GPBDAT.bit.GPIO62=!x; }
static inline void set_RES1(void)
{ GpioDataRegs.GPBCLEAR.bit.GPIO62=1; }
static inline void clear_RES1(void)
{ GpioDataRegs.GPBSET.bit.GPIO62=1; }
static inline void toggle_RES1(void)
{ GpioDataRegs.GPBTOGGLE.bit.GPIO62=1;}
// RESERVE2 ---------------------------------------------------------
static inline void dat_RES2(int x)
{ GpioDataRegs.GPBDAT.bit.GPIO63=!x; }
static inline void set_RES2(void)
{ GpioDataRegs.GPBCLEAR.bit.GPIO63=1; }
static inline void clear_RES2(void)
{ GpioDataRegs.GPBSET.bit.GPIO63=1; }
static inline void toggle_RES2(void)
{ GpioDataRegs.GPBTOGGLE.bit.GPIO63=1;}
extern WORDE Inputs;
void select_tpl_canal(int n_tpl);

View File

@ -208,11 +208,9 @@ void CAN_send(int Port, int data[], int Addr)
wait=1;
if(Desk==dsk_COMM) GpioDataRegs.GPBTOGGLE.bit.GPIO52=1;
// led1_toggle();
toggle_LED1();
}
void Handlai(volatile struct MBOX * ECanMbox)
{
unsigned int adr;
@ -239,9 +237,7 @@ void Handlai(volatile struct MBOX * ECanMbox)
if(bit[1]) if(adr < ANSWER_LEN) modbus[adr] = Data[1]; adr++;
if(bit[2]) if(adr < ANSWER_LEN) modbus[adr] = Data[2];
if(Desk==dsk_COMM) GpioDataRegs.GPBTOGGLE.bit.GPIO49=1;
else
led2_toggle();
toggle_LED2();
}
interrupt void CANa_handler(void)

View File

@ -75,6 +75,9 @@ interrupt void cpu_timer1_isr_SENS(void)
if(!cReset) ServiceDog();
if((!sig.bit.Error)|(cTestLamp)) toggle_READY();
else set_READY();
if(Read_Log) return;
if(++CanPowse >= CANPOWSE)
@ -83,27 +86,19 @@ interrupt void cpu_timer1_isr_SENS(void)
CanGO = 1;
}
if((!sig.bit.Error)|(cTestLamp)) toggle_READY();
else set_READY();
if(++count_bright >= maximum_bright)
{
count_bright = 0 ;
if(work_lamp) GpioDataRegs.GPBCLEAR.bit.GPIO60=1;
else GpioDataRegs.GPBSET.bit.GPIO60=1;
// if(heat_lamp) GpioDataRegs.GPBCLEAR.bit.GPIO58=1;
// else GpioDataRegs.GPBSET.bit.GPIO58=1;
if(errr_lamp) GpioDataRegs.GPBCLEAR.bit.GPIO62=1;
else GpioDataRegs.GPBSET.bit.GPIO62=1;
dat_LMP1(work_lamp);
dat_LMP2(heat_lamp);
}
if(count_bright == Brightness)
if(!cTestLamp)
{
GpioDataRegs.GPBSET.bit.GPIO60=1;
// GpioDataRegs.GPBSET.bit.GPIO58=1;
GpioDataRegs.GPBSET.bit.GPIO62=1;
clear_LMP1();
clear_LMP2();
}
if(cTestLamp & !preTest)
@ -120,43 +115,32 @@ interrupt void cpu_timer1_isr_SENS(void)
blink_over = (count_mode & 1)?1:0;
blink_alarm = (count_mode & 7)?1:0;
GpioDataRegs.GPBTOGGLE.bit.GPIO63=1;
/* ýòî ÷òîá äîñêó òåñòèòü
if(cTestLamp)
{GpioDataRegs.GPBTOGGLE.bit.GPIO49=1;
toggle_READY();
GpioDataRegs.GPBTOGGLE.bit.GPIO52=1;}
if(cTestLamp){toggle_READY();
toggle_LED1();toggle_LED2();
toggle_RES1();toggle_RES2();}
*/
}
if(cExtLamp)
{
work_lamp = cExtLite;
heat_lamp = cExtLite;
errr_lamp = cExtLite;
}
else if(cTestLamp)
{
work_lamp = blink_over;
heat_lamp = blink_over;
}
else
{
if(cTestLamp)
{
work_lamp = blink_over;
heat_lamp = blink_over;
errr_lamp = blink_over;
}
else
{
if(sig.bit.Error) work_lamp = 0;//blink_over;
// else if(sig.bit.Alarm) work_lamp = blink_alarm;
else work_lamp = 1;
if(sig.bit.OverHeat) heat_lamp = 1;
else if(sig.bit.SubHeat) heat_lamp = blink_over;
else if(sig.bit.OutHeat) heat_lamp = !blink_alarm;
else heat_lamp = 0;
} } }
if(sig.bit.OverHeat)heat_lamp = 1; else
if(sig.bit.SubHeat) heat_lamp = blink_over; else
if(sig.bit.OutHeat) heat_lamp = !blink_alarm; else
heat_lamp = 0;
work_lamp = 1;
} }
void Init_sensors()
{
@ -491,7 +475,7 @@ modbus[0x68+chan] = Numb;
sens_data[sens-1] = Deist;
sens_data[sens] = freq;
// Òðåòüÿ ôàçà äëÿ ïðîâåðîê
// Òðåòüà ôàçà äëà ïðîâåðîê
lev_quadr[thrd] += ((Current+aCurrent)*(Current+aCurrent)-lev_quadr[thrd])/(1.0 * ADC_FREQ);
lev_count[thrd] = sqrt(lev_quadr[thrd]);

View File

@ -3,13 +3,10 @@
#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;
@ -95,11 +92,8 @@ void get_Inputs()
else if(butthurt[1]<MAX_BUTTHURT) butthurt[1]++;
if(butthurt[1]<MAX_BUTTHURT) butt+= 0x02;
if(Mode<adr_INV1)
{
if(!GpioDataRegs.GPADAT.bit.GPIO26) butt += 0x04; // контроль напражениа +24V
if(!GpioDataRegs.GPADAT.bit.GPIO23) butt += 0x08; // контроль напражениа -24V
}
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;

File diff suppressed because it is too large Load Diff

Binary file not shown.