На разъёме для прошивки? Не понимаю.
Оно будет замыкать на землю контакты 1 и 4?
Кстати, а мощи микросхемы хватит? А то где-то читал, что транзисторы цепляют для какой-то кнопки. На всякий случай уточняю.
Ну да для скетча выше это пины разъема прошивки. На выходах mega будет устанавливаться низкий уровень. Что касается транзисторов. Я до этого делал другой контроллер (на 8 mega) там без всяких транзисторов,не помню что бы мега грелась. Да и NMI нагружен то всего на 1 вход. Так что ИМХО можно и напрямую. Другое дело что в некоторых случаях (вроде на пенте так) для NMI замыкается m1 на АГ3 вот тут наверное без ключа не обойтись. Но при желании для страховки можно и понаставить ключей.
А мега потом прошиваться снова будет? Думаю будет, раз специалисты говорят. Сигнал RST же не трогаем.
И на выходе меги MISO MOSI не будет постоянно высокий уровень? Пока клавишу не нажмёшь. А я его возьму и железной кнопкой на землю. Как бы чего не вышло ).
А куда она денется? Прошивальщик ее дергает за RES после этого она какое то время ждет начала заливки. А тут он ей "на кушай...".
А зачем железной кнопкой то :v2_dizzy_tired2: ты его клавишей на клаве, для этого скетча Res- Scroll Lock NMI - F12, клава отдаст меге ну а та разберется чего там на ногах выставить. Если ты про кнопку что на ресет припаяна так убрать ее за ненадобностью. Ну а если не хочется поставь диод.
- - - Добавлено - - -
Xrust,
Мне вот тут не понятно
case 0x7E: //если считался код 0x7E RES (значит клавишу сброса нажали или отпустили - не важно)
res = !res; //просто инвертируем состояние переменной
digitalWrite(RES, res); //и записываем
d = HIGH; //даже если было отпускание клавиши, эта клавиша (Reset) не писалась в матрицу, так что LOW записывать в нее точно не надо.
break;
LOW в порт мы записали а где мы в него опять HIGT запишем? Если там LOW постянно будет так "вечный RESET" получим?
nemo, эти low и high пишутся в матрицу, а не в порт reset.
Прошивку опробовал. Reset подключил на контакт 1 J1. Комп не запускается с контроллером, пока не нажмёшь Ф12 для сброса. Тогда начинает работать, но через несколько секунд клава печатает случайный символ несколько раз, затем перестаёт совсем печатать.
А вообще я думал, что сброс надо не к меге подключать, а к матрице. К одному контакту землю, к другому сброс.
И кстати, кнопочка на корпусе тоже нужна. А к ней ещё и конденсатор подвешен, если что.
izzx, сначала желательно проверить работу контроллера не подключая к компьютеру. Что у него на j1.1 в момент подачи питания? Что после нажатия клавиш?
Как реализована цепь сброса на компьютере? Если там конденсатор, то от него лучше отказаться и сделать принудительный сброс от контроллера клавиатуры. Чтобы и кнопку сброса сохранить, придется выход контроллера с ней развязать. Например, через диод.
Когда появится свободное время, прошью свой контроллер и проверю прошивку. Возможно, в ней есть незамеченные ошибки. Логика её работы всё усложняется.
ээээ
digitalWrite
Подает HIGH или LOW значение на цифровой вход/выход (pin).
Зачем вообще писать что то в матрицу нам же тут 8816 не нужен?
Что касается кондера когда подключал контроллер на мега8 работало нормально и с ним (но думается там нужна задержка на несколько ms).
В общем, с логикой работы не то. Включил без компа. На контакте j1.1 5 вольт. Когда нажимаешь и держишь Ф12, напряжение сначала 0, а потом скачет от 1.5 до 3.5. И иногда инвертируется. При не нажатой Ф12 уже 0, а при нажатой 5.
А в компе сигнал reset на несколько микросхем идёт.
https://pic.maxiol.com/thumbs2/16396...597373949..jpg
"можно порекомендовать подключить параллельно контактам кнопки "Сброс" конденсатор, емкостью 33...47 мкФ (положительный вывод "+" - на контакт Reset, отрицательный вывод - на контакт Земля)."
Думаю надо к матрице цеплять.