-
Notifications
You must be signed in to change notification settings - Fork 0
/
termopump.h
110 lines (79 loc) · 2.87 KB
/
termopump.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#pragma once
// Конфиг библиотек. Вместо подключения параметров через -D в строке параметров. Этот файл подключен в проект через -include
#define F_CPU 8000000u
#define F_TICK 250uL // частота системных тиков
#define TICK_US(n) (uint16_t)(1e-6 * (n) * F_TICK + 0.5)
#define TICK_MS(n) (uint16_t)(1e-3 * (n) * F_TICK + 0.5)
#define TICK_SEC(n) (uint16_t)( 1.0 * (n) * F_TICK + 0.5)
#ifdef DEBUG
#define T_SCRSVR TICK_SEC(15) // SCReen SaVer
#define T_DEFSCR TICK_SEC(5)
#define T_ADJUSTMENT TICK_SEC(3)
#define T_SAVE TICK_SEC(5)
#else
#define T_SCRSVR TICK_SEC(180)
#define T_DEFSCR TICK_SEC(15)
#define T_ADJUSTMENT TICK_SEC(600)
#define T_SAVE TICK_SEC(5)
#endif
#define USE_TX_LOG
#define BAUD 9600
#include "ss.lib/avr-ss.h"
#include "ss.lib/func.h"
#include <util/delay.h>
#include <avr/eeprom.h>
#include <avr/builtins.h>
#include <avr/wdt.h>
#include <util/setbaud.h>
#define QT_TASK_COUNT 5
#include "ss.lib/queuetask.h"
#define S7_SET S7_0, S7_1, S7_2, S7_3, S7_4, S7_5, S7_6, S7_7, S7_8, S7_9, S7_A, S7_b, S7_C, S7_d, S7_E, S7_F, \
S7_SPACE, S7_MINUS, S7_t, S7_L
#define ZG_SPACE 0x10
#define ZG_d 0xd
#define ZG_MINUS (ZG_SPACE + 1)
#define ZG_t (ZG_MINUS + 1)
#define ZG_L (ZG_t + 1)
#define S7_SEG_A 7
#define S7_SEG_B 0
#define S7_SEG_C 2
#define S7_SEG_D 4
#define S7_SEG_E 5
#define S7_SEG_F 6
#define S7_SEG_G 1
#define S7_SEG_P 3
// порт разрядов индикатора
#define LED_Z_PORT PORTD
// порязрядные маски пинов для массива (будет вставлено в массив const u8 PROGMEM ledZ[] = {LED_Z_SET}; )
#define LED_Z_SET bv(PD6), bv(PD4), bv(PD5)
// маска для всех пинов
#define LED_Z_MASK (bv(PD6)|bv(PD4)|bv(PD5))
// порт сегментов индикатора (тут же и кнопки)
#define LED_SEG_PORT PORTB
// пины чтения кнопок
#define LED_BT_PIN_MASK 0x07
// общее заземление кнопок (маска пина)
#define LED_BT_COMMON_MASK 0x80
#define BTN_SET TBTN_1
#define BTN_MINUS TBTN_2
#define BTN_PLUS TBTN_0
// биты кнопок с автоповтором
#define TBTN_REPEATE_MASK BTN_PLUS|BTN_MINUS
#define TBTN_DELAY_A TICK_MS(750)
#define TBTN_DELAY_B TICK_MS(275)
#define RELAY_PORT PORTD
#define RELAY_BIT PD2
#include "ss.lib/buttons.h"
// #define S7_SEG_INVERT
#include "ss.lib/s7.h"
#define W1_PORT PORTD
#define W1_BIT PD3
#include "ss.lib/w1.h"
#include "ss.lib/itoa.h"
#ifdef DEBUG
#define A0Low iopLow(PORTA, bv(PA0))
#define A0High iopHigh(PORTA, bv(PA0))
#else
#define A0Low
#define A0High
#endif