Created
September 16, 2014 12:37
-
-
Save romasvrd/851ea3c12bed808d0601 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Kernel includes. */ | |
#include "FreeRTOS.h" | |
#include "task.h" | |
/* UDP demo includes. */ | |
#include "UDPCommandInterpreter.h" | |
#include "TwoEchoClients.h" | |
/* FreeRTOS+UDP sockets include */ | |
#include "FreeRTOS_sockets.h" | |
#include "timers.h" | |
#include "twi.h" | |
#include "task.h" | |
#define RELE_MCP_ADDR 0x32 | |
#define RELE_MCP_GPIOA 0x12 | |
#define RELE_MCP_GPIOB 0x13 | |
uint8_t rele_buffera=0x00; | |
uint8_t rele_bufferb=0x00; | |
static twi_packet_t rele_packeta; | |
static twi_packet_t rele_packetb; | |
int i=0; | |
//rele_buffera[0]; | |
char data1[16]; | |
char data2[16]; | |
void adc_timer_isact (void); | |
//void adc_timer_current (void); | |
extern uint8_t time_flag; | |
extern uint32_t logic_dp,logic_emp; | |
int rele_3_ready_1 (void); | |
int rele_3_ready_2 (void); | |
int rele_4_ready_1 (void); | |
int rele_8_ready_1(void); | |
int rele_deact(void); | |
extern TimerHandle_t xTimer_current; | |
int check_flag=1; | |
/* Misc. */ | |
#define mainDONT_BLOCK ( 0 ) | |
int rele(int check, int pt) | |
{ | |
rele_flag=0; | |
nosendflag=0; | |
float value_mid; | |
rele_packeta.addr[0]=RELE_MCP_GPIOA; | |
rele_packeta.addr_length=1; | |
rele_packeta.buffer=rele_buffera; | |
rele_packeta.chip=RELE_MCP_ADDR; | |
rele_packeta.length=1; | |
uint8_t rele_bufferb=0x00; | |
//rele_bufferb[0]=0x00; | |
rele_packetb.addr[0]=RELE_MCP_GPIOB; | |
rele_packetb.addr_length=1; | |
rele_packetb.buffer=rele_bufferb; | |
rele_packetb.chip=RELE_MCP_ADDR; | |
rele_packetb.length=1; | |
int rele_mcp_status=twi_probe(TWI0,RELE_MCP_ADDR); | |
//if (rele_mcp_status!=TWI_SUCCESS) return 1; | |
switch(check) | |
{ | |
case 0: //всякая деактивация и перекоммутация в середине этапа | |
{ | |
if(pt==91||pt==92||pt==93) | |
{ | |
//3. Остановка работы синтезатора частоты | |
return 0; | |
} | |
if(pt==51) | |
{ | |
//активация модуля Амперметр | |
rele_buffera=0b00001010; | |
rele_bufferb=0b00001000; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
} | |
if(pt==52) | |
{ | |
//активация модуля Амперметр | |
rele_buffera=0b00001010; | |
rele_bufferb=0b00001010; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
} | |
if(pt==53) | |
{ | |
//активация модуля Амперметр | |
rele_buffera=0b00001011; | |
rele_bufferb=0b00001110; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
} | |
if(pt==54) | |
{ | |
//активация модуля Амперметр | |
rele_buffera=0b00001011; | |
rele_bufferb=0b00001100; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
} | |
if(pt==63) | |
{ | |
//1.6) Подключение модуля В-DC к Гн5 – Гн14 | |
rele_bufferb=0b00001001; | |
twi_master_write(TWI0,&rele_packetb); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.7) Активация модуля B-DC | |
rele_buffera=0b00000100; | |
twi_master_write(TWI0,&rele_packeta); | |
} | |
if(pt==65) | |
{ | |
//1.5) Деактивация модуля В-DC | |
rele_buffera=0b00010000; | |
twi_master_write(TWI0,&rele_packeta); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.6) Подключение модуля В-DC к Гн3 – Гн14 | |
rele_buffera=0b00000000; | |
twi_master_write(TWI0,&rele_packeta); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.7) Активация модуля В-DC | |
rele_buffera=0b00000100; | |
twi_master_write(TWI0,&rele_packeta); | |
} | |
if(pt==101||pt==102||pt==112) | |
{ | |
rele_0(); | |
return 0; | |
} | |
if(pt==111) | |
{ | |
rele_buffera=0b00010000; | |
rele_bufferb=0b01000000; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
return 0; | |
} | |
adc_id=1;//каким ацп будем мерять | |
adc_timer();//меряем напряжение | |
nosendflag=1; | |
return 0; | |
} | |
case 2: | |
{ | |
if(pt==1) | |
{ | |
//1.1) Установка модуля В-DC в режим 1 | |
ioport_set_pin_level(PIN_RELE1,IOPORT_PIN_LEVEL_LOW); | |
//1.2) Подключение модуля В-DC к гнездам Гн1 – Гн14 | |
rele_0(); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.3) Активация модуля В-DC | |
rele_buffera=0b00000100; | |
twi_master_write(TWI0,&rele_packeta); | |
return 0; | |
} | |
else if (pt==2) | |
{ | |
//1.1) Установка модуля В-DC в режим 1 | |
ioport_set_pin_level(PIN_RELE1,IOPORT_PIN_LEVEL_LOW); | |
//1.2) Подключение модуля В-DC к гнездам Гн1 – Гн14 | |
rele_buffera=0b00000001; | |
twi_master_write(TWI0,&rele_packeta); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.3) Активация модуля В-DC | |
rele_buffera=0b00000101; //Активация модуля В-DC | |
twi_master_write(TWI0,&rele_packeta); | |
return 0; | |
} | |
} | |
case 3: | |
{ | |
if(pt==1) | |
{ | |
//1.1) Установка модуля В-АC в режим 2. | |
ioport_set_pin_level(PIN_RELE2,IOPORT_PIN_LEVEL_LOW); | |
//1.2) Подключение модуля В-АС к гнёздам Гн2-Гн14 | |
rele_0(); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.3) Активация модуля В-АC i=0; | |
rele_buffera=0b00000010; | |
twi_master_write(TWI0,&rele_packeta); | |
} | |
else if (pt==2) | |
{ | |
//1.1) Установка модуля В-АC в режим 1. | |
ioport_set_pin_level(PIN_RELE2,IOPORT_PIN_LEVEL_HIGH); | |
//1.2) Подключение модуля В-АС к гнёздам Гн2-Гн14 | |
rele_0(); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) //задержка ~10мс, для правильного переключения реле | |
{ | |
}; | |
i=0; | |
//1.3) Активация модуля В-АC | |
rele_buffera=0b00000010; | |
twi_master_write(TWI0,&rele_packeta); | |
} | |
//1.4) Измерение амплитуды сигнала управления | |
adc_id=1;//каким ацп будем мерять | |
adc_timer();//меряем напряжение | |
return 0; | |
//когда напряжение будет измерено, таймер вызовет продолжение проверки (функция ниже) | |
} | |
case 4: | |
{ | |
//1.1) Подключение модуля В-DC в режиме прямого включения к гнездам Гн17 – Гн14 | |
rele_buffera=0b00000001; | |
twi_master_write(TWI0,&rele_packeta); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
ioport_toggle_pin_level(PIN_RELE1); | |
//1.2) Активация модуля В-DC | |
rele_buffera=0b00100001; | |
twi_master_write(TWI0,&rele_packeta); | |
//1.3) Измерение значения напряжения управления U1 | |
adc_id=1;//каким ацп будем мерять | |
adc_timer();//меряем напряжение | |
return 0; | |
} | |
case 5: | |
{ | |
switch(pt) | |
{ | |
case 1: | |
{ | |
//1.1) Установка модуля В-АC в режим 2. | |
ioport_set_pin_level(PIN_RELE2,IOPORT_PIN_LEVEL_LOW); | |
//1.2) Подключение модуля В-АC к гнездам Гн7 – Гн14 | |
rele_bufferb=0b00001000; | |
twi_master_write(TWI0,&rele_packetb); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.3) Активация модуля В-АC | |
rele_buffera=0b00000100; | |
twi_master_write(TWI0,&rele_packeta); | |
//1.4) Подключение модуля Амперметр к гнездам Гн1 – Гн19 | |
break; | |
} | |
case 2: | |
{ | |
//1.9) Подключение модуля Амперметр к гнездам Гн1-Гн6 | |
rele_buffera=0b00000010; | |
twi_master_write(TWI0,&rele_packeta); | |
rele_bufferb=0b00001010; | |
twi_master_write(TWI0,&rele_packeta); | |
break; | |
} | |
case 3: | |
{ | |
//1.1) Установка модуля В-АC в режим 2. | |
ioport_set_pin_level(PIN_RELE2,IOPORT_PIN_LEVEL_LOW); | |
//1.2) Подключение модуля В-АC к гнездам Гн8 – Гн14 | |
rele_buffera=0x00; | |
twi_master_write(TWI0,&rele_packeta); | |
rele_bufferb=0b00001100; | |
twi_master_write(TWI0,&rele_packeta); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.3) Активация модуля В-АС | |
rele_buffera=0b00000010; | |
twi_master_write(TWI0,&rele_packeta); | |
rele_bufferb=0b00001100; | |
twi_master_write(TWI0,&rele_packeta); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.3) Активация модуля В-АС | |
rele_buffera=0b00000011; | |
twi_master_write(TWI0,&rele_packeta); | |
rele_bufferb=0b00001100; | |
twi_master_write(TWI0,&rele_packeta); | |
break; | |
} | |
case 4: | |
{ | |
//1.9) Подключение модуля Амперметр к гнездам Гн4-Гн6 | |
rele_buffera=0b00000011; | |
twi_master_write(TWI0,&rele_packeta); | |
rele_bufferb=0b00001110; | |
twi_master_write(TWI0,&rele_packeta); | |
break; | |
} | |
} | |
//1.6) Отслеживание появления колебаний на Гн7-Гн14 | |
//1.11) Отслеживание пропадания колебаний на Гн7-Гн14 | |
if( xTimer_current != NULL ) | |
{ | |
xTimerStart( xTimer_current, mainDONT_BLOCK ); | |
/* The callback function that inspects the status of all the other tasks. */ | |
} | |
return 0; | |
} | |
case 6: | |
{ | |
switch(pt) | |
{ | |
case 1: | |
{ | |
//1.1) Установка модуля В-DC в режим 1 | |
ioport_set_pin_level(PIN_RELE1,IOPORT_PIN_LEVEL_LOW); | |
//1.2) Подключение модуля В-DC в режиме 1 к гнездам Гн3 – Гн14 | |
rele_bufferb=0b00000001; | |
twi_master_write(TWI0,&rele_packetb); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.3) Активация модуля В-DC | |
rele_buffera=0b00000100; | |
twi_master_write(TWI0,&rele_packetb); | |
//1.4) Установление минимального напряжения на Гн3-Гн14 | |
break; | |
} | |
case 2: | |
{ | |
//1.1) Установка модуля В-DC в режим 1 | |
ioport_set_pin_level(PIN_RELE1,IOPORT_PIN_LEVEL_LOW); | |
//1.6) Подключение модуля В-DC к гнездам Гн5-Гн14 | |
rele_buffera=0b00001001; | |
twi_master_write(TWI0,&rele_packetb); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.7) Активация модуля В-DC | |
rele_bufferb=0b00000100; | |
twi_master_write(TWI0,&rele_packetb); | |
//1.8) Установление минимального напряжения на Гн5-Гн14 | |
break; | |
} | |
case 3: | |
{ | |
//1.1) Установка В-DC в режим 1 | |
ioport_set_pin_level(PIN_RELE1,IOPORT_PIN_LEVEL_LOW); | |
//1.2) Подключение модуля В-DC к Гн9 – Гн20, | |
rele_buffera=0b00010000; | |
twi_master_write(TWI0,&rele_packetb); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.3) Активация модуля В-DC | |
rele_buffera=0b00010100; | |
twi_master_write(TWI0,&rele_packetb); | |
//1.4) Отследить появление перепада на Гн9-Гн20, определение Верхнего порога срабатывания БКУ | |
break; | |
} | |
case 4: | |
{ | |
//1.9) Установить минимальное напряжение на Гн5-Гн14 | |
} | |
case 5: | |
{ | |
//1.1) Установка В-DC в режим 1 | |
ioport_set_pin_level(PIN_RELE1,IOPORT_PIN_LEVEL_LOW); | |
//1.2) Подключение модуля В-DC к Гн10 – Гн20, | |
rele_buffera=0b00010000; | |
rele_bufferb=0b00000001; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.3) Активация модуля В-DC | |
rele_buffera=0b00010100; | |
twi_master_write(TWI0,&rele_packetb); | |
//1.4) Отследить появление перепада на Гн10-Гн20, определение Верхнего порога срабатывания БКУ | |
break; | |
} | |
} | |
if( xTimer_current != NULL ) | |
{ | |
xTimerStart( xTimer_current, mainDONT_BLOCK ); | |
/* The callback function that inspects the status of all the other tasks. */ | |
} | |
return 0; | |
} | |
case 7: | |
{ | |
if (pt==1) | |
{ | |
//1.1) Установка модулей В-АС и В-DC в режим 2. | |
ioport_set_pin_level(PIN_RELE1,IOPORT_PIN_LEVEL_HIGH); | |
ioport_set_pin_level(PIN_RELE2,IOPORT_PIN_LEVEL_LOW); | |
//1.2) Подключение модуля В-АС к гнездам Гн11-Гн20, подключение модуля В-DC к гнездам Гн12-Гн14. | |
rele_buffera=0b00000000; | |
rele_bufferb=0b00000010; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
} | |
if (pt==7) | |
{ | |
//1.1) Установка модулей В-АС и В-DC в режим 2. | |
ioport_set_pin_level(PIN_RELE1,IOPORT_PIN_LEVEL_HIGH); | |
ioport_set_pin_level(PIN_RELE2,IOPORT_PIN_LEVEL_LOW); | |
//1.2) Подключение модуля В-АС к гнездам Гн13-Гн20, подключение модуля В-DC к гнездам Гн12-Гн14. | |
rele_buffera=0b00000000; | |
rele_bufferb=0b00000110; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
} | |
if(pt==1||pt==3||pt==5) | |
{ | |
//1.3) Активация модулей В-АС и В-DC | |
rele_buffera=0b01000010; | |
rele_bufferb=0b00000010; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
} | |
if(pt==7||pt==9||pt==11) | |
{ | |
//1.3) Активация модулей В-АС и В-DC | |
rele_buffera=0b01000010; | |
rele_bufferb=0b00000110; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
for (i;i<5000;i++) //задержка ~10мс, для правильного переключения реле | |
{ | |
}; | |
i=0; | |
} | |
if(pt==2||pt==4||pt==6||pt==8||pt==10||pt==12) | |
{ | |
} | |
if( xTimer_current != NULL ) | |
{ | |
xTimerStart( xTimer_current, mainDONT_BLOCK ); | |
/* The callback function that inspects the status of all the other tasks. */ | |
} | |
return 0; | |
} | |
case 8: | |
{ | |
//1.1) Подключение модуля В-DC к гнездам Гн15 – Гн14 | |
rele_0(); | |
//1.2) Активация модуля B-DC | |
rele_buffera=0b00100000; | |
twi_master_write(TWI0,&rele_packeta); | |
for (i;i<5000;i++) //задержка ~10мс, для правильного переключения реле | |
{ | |
}; | |
i=0; | |
//1.3) Измерить напряжение Uоп+ | |
adc_id=1;//каким ацп будем мерять | |
adc_timer();//меряем напряжение | |
return 0; | |
} | |
case 9: | |
{ | |
int freq_out=0; | |
//1. Настройка синтезатора частоты | |
//Форма сигнала: Синусоидальная | |
//Опорная частота: 10 МГц | |
if(pt==1) freq_out=1000; | |
if(pt==2) freq_out=900; | |
if(pt==3) freq_out=1010; | |
//2. Запуск генерации частоты | |
return 0; | |
} | |
case 10: | |
{ | |
//1. Подключение модуля В-DC в режиме прямого включения к гнездам +/-ТОК ЛАМПЫ | |
rele_0(); | |
//2. Активация модуля В-DC в режиме прямого включения | |
rele_buffera=0b00100000; | |
twi_master_write(TWI0,&rele_packeta); | |
//3. Измерение напряжения на гнездах +/-ТОК ЛАМПЫ | |
if( xTimer_current != NULL ) | |
{ | |
xTimerStart( xTimer_current, mainDONT_BLOCK ); | |
/* The callback function that inspects the status of all the other tasks. */ | |
} | |
return 0; | |
} | |
case 11: | |
{ | |
//1. Подключение модуля В-DC в режиме прямого включения к гнездам +/-ТОК НАСОСА | |
rele_buffera=0b00010000; | |
rele_bufferb=0b01000000; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
//2. Активация модуля В-DC в режиме прямого включения | |
rele_buffera=0b00110000; | |
twi_master_write(TWI0,&rele_packeta); | |
//3. Измерение напряжения на гнездах +/-ТОК НАСОСА | |
if( xTimer_current != NULL ) | |
{ | |
xTimerStart( xTimer_current, mainDONT_BLOCK ); | |
/* The callback function that inspects the status of all the other tasks. */ | |
} | |
return 0; | |
} | |
case 12: | |
{ | |
//запуск таймеркаунтера | |
time_flag=0; | |
logic_dp=0; | |
logic_emp=0; | |
tc_start(TC0,0); | |
return 0; | |
} | |
case 61: | |
{ | |
if(pt==-1||pt==-2||pt==-3||pt==-4) | |
{ | |
//1) Установка модуля В-DC в режим 1 | |
ioport_set_pin_level(PIN_RELE1,IOPORT_PIN_LEVEL_LOW); | |
//2) Подключение модуля В-DC в режиме 1 к гнездам ТО-СрТ | |
rele_0(); | |
//3) Активация модуля В-DC | |
rele_buffera=0b00000100; | |
twi_master_write(TWI0,&rele_packeta); | |
//4) Замер напряжения и вывод результата на экран | |
} | |
if(pt==-5||pt==-6||pt==-7||pt==-8) | |
{ | |
//1) Подключение модуля В-DC в режиме прямого включения к гнездам ТО-СрТ | |
rele_buffera=0b00000001; | |
twi_master_write(TWI0,&rele_packeta); | |
for (i;i<5000;i++) //задержка ~10мс, для правильного переключения реле | |
{ | |
}; | |
i=0; | |
//2) Активация модуля В-DC | |
rele_buffera=0b00100001; | |
twi_master_write(TWI0,&rele_packeta); | |
} | |
if(pt==-9||pt==-10||pt==-11||pt==-12) | |
{ | |
//1) Подключение модуля В-DC в режиме прямого включения к гнездам ТО-СрТ | |
rele_buffera=0b00000001; | |
rele_bufferb=0b01000000; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
for (i;i<5000;i++) //задержка ~10мс, для правильного переключения реле | |
{ | |
}; | |
i=0; | |
//2) Активация модуля В-DC | |
rele_buffera=0b00100001; | |
twi_master_write(TWI0,&rele_packeta); | |
} | |
adc_id=1; | |
adc_timer(); | |
return 0; | |
} | |
case 91: | |
{ | |
// Определение частоты мигания индикатора ГЕН. | |
return 0; | |
} | |
case 100: | |
{ | |
if(pt==1) | |
{ | |
//1) Сброс регистров управления в начальное состояние | |
rele_0(); | |
//2) Соединение ТО-ДУ | |
rele_bufferb=0b00100000; | |
twi_master_write(TWI0,&rele_packetb); | |
} | |
if(pt==2) | |
{ | |
//1) Сброс регистров управления в начальное состояние | |
rele_0(); | |
} | |
return 0; | |
} | |
} | |
} | |
int rele_0 (void) | |
{ | |
rele_buffera=0x00; | |
rele_bufferb=0x00; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
for (i;i<5000;i++) //задержка ~10мс, для правильного переключения реле | |
{ | |
}; | |
i=0; | |
return 0; | |
} | |
void adc_timer_current(void) | |
{ | |
adc_id=1; | |
adc_read(); | |
} | |
int rele_3_ready_1 (void) | |
{ | |
//1.5) Деактивация модуля В-АС | |
rele_0(); | |
//отправляем инфу о напряжении | |
FreeRTOS_sendto( xxxSocket, "voltage\r\n", strlen("voltage\r\n"), 0, &xClient2, xClientAddressLength ); | |
sprintf (data1,"%d.%d\r\n",1, 3);//value_int,value_res | |
FreeRTOS_sendto( xxxSocket, data1, strlen(data1), 0, &xClient2, xClientAddressLength ); | |
//1.6) Установка модуля Частотомер в режим 2 | |
if(pt==1)ioport_set_pin_level(PIN_RELE3,IOPORT_PIN_LEVEL_LOW); | |
if(pt==2)ioport_set_pin_level(PIN_RELE3,IOPORT_PIN_LEVEL_HIGH); | |
//1.7) Активация модуля частотомер | |
rele_bufferb=0b00010000; | |
twi_master_write(TWI0,&rele_packetb); | |
//1.8) Измерение частоты | |
tc_enum=0; | |
tc1sec(); | |
return 0; | |
} | |
int rele_3_ready_2 (void) | |
{ | |
//отправляем инфу о частоте | |
FreeRTOS_sendto( xxxSocket, "frequency\r\n", strlen("frequency\r\n"), 0, &xClient2, xClientAddressLength ); | |
sprintf (data2,"%d.%d\r\n",4, 5);//value_int,value_res | |
FreeRTOS_sendto( xxxSocket, data2, strlen(data2), 0, &xClient2, xClientAddressLength ); | |
//1.9) Деактивация модуля Частотомера | |
rele_0(); | |
memset(data1,NULL,strlen(data1)); | |
memset(data2,NULL,strlen(data2)); | |
return 0; | |
} | |
int rele_4_ready_1 (void) | |
{ | |
if(rele_flag==0) | |
{ | |
sprintf (data1,"%d.%d\r\n",value_int, value_res); | |
FreeRTOS_sendto( xxxSocket, "u1\r\n", strlen("u1\r\n"), 0, &xClient2, xClientAddressLength ); | |
FreeRTOS_sendto( xxxSocket, data1, strlen(data1), 0, &xClient2, xClientAddressLength ); | |
//1.4) Деактивация модуля В-DC | |
rele_buffera=0b00000001; | |
twi_master_write(TWI0,&rele_packeta); | |
//1.5) Подключение модуля В-DC к гнездам Гн18 – Гн14 | |
rele_bufferb=0b01000000; | |
twi_master_write(TWI0,&rele_packetb); | |
//задержка ~10мс, для правильного переключения реле | |
for (i;i<5000;i++) | |
{ | |
}; | |
i=0; | |
//1.7) Активация модуля В-DC | |
rele_buffera=0b00100001; | |
twi_master_write(TWI0,&rele_packetb); | |
//1.8) Измерение значения напряжения управления U2 | |
adc_id=1;//каким ацп будем мерять | |
adc_timer();//меряем напряжение | |
rele_flag=1; | |
} | |
else | |
{ | |
sprintf (data2,"%d.%d\r\n",value_int, value_res); | |
FreeRTOS_sendto( xxxSocket, "u2\r\n", strlen("u2\r\n"), 0, &xClient2, xClientAddressLength ); | |
FreeRTOS_sendto( xxxSocket, data2, strlen(data2), 0, &xClient2, xClientAddressLength ); | |
//1.8) Деактивация модуля В-DC | |
rele_0(); | |
rele_flag=0; | |
} | |
return 0; | |
} | |
int rele_8_ready_1(void) | |
{ | |
if(rele_flag==0) | |
{ | |
sprintf (data1,"%d.%d\r\n",value_int, value_res); | |
FreeRTOS_sendto( xxxSocket, "u1\r\n", strlen("u1\r\n"), 0, &xClient2, xClientAddressLength ); | |
FreeRTOS_sendto( xxxSocket, data1, strlen(data1), 0, &xClient2, xClientAddressLength ); | |
//1.5) Деактивация модуля В-DC | |
rele_0; | |
//1.6) Подключение модуля В-DC к гнездам Гн16-Гн14 | |
rele_bufferb=0b01000000; | |
twi_master_write(TWI0,&rele_packetb); | |
for (i;i<5000;i++) //задержка ~10мс, для правильного переключения реле | |
{ | |
}; | |
i=0; | |
//1.7) Активация модуля В-DC | |
rele_buffera=0b00100000; | |
twi_master_write(TWI0,&rele_packeta); | |
//1.8) Измерить напряжение Uоп- | |
adc_id=1;//каким ацп будем мерять | |
adc_timer();//меряем напряжение | |
rele_flag=1; | |
} | |
else | |
{ | |
sprintf (data2,"%d.%d\r\n",value_int+3, value_res+24); | |
FreeRTOS_sendto( xxxSocket, "u2\r\n", strlen("u2\r\n"), 0, &xClient2, xClientAddressLength ); | |
FreeRTOS_sendto( xxxSocket, data2, strlen(data2), 0, &xClient2, xClientAddressLength ); | |
rele_0();//1.9) Деактивация модуля В-DC | |
rele_flag=0; | |
return 0; | |
} | |
} | |
//всякая деактивация | |
int rele_deact (void) | |
{ | |
if(pt==51) | |
{ | |
//1.8) Деактивация модуля Амперметр | |
rele_buffera=0b00000010; | |
rele_bufferb=0b00001000; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
FreeRTOS_sendto( xxxSocket, "rele switched\r\n", strlen("rele switched\r\n"), 0, &xClient2, xClientAddressLength ); | |
} | |
if(pt==52) | |
{ | |
//1.8) Деактивация модуля Амперметр | |
rele_buffera=0b00000000; | |
rele_bufferb=0b00001000; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
FreeRTOS_sendto( xxxSocket, "rele switched\r\n", strlen("rele switched\r\n"), 0, &xClient2, xClientAddressLength ); | |
} | |
if(pt==53) | |
{ | |
//1.8) Деактивация модуля Амперметр | |
rele_buffera=0b00000011; | |
rele_bufferb=0b00001100; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
FreeRTOS_sendto( xxxSocket, "rele switched\r\n", strlen("rele switched\r\n"), 0, &xClient2, xClientAddressLength ); | |
} | |
if(pt==54) | |
{ | |
//1.8) Деактивация модуля Амперметр | |
rele_0(); | |
FreeRTOS_sendto( xxxSocket, "rele switched\r\n", strlen("rele switched\r\n"), 0, &xClient2, xClientAddressLength ); | |
} | |
if(pt==61) | |
{ | |
//1.5) Деактивация модуля В-DC | |
rele_buffera=0b00000000; | |
rele_bufferb=0b00000001; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
FreeRTOS_sendto( xxxSocket, "rele switched\r\n", strlen("rele switched\r\n"), 0, &xClient2, xClientAddressLength ); | |
} | |
if(pt==62) | |
{ | |
//1.9) Деактивация модуля В-DC | |
rele_0(); | |
FreeRTOS_sendto(xxxSocket,"rele switched\r\n",strlen("rele switched\r\n"),0,&xClient2,xClientAddressLength); | |
} | |
if(pt==63) | |
{ | |
//1.5) Деактивация модуля В-DC | |
rele_0(); | |
FreeRTOS_sendto(xxxSocket,"rele switched\r\n",strlen("rele switched\r\n"),0,&xClient2,xClientAddressLength); | |
} | |
if(pt==64) | |
{ | |
//1.6) Деактивация модуля В-DC | |
rele_0(); | |
FreeRTOS_sendto(xxxSocket,"rele switched\r\n",strlen("rele switched\r\n"),0,&xClient2,xClientAddressLength); | |
} | |
if (pt==65) | |
{ | |
//1.9) Деактивация модуля В-DC | |
rele_0(); | |
FreeRTOS_sendto(xxxSocket,"rele switched\r\n",strlen("rele switched\r\n"),0,&xClient2,xClientAddressLength); | |
} | |
if(pt==71||pt==73||pt==75||pt==77||pt==79||pt==81) | |
{ | |
FreeRTOS_sendto(xxxSocket,"rele switched\r\n",strlen("rele switched\r\n"),0,&xClient2,xClientAddressLength); | |
} | |
if(pt==72||pt==74) | |
{ | |
rele_buffera=0b00000000; | |
rele_bufferb=0b00000010; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
FreeRTOS_sendto(xxxSocket,"rele switched\r\n",strlen("rele switched\r\n"),0,&xClient2,xClientAddressLength); | |
return 0; | |
} | |
if (pt==78||pt==80) | |
{ | |
rele_buffera=0b00000000; | |
rele_bufferb=0b00000110; | |
twi_master_write(TWI0,&rele_packeta); | |
twi_master_write(TWI0,&rele_packetb); | |
FreeRTOS_sendto(xxxSocket,"rele switched\r\n",strlen("rele switched\r\n"),0,&xClient2,xClientAddressLength); | |
return 0; | |
} | |
if(pt==76||pt==82) | |
{ | |
rele_0(); | |
FreeRTOS_sendto(xxxSocket,"rele switched\r\n",strlen("rele switched\r\n"),0,&xClient2,xClientAddressLength); | |
return 0; | |
} | |
if(pt==-1||pt==-2||pt==-3||pt==-4) | |
{ | |
rele_0(); | |
FreeRTOS_sendto(xxxSocket,"rele switched\r\n",strlen("rele switched\r\n"),0,&xClient2,xClientAddressLength); | |
return 0; | |
} | |
if(pt==-5||pt==-6||pt==-7||pt==-8||pt==-9||pt==-10||pt==-11||pt==-12) | |
{ | |
rele_buffera=0b00000001; | |
twi_master_write(TWI0,&rele_buffera); | |
FreeRTOS_sendto(xxxSocket,"rele switched\r\n",strlen("rele switched\r\n"),0,&xClient2,xClientAddressLength); | |
return 0; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment