Показать сообщение отдельно
Старый 05.12.2015, 15:45   #52
TransF
Старший Пользователь
 
Регистрация: 14.06.2009
Город: Ставрополь
Регион: 26
Машина: AUDI A6 (C5) 2000г.в. V6 2.8L
Сообщений: 131
TransF is on a distinguished road
По умолчанию

Цитата:
Сообщение от lti1 Посмотреть сообщение
Второй энкодер подключается к D10 и D16, так же с резисторами и конденсаторами:
PHP код:
int analogPin=0;
int data;

void setup() {             
PCICR=1<<PCIE0
PCMSK0=(1<<PCINT5)|(1<<PCINT4)|(1<<PCINT2)|(1<<PCINT6); 
pinMode (9,INPUT); 
pinMode (8,INPUT);
pinMode (16,INPUT);
pinMode (10,INPUT);
Keyboard.begin(); 

void loop() {


ISR (PCINT0_vect){ 
static 
byte old_n=PINB&B01110100
byte new_n=PINB&B01110100

if ((
old_n B00110000) == 32 && (new_n B00110000) == 48 || (old_n B00110000) == 16 && (new_n B00110000) == 0) { 
        
Remote.increase();    
        
Remote.clear();
      } 
if ((
old_n B00110000) == 16 && (new_n B00110000) == 48 || (old_n B00110000) == 32 && (new_n B00110000) == 0) { 
        
Remote.decrease();   
        
Remote.clear();
      } 
        
if ((
old_n B01000100) == 64 && (new_n B01000100) == 68 || (old_n B01000100) == && (new_n B01000100) == 0) { 
        
Remote.next();   
        
Remote.clear();
      } 
if ((
old_n B01000100) == && (new_n B01000100) == 68 || (old_n B01000100) == 64 && (new_n B01000100) == 0) { 
        
Remote.previous();  
        
Remote.clear();
      }
        
old_nnew_n

Спасибо огромнейшее, теперь всё ровно и четко.

А не подскажете принцип вот этой строчки
if ((old_n & B01000100) == 4 && (new_n & B01000100) == 68 || (old_n & B01000100) == 64 && (new_n & B01000100) == 0) {
для собственного понимания?
__________________

AUDI A6 (C5) V6 2.8L

Последний раз редактировалось admin; 27.03.2017 в 02:13.
TransF вне форума   Ответить с цитированием