Показать сообщение отдельно
Старый 25.05.2013, 22:32   #438
Bersenev
Бывалый писикарщик
 
Аватар для Bersenev
 
Регистрация: 23.04.2009
Возраст: 53
Город: Ставрополь
Регион: 26
Машина: Opel Zafira 2007
Сообщений: 5,275
Bersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant future
По умолчанию

Цитата:
Сообщение от OsDima Посмотреть сообщение
Попытался вспомнить програмирование и поразбирался со скетчем.
Как я понял что переменная res_key_count содержит количество резистивных кнопок и при работе скетча оно запоминается в ПЗУ (куда-то) и оно (количество) потом всегда остается такое-же.
У меня стояло = 0 а их физически аж 19 при 100 Ом между ними.
И сейчас не всегда выходят одни и теже коды в iCar (иногда 2, иногда 3, иногда пересекаются на разных соседних кнопках - особенно при прогреве двигателя.
Хотя на трассе такого потом не наблюдается (при больших оборотах)).
Мне заново залить скетч с res_key_count = 19 , чтоли (чтобы работало постабильнее) или подобрать другие резисторы.
переменная res_key_count должна быть равна 0 при загрузке скетча. Потом ей будет присвоено значение из EEPROM.

Твоя проблема скорее всего связана с низким качеством самих кнопок. Я вначале поставил тактовые кнопки и запарился с ними, они всё время возвращали разные значения. Заменил их на микроконтакты и всё сразу исправилось.

В твоём случае думаю стоит увеличить шаг сопротивлений, то есть использовать не 100 Ом, а 200 или 300. И увеличить переменную unsigned int res_key_delta = 3; с 3-х, до 5-ти, а может и до 6-ти или 7-ми.

Но прежде чем заливать новый скетч поменяй это значение

#define RES_KEY_FLAG_ 0x76 // Флаг первого запуска скетча

с 0x76 на другое значение, допустим 0x77. Тогда скетч будет считать что это его первый запуск и сотрёт из EEPROM все ранее запомненые значения
Bersenev вне форума   Ответить с цитированием