Подскажите где ошибка

Иван83
Offline
Зарегистрирован: 10.01.2020
Здравствуйте, подскажите где ошибка:
 
 
 
 
 
 
DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Код вставьте правильно.

Иван83
Offline
Зарегистрирован: 10.01.2020
volatile  unsigned  int temp, counter = 0 ; // Эта переменная будет увеличиваться или уменьшаться в зависимости от вращения датчика
    
void  setup () {
  Последовательный. начало ( 9600 );

  pinMode ( 2 , INPUT_PULLUP); // внутренний входной вывод 2
  
  pinMode ( 3 , INPUT_PULLUP); // внутренний เป็น подтягивающий входной контакт 3
// Настройка прерывания
  // Нарастающий импульс от кодируемого активируется ai0 (). AttachInterrupt 0 - это DigitalPin номер 2 на Arduino.
  attachInterrupt ( 0 , ai0, RISING);
   
  // B восходящий импульс от кодируемого активированного ai1 (). AttachInterrupt 1 - это DigitalPin № 3 на Arduino.
  attachInterrupt ( 1 , ai1, RISING);
  }
   
  void  loop () {
  // Отправляем значение счетчика
  if (counter! = temp) {
  Последовательный. println (счетчик);
  темп = счетчик;
  }
  }
   
  void  ai0 () {
  // ai0 активируется, если DigitalPin nr 2 переходит с LOW на HIGH
  // Проверьте вывод 3, чтобы определить направление
  if ( digitalRead ( 3 ) == LOW) {
  Счетчик ++;
  } еще {
  counter--;
  }
  }
   
  void  ai1 () {
  // ai0 активируется, если DigitalPin nr 3 переходит с LOW на HIGH
  // Проверка с контактом 2, чтобы определить направление
  if ( digitalRead ( 2 ) == LOW) {
  counter--;
  } еще {
  Счетчик ++;
  }
  }

 

negavoid
Offline
Зарегистрирован: 09.07.2016

В дезоксирибонуклеиновой кислоте. И немножко в гугол транслаторе.

b707
Offline
Зарегистрирован: 26.05.2017

Иван83 - вы офигели? - зачем вы команды языка перевли на русский?

Иван83
Offline
Зарегистрирован: 10.01.2020

))))))))
Это автоматом переводчик перевел! 
Спасибо!

 

Иван83
Offline
Зарегистрирован: 10.01.2020

При вращении в одну сторону энкодер выдает понятные числа 1 2 3 ..., а в другую при прохождении "0" начинает с 65535, 65534, 65533...
Почему так, как исправить?

Hayabusa
Offline
Зарегистрирован: 29.03.2012

Потому что тип int безнаковый?

Иван83
Offline
Зарегистрирован: 10.01.2020

Извините, я не программист... я пробовал int менять на long 
Подскажите пожалуйста что нужно изменить, дописать чтобы при вращении энкодера появились отрицательные значения(...-3,-2,-1,0,1,2,3...).
 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Иван83 пишет:

Извините, я не программист... я пробовал int менять на long 
Подскажите пожалуйста что нужно изменить, дописать чтобы при вращении энкодера появились отрицательные значения(...-3,-2,-1,0,1,2,3...).
 

Убрать unsigned