Counter

AlexBAN

✩✩✩✩✩✩✩
12 Сен 2020
18
0
Всех приветствую - подскажите как сделать(стандартный здесь вопрос)
Имеются два импульсных сигнала (0-1-0) подаю я их на 2 и 3 пины ардуино (первое и второе прерывание) по переднему фронту
Сигнал на втором прерывании увеличевает счетчик ( j++) от 1 и далее
Нужно чтоб сигнал с первого прерывания сбрасывал счетчик ( j ) обратно в 1
C++:
[code]

const byte a = 3;
const byte b = 2;
volatile long int  j = 0 ;
volatile long int  k = 0 ;

void setup() {

 pinMode(a, INPUT);
 pinMode(b, INPUT);
 attachInterrupt(a, A,RISING  );
 attachInterrupt(b, B,RISING  );
 Serial.begin(9600);
}
 void A() {
  j++;
 } 
  void B() {
  k++;
  }
void loop() {
}
[/CODE]
Заранее спасибо( счетчик ( j++) считает).
 

bort707

★★✩✩✩✩✩
21 Сен 2020
269
70
хм, а очевидный код не работает?
C++:
 void B() {
  k++;
  j=1;
  }
 

Александр Симонов

★★★✩✩✩✩
2 Авг 2018
564
151
Всех приветствую - подскажите как сделать(стандартный здесь вопрос)
Имеются два импульсных сигнала (0-1-0) подаю я их на 2 и 3 пины ардуино (первое и второе прерывание) по переднему фронту
Сигнал на втором прерывании увеличевает счетчик ( j++) от 1 и далее
Нужно чтоб сигнал с первого прерывания сбрасывал счетчик ( j ) обратно в 1
C++:
[code]

const byte a = 3;
const byte b = 2;
volatile long int  j = 0 ;
volatile long int  k = 0 ;

void setup() {

pinMode(a, INPUT);
pinMode(b, INPUT);
attachInterrupt(a, A,RISING  );
attachInterrupt(b, B,RISING  );
Serial.begin(9600);
}
void A() {
  j++;
}
  void B() {
  k++;
  }
void loop() {
}
[/CODE]
Заранее спасибо( счетчик ( j++) считает).
Первый параметр функции attachInterrupt это номер прерывания, а не пина.
 
  • Лойс +1
Реакции: Nikanor

AlexBAN

✩✩✩✩✩✩✩
12 Сен 2020
18
0
Согласен - но пин тоже надо указывать. А по существу ?
Имеются два импульсных сигнала (0-1-0) подаю я их на 2 и 3 пины ардуино (первое и второе прерывание) по переднему фронту
 

Александр Симонов

★★★✩✩✩✩
2 Авг 2018
564
151
  • Лойс +1
Реакции: kostyamat