Эмулятор магнитофона для ZX-Spectrum
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Не датчик. Сам тепловизор Flir One Gen 2 и подключён по USB к плате STM32F4Discovery на этом самом STM32F407.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
Вижу вижу. Это приставка для мобильника. Занятная штука.
Добавлено after 40 seconds:
Теперь как то изловить откуда глюк берется.
Добавлено after 1 minute 18 seconds:
Может как нибудь приоритет выставить на таймер. Что бы самые высокие привилегии имел.
Добавлено after 6 minutes 52 seconds:
Давно хочется свой тепловизор. Датчики очень дорогие....
Добавлено after 40 seconds:
Теперь как то изловить откуда глюк берется.
Добавлено after 1 minute 18 seconds:
Может как нибудь приоритет выставить на таймер. Что бы самые высокие привилегии имел.
Добавлено after 6 minutes 52 seconds:
Давно хочется свой тепловизор. Датчики очень дорогие....
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Ну как, нашли в чём причина сбоя? 
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
Нет, все переискал...у меня мало опыта работы с контроллерами. Думаю срабатывает прерывание и происходит рассогласование по передаче. Могу предоставить исходный код.
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
А с буферизацией данных в ОЗУ тоже происходит сбой?
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
да. все так же
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Думаю срабатывает прерывание и происходит рассогласование по передаче.
Вряд ли. Сработавшее прерывание таймера позволит лишь ошибиться на одну единицу времени, а это совсем не критично.
Впрочем, лучше действительно приведите код проекта - вдруг ошибка легко обнаружится.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
После перерыва наконец то заработал мой плеер.
Вот видео работы
Программа пока очень сырая.
Сделал буферизацию на влезло пока 65535 байт
Хочу сделать кусочками хотя бы по 1 Кб или пока напрямую читать по байту с карты.
У меня вопрос как организовать пользовательский интерфейс, т.е. сделать отображение текущего блока и полоску оставшегося времени воспроизведения.
Добавлено after 2 minutes 21 second:
Это код обработчика таймера
Вот видео работы
Программа пока очень сырая.
Сделал буферизацию на влезло пока 65535 байт
Хочу сделать кусочками хотя бы по 1 Кб или пока напрямую читать по байту с карты.
У меня вопрос как организовать пользовательский интерфейс, т.е. сделать отображение текущего блока и полоску оставшегося времени воспроизведения.
Добавлено after 2 minutes 21 second:
Код: Выделить всё
void TIM7_IRQHandler(void)
{
/* USER CODE BEGIN TIM7_IRQn 0 */
/* USER CODE END TIM7_IRQn 0 */
HAL_TIM_IRQHandler(&htim7);
/* USER CODE BEGIN TIM7_IRQn 1 */
if (TapeOutMode==TAPE_OUT_STOP)
{
index16=16;//первоначальное значение бита
byte =0;//первоначальное значение байта
HAL_GPIO_WritePin(T_OUT_GPIO_Port, T_OUT_Pin, GPIO_PIN_RESET);
return;
}
if (TapeOutVolume==true)
{
HAL_GPIO_WritePin(T_OUT_GPIO_Port, T_OUT_Pin, GPIO_PIN_RESET);
TapeOutVolume=false;
}
else
{
HAL_GPIO_WritePin(T_OUT_GPIO_Port, T_OUT_Pin, GPIO_PIN_SET);
TapeOutVolume=true;
}
//выводим пилот-тон
if (TapeOutMode==TAPE_OUT_LEAD)
{
TIM7->ARR = 2168*2;//начальное значение таймера
if (tim6_countersec > 0) tim6_countersec--;
else
{
tim6_countersec = 3223;//Время воспроизведения пилот тона 2 сек.
TapeOutMode=TAPE_OUT_SYNCHRO_1;
return;
}
}
//выводим синхросигнал 1
if (TapeOutMode==TAPE_OUT_SYNCHRO_1)
{
TIM7->ARR = 667;//начальное значение таймера
TapeOutMode=TAPE_OUT_SYNCHRO_2;
return;
}
//выводим синхросигнал 2
if (TapeOutMode==TAPE_OUT_SYNCHRO_2){
TIM7->ARR = 735;//начальное значение таймера
TapeOutMode=TAPE_OUT_DATA;
index16=16;
byte=0;
BytesCount=0;//обнуляем счетчик байт
return;}
//передаём данные
if (TapeOutMode==TAPE_OUT_DATA)
{
if (index16>=16)
{
if (BytesCount>=sz)
{
TapeOutMode=TAPE_OUT_STOP;
//TapeOutMode=TAPE_OUT_PAUSE;//ставим паузу по оканчанию процесса
//sz=FioNextHead();//читаем размер блока
BytesCount = 0;
return;
}
//byte=FioNextByte();//читаем байт из буфера
byte=read_byte();//читаем байт из буфера
index16=0;//первоначальное значение бита
BytesCount++;//общий счетчик байт файла
byte_temp = byte;
}
// printf("byte_temp %X\r\n", byte_temp);
//выдаём бит
if (byte&128) {
TIM7->ARR = 1710*2;//начальное значение таймера
//printf("bit%u =1 byte %u\r\n", index16,BytesCount);
}
else {
TIM7->ARR = 855*2;//начальное значение таймера
//printf("bit%u =0 byte %u\r\n", index16,BytesCount);
}
if ((index16%2)==1) byte<<=1;
index16++;
return;
}
/* USER CODE END TIM7_IRQn 1 */
}Это код обработчика таймера
Re: Эмулятор магнитофона для ZX-Spectrum
Как можно внешнюю память подключить к stm32?
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Зависит от типа памяти (по SPi, I2C, параллельная). И, насколько я читал (но не точно), у STM бывает программные интерфейс для работы с некоторыми типами памяти.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
да есть, FSMC в моем stm32f407
Хочу SRAM добавить.
Теперь сделал индикацию загрузки
Хочу SRAM добавить.
Теперь сделал индикацию загрузки
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
А ошибку-то нашли?
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
Да, неверно задавал регистры. Сейчас использую все настройки через ARR
Основной стоит делитель PSC 120 (тактовая 84МГц)
До этого делал ARR=1 и частоту настраивал через PSC
Так же настроил уровень сигнала, слишком большой искажал форму.
Это все в рамках эмулятора на ПК.
Добавлено after 1 minute:
Думаю как паузу организовать и прокрутку блоков так как некоторые игры требуют остановки воспроизведения, либо выбор уровней.
Основной стоит делитель PSC 120 (тактовая 84МГц)
До этого делал ARR=1 и частоту настраивал через PSC
Так же настроил уровень сигнала, слишком большой искажал форму.
Это все в рамках эмулятора на ПК.
Добавлено after 1 minute:
Думаю как паузу организовать и прокрутку блоков так как некоторые игры требуют остановки воспроизведения, либо выбор уровней.
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Так у меня же в эмуляторе и пауза и прокрутка блоков сделана. Так же и вы можете сделать. 
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
.....что то не сразу заметил
Попытаюсь разобраться.
Попытаюсь разобраться.
-
oleg88
- Первый раз сказал Мяу!
- Сообщения: 26
- Зарегистрирован: Сб окт 24, 2015 20:37:56
- Откуда: nr. Moscow
Re: Эмулятор магнитофона для ZX-Spectrum
da-nie, а что стряслось в тестом памяти в версии прошивки Firmware 2.2? Длится аж 15 минут.
Реально отсортировать файлы хотя бы по имени?
P.S. Вставляю пустую SD карту. Появляется Основное меню в котором выбираю пункт Магнитофон х1. Появляется сообщение "Нет файлов tap" и через пару секунд опять попадаю в Основное меню. На горячую меняю карту и ... все, более на кнопки магнитофон не реагирует. Так и должно быть или задумывалось, что сменим карту и будем работать дальше?
Реально отсортировать файлы хотя бы по имени?
P.S. Вставляю пустую SD карту. Появляется Основное меню в котором выбираю пункт Магнитофон х1. Появляется сообщение "Нет файлов tap" и через пару секунд опять попадаю в Основное меню. На горячую меняю карту и ... все, более на кнопки магнитофон не реагирует. Так и должно быть или задумывалось, что сменим карту и будем работать дальше?
Re: Эмулятор магнитофона для ZX-Spectrum
Запустил полностью свою версию плеера. Сделал перемотку вперед и назад, паузу и выход. Теперь все нужно тестировать на глюки.
Хочу попробовать чтение tzx и запись реализовать.
Хочу попробовать чтение tzx и запись реализовать.
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Тест памяти был изменён - проверяется каждое значение байта (0-255). Просто кто-то жаловался на плавающие дефекты и сделал так.
Горячая замена карты не поддерживается.
tzx довольно сложный формат. И в общем, не нужный. А запись сделать можно (но потребуется игра с FAT). Я их не делал из-за общей бесполезности такого. Не припомню необходимости сохранять что-либо с ZX сейчас, за исключением файлов достижений от Elite. Но они мне не нужны.
Горячая замена карты не поддерживается.
tzx довольно сложный формат. И в общем, не нужный. А запись сделать можно (но потребуется игра с FAT). Я их не делал из-за общей бесполезности такого. Не припомню необходимости сохранять что-либо с ZX сейчас, за исключением файлов достижений от Elite. Но они мне не нужны.
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Re: Эмулятор магнитофона для ZX-Spectrum
Как реализовать запись? Сигнал с ZX так же частотно модулированный?
Потом анализировать его и писать в файл.
Потом анализировать его и писать в файл.
- da-nie
- Говорящий с текстолитом
- Сообщения: 1590
- Зарегистрирован: Вс июн 24, 2012 16:07:00
- Откуда: Лен.Обл.
- Контактная информация:
Re: Эмулятор магнитофона для ZX-Spectrum
Да. А пример расшифровщика магнитофонных файлов я приводил в этой теме (странице так на второй).
И день и ночь в пути...
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos
Мои программки: https://github.com/da-nie
Мои публикации: https://habr.com/ru/users/da-nie/posts/
Мои видео: https://www.youtube.com/channel/UCUroi3 ... 52g/videos