Compare commits

...
4 Commits
7 changed files with 139 additions and 118 deletions
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 888 KiB

+21
View File
@@ -0,0 +1,21 @@
Перечень элементов
C1 = 1uF 50V (SMD1206)
C2 = 0.1uF 50V (SMD1206)
C3 = 10uF 35V (C)
C4 = 0.1uF 50V (SMD1206)
C5 = 0.1uF 50V (SMD1206)
C6 = 0.01uF 50V (SMD1206)
C7 = 0.01uF 50V (SMD1206)
C8 = 100uF 6V3 (C)
DD1 = ATtiny13A (SO-8)
R1 = 1 (SMD1206)
R2 = 220 (SMD1206)
R3 = 4k7 (SMD1206)
VD1 = 33V 1W (SMD)
VD2 = 5V1 0.5W (SMD)
VR1 = 7805 (D-PAK)
Executable
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Executable
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
+118 -118
View File
@@ -7,175 +7,175 @@
#define OmegaPort PORTB #define OmegaPort PORTB
#define OmegaPINnum PB0 #define OmegaPINnum PB0
#define imp 25 #define imp 25 // Количество импульсов в коде
#define impHi 93 #define impHi 93 // Длительность высокого уровня импульса в микросекундах
#define impLo0 399 #define impLo0 399 // Длительность низкого уровня импульса 3-го типа в микросекундах
#define impLo1 206 #define impLo1 206 // Длительность низкого уровня импульса 2-го типа в микросекундах
#define impLo2 107 #define impLo2 107 // Длительность низкого уровня импульса 1-го типа в микросекундах
const PROGMEM uint8_t code1[imp] = {0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}; const PROGMEM uint8_t code1[imp] = {0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2}; // Комбинация импульсов 1-го кода
const PROGMEM uint8_t code2[imp] = {0,1,2,1,2,2,2,2,2,2,1,1,2,2,2,2,2,1,1,2,1,2,2,2,2}; const PROGMEM uint8_t code2[imp] = {0,1,2,1,2,2,2,2,2,2,1,1,2,2,2,2,2,1,1,2,1,2,2,2,2}; // Комбинация импульсов 2-го кода
const PROGMEM uint8_t code3[imp] = {0,2,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2}; const PROGMEM uint8_t code3[imp] = {0,2,1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2}; // Комбинация импульсов 3-го кода
const PROGMEM uint8_t code4[imp] = {0,2,2,1,1,2,2,2,2,1,2,1,1,2,1,2,2,1,2,2,1,1,1,2,2}; const PROGMEM uint8_t code4[imp] = {0,2,2,1,1,2,2,2,2,1,2,1,1,2,1,2,2,1,2,2,1,1,1,2,2}; // Комбинация импульсов 4-го кода
const PROGMEM uint8_t code5[imp] = {0,1,1,1,2,2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,2,1,2,2}; const PROGMEM uint8_t code5[imp] = {0,1,1,1,2,2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,2,1,2,2}; // Комбинация импульсов 5-го кода
int main(void) int main(void)
{ {
OmegaDDR &= ~(1<<OmegaPINnum); OmegaDDR &= ~(1<<OmegaPINnum); // Порт на вход
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 1
while(1) while(1)
{ {
//******************************************************************* 1 //******************************************************************* Передаем 1-й код
OmegaDDR |= (1<<OmegaPINnum); OmegaDDR |= (1<<OmegaPINnum); // Порт на выход
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_ms(3); _delay_ms(3); // Небольшая пауза
for(uint8_t i = 0; i < imp; i++) for(uint8_t i = 0; i < imp; i++) // Цикл передачи
{ {
if(pgm_read_byte(&code1[i]) == 1) if(pgm_read_byte(&code1[i]) == 1) // Если импульс 1-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo1); _delay_us(impLo1); // Выжидаем длительность низкого уровня импульса 1-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
else if(pgm_read_byte(&code1[i]) == 2) else if(pgm_read_byte(&code1[i]) == 2) // Если импульс 2-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo2); _delay_us(impLo2); // Выжидаем длительность низкого уровня импульса 2-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
else if(pgm_read_byte(&code1[i]) == 0) else if(pgm_read_byte(&code1[i]) == 0) // Если импульс 3-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo0); _delay_us(impLo0); // Выжидаем длительность низкого уровня импульса 3-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
} }
OmegaDDR &= ~(1<<OmegaPINnum); OmegaDDR &= ~(1<<OmegaPINnum); // Порт на вход
_delay_ms(100); _delay_ms(100); // Задержка перед передачей следующего кода
//******************************************************************* 2 //******************************************************************* Передаем 2-й код
OmegaDDR |= (1<<OmegaPINnum); OmegaDDR |= (1<<OmegaPINnum); // Порт на выход
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_ms(3); _delay_ms(3);
for(uint8_t i = 0; i < imp; i++) for(uint8_t i = 0; i < imp; i++) // Цикл передачи
{ {
if(pgm_read_byte(&code2[i]) == 1) if(pgm_read_byte(&code2[i]) == 1) // Если импульс 1-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo1); _delay_us(impLo1); // Выжидаем длительность низкого уровня импульса 1-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
else if(pgm_read_byte(&code2[i]) == 2) else if(pgm_read_byte(&code2[i]) == 2) // Если импульс 2-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo2); _delay_us(impLo2); // Выжидаем длительность низкого уровня импульса 2-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
else if(pgm_read_byte(&code2[i]) == 0) else if(pgm_read_byte(&code2[i]) == 0) // Если импульс 3-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo0); _delay_us(impLo0); // Выжидаем длительность низкого уровня импульса 3-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
} }
OmegaDDR &= ~(1<<OmegaPINnum); OmegaDDR &= ~(1<<OmegaPINnum); // Порт на вход
_delay_ms(100); _delay_ms(100); // Задержка перед передачей следующего кода
//******************************************************************* 3 //******************************************************************* Передаем 3-й код
OmegaDDR |= (1<<OmegaPINnum); OmegaDDR |= (1<<OmegaPINnum); // Порт на выход
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_ms(3); _delay_ms(3);
for(uint8_t i = 0; i < imp; i++) for(uint8_t i = 0; i < imp; i++) // Цикл передачи
{ {
if(pgm_read_byte(&code3[i]) == 1) if(pgm_read_byte(&code3[i]) == 1) // Если импульс 1-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo1); _delay_us(impLo1); // Выжидаем длительность низкого уровня импульса 1-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
else if(pgm_read_byte(&code3[i]) == 2) else if(pgm_read_byte(&code3[i]) == 2) // Если импульс 2-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo2); _delay_us(impLo2); // Выжидаем длительность низкого уровня импульса 2-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
else if(pgm_read_byte(&code3[i]) == 0) else if(pgm_read_byte(&code3[i]) == 0) // Если импульс 3-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo0); _delay_us(impLo0); // Выжидаем длительность низкого уровня импульса 3-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
} }
OmegaDDR &= ~(1<<OmegaPINnum); OmegaDDR &= ~(1<<OmegaPINnum); // Порт на вход
_delay_ms(120); _delay_ms(120); // Задержка перед передачей следующего кода
//******************************************************************* 4 //******************************************************************* Передаем 4-й код
OmegaDDR |= (1<<OmegaPINnum); OmegaDDR |= (1<<OmegaPINnum); // Порт на выход
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_ms(3); _delay_ms(3);
for(uint8_t i = 0; i < imp; i++) for(uint8_t i = 0; i < imp; i++) // Цикл передачи
{ {
if(pgm_read_byte(&code4[i]) == 1) if(pgm_read_byte(&code4[i]) == 1) // Если импульс 1-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo1); _delay_us(impLo1); // Выжидаем длительность низкого уровня импульса 1-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
else if(pgm_read_byte(&code4[i]) == 2) else if(pgm_read_byte(&code4[i]) == 2) // Если импульс 2-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo2); _delay_us(impLo2); // Выжидаем длительность низкого уровня импульса 2-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
else if(pgm_read_byte(&code4[i]) == 0) else if(pgm_read_byte(&code4[i]) == 0) // Если импульс 3-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo0); _delay_us(impLo0); // Выжидаем длительность низкого уровня импульса 3-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
} }
OmegaDDR &= ~(1<<OmegaPINnum); OmegaDDR &= ~(1<<OmegaPINnum); // Порт на вход
_delay_ms(200); _delay_ms(200); // Задержка перед передачей следующего кода
//******************************************************************* 5 //******************************************************************* Передаем 5-й код
OmegaDDR |= (1<<OmegaPINnum); OmegaDDR |= (1<<OmegaPINnum); // Порт на выход
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_ms(3); _delay_ms(3);
for(uint8_t i = 0; i < imp; i++) for(uint8_t i = 0; i < imp; i++) // Цикл передачи
{ {
if(pgm_read_byte(&code5[i]) == 1) if(pgm_read_byte(&code5[i]) == 1) // Если импульс 1-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo1); _delay_us(impLo1); // Выжидаем длительность низкого уровня импульса 1-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
else if(pgm_read_byte(&code5[i]) == 2) else if(pgm_read_byte(&code5[i]) == 2) // Если импульс 2-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo2); _delay_us(impLo2); // Выжидаем длительность низкого уровня импульса 2-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
else if(pgm_read_byte(&code5[i]) == 0) else if(pgm_read_byte(&code5[i]) == 0) // Если импульс 3-го типа
{ {
OmegaPort &= ~(1<<OmegaPINnum); OmegaPort &= ~(1<<OmegaPINnum); // Порт в лог 0
_delay_us(impLo0); _delay_us(impLo0); // Выжидаем длительность низкого уровня импульса 3-го типа
OmegaPort |= (1<<OmegaPINnum); OmegaPort |= (1<<OmegaPINnum); // Порт в лог 1
_delay_us(impHi); _delay_us(impHi); // Выжидаем длительность высокого уровня импульса
} }
} }
OmegaDDR &= ~(1<<OmegaPINnum); OmegaDDR &= ~(1<<OmegaPINnum); // Порт на вход
_delay_ms(200); _delay_ms(200); // Задержка перед новым циклом
} }
} }