Показать сообщение отдельно
Старый 10.09.2017, 20:41   #781
lti1
Старший Пользователь
 
Аватар для lti1
 
Регистрация: 17.01.2010
Возраст: 48
Город: Самара
Регион: 63, 163
Машина: Skoda Octavia A5 FL && Skoda Octavia Tour && ̶F̶F̶3̶
Сообщений: 457
lti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond reputelti1 has a reputation beyond repute
По умолчанию

Цитата:
Сообщение от Rover Посмотреть сообщение
А как скетч поправить, чтобы при длительном нажатии кнопки, эмулирующем AltTab вызвать RESET ардуины?
Вначале нужно впаять перемычке между входом RST и цифровым входом/выходом, например 3-им.
В самом начале setup добавляете digitalWrite(3, HIGH);, вот так:
PHP код:
void setup()

digitalWrite(3HIGH);
analogReference(DEFAULT); // подключение внутреннего напряжение AVCC к выводу AREF (опорное напряжение)  
Keyboard.begin();   

далее добавляем digitalWrite(3, LOW); на удержание Alt+Tab:
PHP код:
//********************** AltTab + Ещё что то ************************************   

if(millis()-eventTime<time_tinkling && millis()-eventTime<time_holding-&& data >= alt_tab button_range && data <= alt_tab button_range)  
{   
flag 1;  
}  

if(
data>=release_button button_release_range && data<=release_button button_release_range && flag == && pauseMillis == 0)  
{  
Keyboard.press(KEY_LEFT_ALT);  
Keyboard.press(KEY_TAB);  
Keyboard.release(KEY_TAB);  
Keyboard.press(KEY_TAB);  
Keyboard.release(KEY_TAB);  
flag 0;  
pauseMillis millis();  
}  

if(
data>=release_button button_release_range && data<=release_button button_release_range && flag == && pauseMillis != 0)  
{  
Keyboard.press(KEY_TAB);  
Keyboard.release(KEY_TAB);  
flag 0;  
pauseMillis millis();  
}  

if(
pauseMillis && millis()-pauseMillis >= 800 && data>=release_button button_release_range && data<=release_button button_release_range)  
{  
flag 0;  
pauseMillis 0;  
Keyboard.releaseAll();  
}  

if(
millis()-eventTime>time_holding && data >= alt_tab button_range && data <= alt_tab button_range && flag == 1)  
{  
digitalWrite(3LOW);
//flag = 0;  

Но всё это, какой-то кривой "костыль".
Цитата:
Сообщение от oleg707 Посмотреть сообщение
если ты сделаешь команду delay(10000); то ватчдог вроде должен сработать. Уже не помню свои опыты.
https://geektimes.ru/post/255800/
Ардуина не зависает, а просто не определяется 10-ой виндой.

Последний раз редактировалось lti1; 13.09.2017 в 22:24.
lti1 вне форума   Ответить с цитированием