Прерывание при помощи потенциометра

KT-315
Offline
Зарегистрирован: 07.08.2018

Уже второй вечер не могу довести до ума код, по условию если потенциометр меняется выводить
его значения на дисплей если не меняется то выводить информацию с термопары, если писать все
это в void loop() то спустя время получается путаница у дисплея, чтоб этого не было я как
понимаю нужно одну из переменных показать через прерывание, ну и тут вот и застрял не зная
как это реализовать
1 #define potyent_pin 0
2 volatile int val;
3 volatile int oldval;
4 //термопара
5 #include "max6675.h"
6 #define thermoDO 6
7 #define thermoCS 7
8 #define thermoCLK 8
9 MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
10 //дисплей
11 #include "TM1637.h"
12 #define DIO 4
13 #define CLK 5
14 TM1637 disp(CLK, DIO);
15 void setup() {
16 disp.init();
17 disp.set(4);
18 digitalWrite(2, HIGH);
19 attachInterrupt(0, disp_p, LOW);
20 delay(500);
21 void loop() {
22 int T;
23 T = (thermocouple.readCelsius());
24 delay(500);
25 disp.clearDisplay();
26 disp.displayInt(T);
27 val = analogRead(potyent_pin);
28 val = map(val , 0, 1023, 100, 380);
29 val = constrain(val, 100, 380);
30 if (val != oldval) {
31 digitalWrite(2, LOW);
32 }
32 if (val == oldval) {
33 digitalWrite(2, HIGH);
34 }
35 void disp_p() {
36 val = analogRead(potyent_pin);
37 val = map(val , 0, 1023, 100, 380);
38 val = constrain(val, 100, 380);
39 if (val == oldval) {
40
41 }
42 if (val != oldval) {
43 disp.clearDisplay();
44 disp.displayInt(val);
45 oldval = val;
46 }
47 }
теперь показывает переменную val без смешивания с переменной термопары, но сейчас
не выполняется основной цикл программы помогите пожалуйста

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Прерывание с помощью танцев с бубном. Прерывание с помощью мысли. Что там еще. .. Если применять много умных слов то понимание все равно не появится. Разберитесь сначало что такое прерывание, и главное что не есть прерывание. И да есть еще программное прерывание. Которое организовано иначе чем аппаратное.

KT-315
Offline
Зарегистрирован: 07.08.2018

Да все разобрался , просто нужно было написать действие переменной потенциометра в новой функции и при изминении потенциометра писать название функции, а я считал до этого что выполнять другую функию можно только через прерывание