MaDiEQ
Members-
Постов
31 -
Зарегистрирован
-
Посещение
Электроника
-
Стаж в электронике
Менее года
-
Сфера радиоэлектроники
микроконтроллеры, ПЛИС
Посетители профиля
1 043 просмотра профиля
Достижения MaDiEQ
-
бывало, в моем случает были ошибки в подключении проводов
-
Пытаюсь разобраться с ili9341 брал тут на пин LED и VCC подаю 3.3В с 2х ног ПЛИС Попытка получить ответ по команде D3h ... в ответ молчание (((( Кто работал с этим дисплеем, что делаю не так ?
-
в институте vhdl учил так что мне привычнее, а на первый взгляд отличие между verilog и vhdl не заметно по моему если надо протестировать тестбенчем систему из нескольких vhd как быть?
-
При проектировании устройств какие конструкции языка VHDL лучше использовать ? 1 State machine организовывать как переменную со своим типом state1, state2 ... или можно создать variable state: natural range 0 to (конечное состояние):=0; Какая конструкция будет занимать меньше ресурсов? 2 Операторы ветвления if else или case? 3 Если нужен переход по изменению сигнала wait или опять же if? 4 Как использовать Component / port map? использую только в тестбенче но возможно так вот кодом соединять провода нескольких файлов vhd? хотелось узнать
-
спасибо , учту )))
-
кстати там была ошибка при которой он ВООБЩЕ не должен был работать так что эти случайные задержки выглядят еще более странно =)
-
да просто там простыня некрасиво на странице смотрится )))
-
PS: Хотелось бы получить совет от опытных программистов по поводу оптимизации кода для avr =)
-
проблему решил спасибо всем кто отписался =)
-
к первым 4м битам порта а подключены 4 строки клавиатуры (китайская мембранная типа замыкает строку-столбец), 8 столбцов подключены к порту B эта функция передает поочереди 0 на каждый пин из 4 пинов в порте А и ищет изменение состояния на порте Б относительно запомненного ранее для каждой строки потом передает код клавиши в функцию передающую по i2c
-
вроде бы не 8 раз ))) он 1 раз как только напишет должен выходить из цикла по break; а вот PINB&(1<<j))==(1<<j) наверно стоит заменить на PINB&(1<<j))!=0 или компилятор сам такое правит?
-
ну да он проверяет j -й бит - переменную величину неизвестную заранее, как можно это упростить для МК? int chek_kb(){ press_release=0; keycode=0; for (int i=0;i<=3;i++){ DDRA|=0b00001111; PORTA=0b00001111 & out_line[i]; _delay_us(10); if (PINB!=key_mask[i]){ for (int j=0;j<=7;j++){ /// if( ((PINB^key_mask[i])&(1<<j))!=0) { if((PINB&(1<<j))==(1<<j)){ press_release=0b00000000; }else{ press_release=0b10000000; } keycode=table_codes[i*8+j]; key_mask[i]=PINB; break; } } break; } } return (keycode|press_release); } в чем причина хаотичной задержки до начала передачи непонятно
-
я только пару недель на avr пишу чем можно заменить сдвиг(если надо установить 1 в определенный бит)