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

Цитата:
Сообщение от lti1 Посмотреть сообщение
P.S.
Это не мой скетч, я его только подправил.
Прошу прощения исправлюсь

И еще спасибо за чтиво, пока только читаю кучу теории и не совсем понимаю для чего какая команда,скорее даже пытаюсь повторить что делают другие

Опытным путем выяснено что дэлэй для энкодера в показателе 100 исключает дребезг контактов (вместо 10 в оригинальном скетче)
Верхний дэлэй пришлось вернуть, так как только с его помощью исключил дребезг в кнопках мьют и плэй/пауза

на данном этапе скетч выглядит вот так
Код:
int analogPin=0;
int data;
void setup() {             
PCICR=1<<PCIE0; 
PCMSK0=(1<<PCINT5)|(1<<PCINT4); 
pinMode (8,INPUT); 
pinMode (9,INPUT); 
Keyboard.begin(); 
Serial.begin(9600);
} 
void loop() {
 data=analogRead(analogPin); //читаем значение нажатой кнопки
  Serial.println(data); //для определения кодов нажатых кнопок на мониторе порта
  /*поддерживаемые коды управляющих клавиш
  http://arduino.cc/en/Reference/KeyboardModifiers*/
  if (data>=28 && data<=35)  // приглушение звука
    {
      Remote.mute();
      Remote.clear();
    }
  if (data>=58 && data<=65)  // воспроизведение / пауза
    {
      Remote.play_pause();
      Remote.clear();
    }
  delay(180);
} 
  
ISR (PCINT0_vect){ 
static byte old_n=PINB&B00110000; 
byte new_n=PINB&B00110000; 
if (old_n==32&&new_n==48||old_n==16&&new_n==0) { 
        Remote.increase();  
        delay(10);   
        Remote.clear();} 
if (old_n==16&&new_n==48||old_n==32&&new_n==0) { 
        Remote.decrease(); 
        delay(100);   
        Remote.clear();} 
old_n= new_n; 
}
Может быть криво написано но работает. т.к. мои энкодеры без нажимных кнопок, удалил из части энкодера мьют

начал работу над левый частью, по особо не получается, мучаюсь с альт+табом
__________________

AUDI A6 (C5) V6 2.8L

Последний раз редактировалось TransF; 25.11.2015 в 01:49.
TransF вне форума   Ответить с цитированием