Не датчик. Сам тепловизор Flir One Gen 2 и подключён по USB к плате STM32F4Discovery на этом самом STM32F407.
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Вт окт 17, 2017 19:34:55
san010101
Вижу вижу. Это приставка для мобильника. Занятная штука.
Добавлено after 40 seconds:
Теперь как то изловить откуда глюк берется.
Добавлено after 1 minute 18 seconds:
Может как нибудь приоритет выставить на таймер. Что бы самые высокие привилегии имел.
Добавлено after 6 minutes 52 seconds:
Давно хочется свой тепловизор. Датчики очень дорогие....
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Сб окт 28, 2017 19:40:54
da-nie
Ну как, нашли в чём причина сбоя?
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Ср ноя 01, 2017 12:57:07
san010101
Нет, все переискал...у меня мало опыта работы с контроллерами. Думаю срабатывает прерывание и происходит рассогласование по передаче. Могу предоставить исходный код.
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Ср ноя 01, 2017 19:20:31
da-nie
А с буферизацией данных в ОЗУ тоже происходит сбой?
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Чт ноя 02, 2017 20:32:15
san010101
да. все так же
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Вс ноя 05, 2017 17:04:30
da-nie
Думаю срабатывает прерывание и происходит рассогласование по передаче.
Вряд ли. Сработавшее прерывание таймера позволит лишь ошибиться на одну единицу времени, а это совсем не критично.
Впрочем, лучше действительно приведите код проекта - вдруг ошибка легко обнаружится.
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Ср ноя 22, 2017 06:24:58
san010101
После перерыва наконец то заработал мой плеер.
Вот видео работы
Программа пока очень сырая.
Сделал буферизацию на влезло пока 65535 байт
Хочу сделать кусочками хотя бы по 1 Кб или пока напрямую читать по байту с карты.
У меня вопрос как организовать пользовательский интерфейс, т.е. сделать отображение текущего блока и полоску оставшегося времени воспроизведения.
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
Добавлено: Ср ноя 22, 2017 17:45:26
san010101
Как можно внешнюю память подключить к stm32?
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Пт ноя 24, 2017 09:14:24
da-nie
Зависит от типа памяти (по SPi, I2C, параллельная). И, насколько я читал (но не точно), у STM бывает программные интерфейс для работы с некоторыми типами памяти.
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Пт ноя 24, 2017 15:44:31
san010101
да есть, FSMC в моем stm32f407
Хочу SRAM добавить.
Теперь сделал индикацию загрузки
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Вс ноя 26, 2017 08:50:27
da-nie
А ошибку-то нашли?
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Вс ноя 26, 2017 17:25:59
san010101
Да, неверно задавал регистры. Сейчас использую все настройки через ARR
Основной стоит делитель PSC 120 (тактовая 84МГц)
До этого делал ARR=1 и частоту настраивал через PSC
Так же настроил уровень сигнала, слишком большой искажал форму.
Это все в рамках эмулятора на ПК.
Добавлено after 1 minute:
Думаю как паузу организовать и прокрутку блоков так как некоторые игры требуют остановки воспроизведения, либо выбор уровней.
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Пн ноя 27, 2017 10:46:12
da-nie
Так у меня же в эмуляторе и пауза и прокрутка блоков сделана. Так же и вы можете сделать.
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Пн ноя 27, 2017 11:22:21
san010101
.....что то не сразу заметил
Попытаюсь разобраться.
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Чт ноя 30, 2017 01:04:36
oleg88
da-nie, а что стряслось в тестом памяти в версии прошивки Firmware 2.2? Длится аж 15 минут.
Реально отсортировать файлы хотя бы по имени?
P.S. Вставляю пустую SD карту. Появляется Основное меню в котором выбираю пункт Магнитофон х1. Появляется сообщение "Нет файлов tap" и через пару секунд опять попадаю в Основное меню. На горячую меняю карту и ... все, более на кнопки магнитофон не реагирует. Так и должно быть или задумывалось, что сменим карту и будем работать дальше?
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Чт ноя 30, 2017 06:09:51
san010101
Запустил полностью свою версию плеера. Сделал перемотку вперед и назад, паузу и выход. Теперь все нужно тестировать на глюки.
Хочу попробовать чтение tzx и запись реализовать.
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Чт ноя 30, 2017 10:45:19
da-nie
Тест памяти был изменён - проверяется каждое значение байта (0-255). Просто кто-то жаловался на плавающие дефекты и сделал так.
Горячая замена карты не поддерживается.
tzx довольно сложный формат. И в общем, не нужный. А запись сделать можно (но потребуется игра с FAT). Я их не делал из-за общей бесполезности такого. Не припомню необходимости сохранять что-либо с ZX сейчас, за исключением файлов достижений от Elite. Но они мне не нужны.
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Чт ноя 30, 2017 11:17:01
san010101
Как реализовать запись? Сигнал с ZX так же частотно модулированный?
Потом анализировать его и писать в файл.
Re: Эмулятор магнитофона для ZX-Spectrum
Добавлено: Чт ноя 30, 2017 14:12:15
da-nie
Да. А пример расшифровщика магнитофонных файлов я приводил в этой теме (странице так на второй).