-
Ynicky
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 209
-
Спасибо получено: 39
-
-
-
-
|
Как и обещал, выкладываю проект и компилятор.
Вывожу на экран пока цифры и английские буквы (малые и большие).
Николай.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Ynicky
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 209
-
Спасибо получено: 39
-
-
-
-
|
Побаловался с клавиатурой.
Теперь печатаются как английские так и русские буквы.
Для переключения регистра используется "Caps Lock".
На русский и обратно - правый "Ctrl".
Работают забой, пробел и "Enter".
Для игр добавил работу со стрелками.
Вот что получилось.
Прилагаю файлы.
Николай.
Вложенный файл:
Имя файла:
ps2kbd.zip
Размер файла:3 KB
ps2 клавиатура
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Ynicky.
|
-
Ynicky
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 209
-
Спасибо получено: 39
-
-
-
-
|
Нашел в интернете простой код игры "Змейка".
Адаптировал к проекту.
Screen
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Ynicky.
|
-
Ynicky
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 209
-
Спасибо получено: 39
-
-
-
-
|
В эти выходные сделал зарядное устройство для щелочных батареек.
Ток заряда не превышает 100 мА. Больше не позволяет USB.
По этой же причине нельзя сделать зарядное устройство сразу на несколько батареек.
Пока не поставил транзистор, отключающий батарейку после заряда.
На днях доделаю. Но программу сделал с отключением, и проверил тестером вывод 11 CN3.
Исправил пару ошибок в проекте.
Screen
Николай.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Ynicky
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 209
-
Спасибо получено: 39
-
-
-
-
|
Поэкспериментировал с разными транзисторами.
Оказалось, что у разных транзисторов Uкэ в открытом состоянии разное.
Поэтому переделал схему. Напряжения указаны для этих конкретных транзисторов.
На батарейке указано напряжение в конце зарядки. На холостом ходу оно меньше.
Время заряда разных батареек оказалось разное (~ от 6 до 18 часов). Видимо
сказываются степень разряда и фирма.
По окончании заряда зажигаются все светодиоды.
При смене батарейки нужно нажать кнопку ближайшую к VGA разъему.
Николай.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Ynicky.
|
-
alman
-
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 263
-
Спасибо получено: 41
-
-
-
-
-
|
Простите за оффтопик, но зарядка батареек это так необычно. Сколько циклов зарадяки может выдержать батарейка? Насколько хорошо восстанавливаются харакетиристики батарейки после зарядки? Зачем используется FPGA для этого дела? Формируется какой-то необычный сигнал?
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Ynicky
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 209
-
Спасибо получено: 39
-
-
-
-
|
Существуют промышленные зарядные устройства для щелочных батареек:
www.dni.ru/tech/2011/3/15/209018.html
Заряжать можно только щелочные (алкалиновые) батарейки.
Они по технологии близки к щелочным аккумуляторам.
В зарядных устройствах применяют разные схемы контроля,
от аналоговых до микроконтроллерных.
Необходимо отключать зарядку при достижении определенного U.
В СнК на плате Марсоход2 все для этого есть.
Никаких специальных сигналов или импульсов не формирую.
Зарядка идет постоянным током.
Николай.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Ynicky.
|
-
Ynicky
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 209
-
Спасибо получено: 39
-
-
-
-
|
До сих пор в проекте не использовались встроенные блоки умножения.
Чтобы использовать их, я ввел в АЛУ команду умножения 16x16=32.
Чтобы она не тормозила процессор, сделал умножитель конвейерным.
Заняло это 16 блоков (Embedded Multiplier 9-bit elements) из 46.
Переписал библиотеку и скорректировал описание.
Также захотел написать программные библиотечные функции деления (div)
и взятия остатка (mod). Не нашел в интернете как это можно сэмулировать на С.
Может кто знает где это взять? Или хотя-бы знает подробный алгоритм.
Поделитесь пожалуйста.
Николай.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Ynicky
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 209
-
Спасибо получено: 39
-
-
-
-
|
Когда разбирался с делением, понял что в системе команд процессора не хватает
сдвигов по значению в регистре. Поменял операции АЛУ.
Скорректировал ассемблер и написал пятую версию компилятора.
Эмуляция деления на С для 16-ти разрядных процессоров в моем варианте
выглядит следующим образом:
unsigned int divu2(unsigned int uiA, unsigned int uiB)
{
int iI;
unsigned int uiR = 0;
unsigned int uiT;
if(uiB == 0) return 0xFFFF;
if(uiB == 1) return uiA;
if(uiB == uiA) return 1;
if(uiB > uiA) return 0;
for(iI = 15; iI >= 0; iI--)
{
if(iI == 0) uiT = 0;
else uiT = (uiB >> (16-iI));
if(uiT == 0)
{
uiT = (uiB << iI);
if(uiA >= uiT)
{
uiR += 1 << iI;
uiA -= uiT;
}
}
}
return uiR;
}
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
Время создания страницы: 0.301 секунд