Форум РадиоКот https://radiokot.ru/forum/ |
|
Не могу найти как подключена нога https://radiokot.ru/forum/viewtopic.php?f=57&t=133704 |
Страница 1 из 1 |
Автор: | 74LS00 [ Пт июл 22, 2016 02:30:09 ] |
Заголовок сообщения: | Не могу найти как подключена нога |
Всё что можно исправить в этой папке https://github.com/tmk/tmk_keyboard/tre ... /hid_liber Кусок схемы Фишка этих исходников что они используют свой matrix.c и в этом видимо проблема. Добавляю в led.c один светодиод, а именно дописываю в void Код: if (usb_led & (1<<USB_LED_NUM_LOCK)) PORTB &= ~(1<<7);//port b7 12 else PORTB |= (1<<7); Фактически указываю ему висеть на 12 ноге, пробовал этот трюк с 8 ногой которая в схеме не подключена, тоже самое. Проблема в том что светодиод на этой ноге светит в пол силы, мультиметр показывает 1,5в, на остальных 3,5в, резюк наборный 1к, цеплял к разным ногам, но не суть потому как он идёт к корпусу. Первое что подумал ещё с 12 ногой, что она участвует в опросе матрицы и там лог1 не задерживается, но вот почему и с 8 ногой так, может ошибка в коде. Пробовал менять сигналы местами, всё равно на этих ногах слабее. Пялюсь в matrix.c, но нифига не могу найти где указан этот PORTB 7 в понятной форме, ладно бы там одна таблица была, но их там 4 и я не могу понять какая к чему . Этот файл использует 1 дешифратор вместо двух, в моём случае я использую несколько блоков и городить в каждый по 2 дешифратора както дофига. Да и эта схема далеко не лучшая, потому как мне както нужно инвертировать данные дешифратора, он у меня с инверсией |
Автор: | COKPOWEHEU [ Пт июл 22, 2016 08:16:47 ] |
Заголовок сообщения: | Re: Не могу найти как подключена нога |
Не понял в чем основная задача, особенно удивило это 74LS00 писал(а): дописываю в void дописывать что-то в пустоту...А DDRB7 случайно не забыли настроить? |
Автор: | 74LS00 [ Пт июл 22, 2016 16:00:45 ] |
Заголовок сообщения: | Re: Не могу найти как подключена нога |
Потому и спрашиваю что языком не владею. Так что есть эти самые DDR ? Мне казалось что ноги это PORTB. Тогда что PINB ? Уж очень дофига там всего. И в самом деле ничего такого в этом файле и не было , дописал Код: DDRB |= (1<<7); светодиод загорелся ярко, причём ярче чем остальные(или он просто повёрнут так), а для них тоже ничего не указано. Но ониже както работали поэтому и подумал что дело в matrix.c , он видимо кривоват. Цитата: #include <avr/io.h>
#include "stdint.h" #include "led.h" void led_set(uint8_t usb_led) { DDRB |= (1<<7) | (1<<6) | (1<<5); if (usb_led & (1<<USB_LED_CAPS_LOCK)) PORTB &= ~(1<<5);//port b5 29 else PORTB |= (1<<5); if (usb_led & (1<<USB_LED_SCROLL_LOCK)) PORTB &= ~(1<<6);//port b6 30 else PORTB |= (1<<6); if (usb_led & (1<<USB_LED_NUM_LOCK)) PORTB &= ~(1<<7);//port b7 12 else PORTB |= (1<<7); } |
Автор: | 74LS00 [ Сб авг 06, 2016 07:33:41 ] |
Заголовок сообщения: | Re: Не могу найти как подключена нога |
Нашёл другую прошивку. Может кто подскажет как инвертировать данные на входах ? https://github.com/74ls00/GameKB/blob/m ... ord_num.py Думаю выкинуть инверторы, а то места на них не хватает. Если коротко то возможно гдето тут Код: matrix_hardware = [ # Port mask Dir mask ( 0b10011110 , 0b00001110 ), # REF_PORTB ( 0b11000000 , 0b00000000 ), # REF_PORTC ( 0b11111111 , 0b00000000 ), # REF_PORTD ( 0b00000000 , 0b00000000 ), # REF_PORTE ( 0b11110011 , 0b00000000 ) # REF_PORTF ] matrix_strobe = [ # REF_PORTB REF_PORTC REF_PORTD REF_PORTE REF_PORTF ( 0x00 , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ), ( 0x02 , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ), ( 0x04 , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ), ( 0x06 , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ), ( 0x08 , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ), ( 0x0A , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ), ( 0x0C , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ), ( 0x0E , 0b00000000 , 0b00000000 , 0b00000000, 0b00000000 ) ] Пробовал менять все 0b00000000 на 8 однёрок в matrix_strobe , но ничего не поменялось, видно они не при делах. Поменял местами строки, и они поменялись местами. Похоже не эта кучка. В matrix_hardware чтото я не просматриваю связи с дешифратором Есть ещё чтото такое Код: bl_modes = [
( 0, 0 ), ( 1, 1 ) ] |
Автор: | Аlex [ Сб авг 06, 2016 12:08:04 ] |
Заголовок сообщения: | Re: Не могу найти как подключена нога |
В программировании, метода тыка не прокатывает. Учите язык и контроллер, с которым работаете. |
Автор: | 74LS00 [ Сб авг 06, 2016 19:00:50 ] |
Заголовок сообщения: | Re: Не могу найти как подключена нога |
Покачто прокатывал, прошивка готовая нужно только подправить под моё железо что я и сделал методом тыка убрав всё лишнее чего у меня нет в железе, потому как оно тыкало куда ненадо и когда ненадо. Тут другое дело, она написана по 74238, а мне надо под 74138 тоже самое только выходы инверсные, кароче наша 555ид7, дешифратор 3 входа 8 выходов. Учить C и python слишком круто тем более что всё в одном этом файле. Да и я ещё недорос чтоб чтото разобрать в С для AVR, нагуглить у меня точно не получается. Чтоб это переварить потребовалось 2 года. Ну раз я один в этой стране (и ещё пара поделок) мне и тащить весь проект. Наткнулся ещё на такую фигню Код: matrix_sense = [ Могу предположить что тут надо перевернуть, но перевернуть надо и гдето ещё, ну гдето опрос точно убивается, гдето в matrix_hardware зарыто, пока непонятно чего 10 если ног 8, а портов уже 17 что не суть , ( PORTB 7) отрезал отдав светодиоду. Если будут ещё лишние тоже отдам, хотя это будет уже трудно (Сейчас я использовал последние 3 ноги что проще).# Port Pin mask ( REF_PORTB , (1 << 4) ), ( REF_PORTC , (1 << 6) ), ( REF_PORTC , (1 << 7) ), ( REF_PORTD , (1 << 0) ), ( REF_PORTD , (1 << 1) ), ( REF_PORTD , (1 << 2) ), ( REF_PORTD , (1 << 3) ), ( REF_PORTD , (1 << 4) ), ( REF_PORTD , (1 << 5) ), ( REF_PORTD , (1 << 6) ), ( REF_PORTD , (1 << 7) ), ( REF_PORTF , (1 << 0) ), ( REF_PORTF , (1 << 1) ), ( REF_PORTF , (1 << 4) ), ( REF_PORTF , (1 << 5) ), ( REF_PORTF , (1 << 6) ), ( REF_PORTF , (1 << 7) ) ] и тут фисташки кончились раньше милера. Сложное это дело от которой даже схемы нет правильной, и программатор встроенный не работает. И в братской теме молчанка, хотя сгодилось бы всё. Если не найду решения и будет совсем тесно поставлю cd4011 пачку (заслал в дерёвню с китая). А тож эта самопальная клава и так уже тянет на 7к деревянных денег и писать на этом убожестве уже надоело за 2 года. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |