Важная информация

User Tag List

Страница 6 из 7 ПерваяПервая ... 234567 ПоследняяПоследняя
Показано с 51 по 60 из 63

Тема: Чтение TAP файлов ZX-Spectrum на базе STM32F407

  1. #51
    Activist Аватар для san010101
    Регистрация
    18.11.2015
    Адрес
    г. Красноярск
    Сообщений
    271
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Можно подробнее рассказать про запись или ссылку где почитать?

    Отправлено с моего A0001 через Tapatalk

  2. #52
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,754
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    141
    Спасибо Благодарностей получено 
    1,172
    Поблагодарили
    769 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от san010101 Посмотреть сообщение
    Можно подробнее рассказать про запись или ссылку где почитать?
    http://vtrd.in/book/REVU9145.ZIP
    статья - "секреты ПЗУ"
    вникать в SA_BYTES
    Последний раз редактировалось goodboy; 06.12.2017 в 19:06.

  3. #53
    Activist Аватар для san010101
    Регистрация
    18.11.2015
    Адрес
    г. Красноярск
    Сообщений
    271
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Уже же сделано. Реализуй как битстрим, чтобы не привязываться к форматам. Т.е., сигнал бинарный (0 или 1), в байте 8 сэмплов. Сэмплрейт - не знаю, можно поиграть с разным. Но думаю выше 10кГц ставить смысла нет. А при 10кГц трата будет примерно 10 000 / 8 = 1250 байт/с, что вполне укладывается в скорость записи на SD даже через SPI (а ты же ее подключил через SDIO, ведь так?). 5 минут файл будет примерно 360кБайт.
    Можно подробней раскрыть тему и желательно где почитать с примерами.

  4. #54
    Guru Аватар для HardWareMan
    Регистрация
    26.02.2011
    Адрес
    г. Павлодар, Казахстан
    Сообщений
    4,395
    Спасибо Благодарностей отдано 
    304
    Спасибо Благодарностей получено 
    594
    Поблагодарили
    440 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    san010101, я точно не помню, но вроде все было описано вот в этой теме. Сам файл имеет расширение BAW - Binary wAVe.

  5. #55
    Activist Аватар для san010101
    Регистрация
    18.11.2015
    Адрес
    г. Красноярск
    Сообщений
    271
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Пока вижу это как использовать таймер в режиме захвата для отсчета единиц и нулей. Хорошо бы примеры работы для stm32

  6. #56
    Activist Аватар для san010101
    Регистрация
    18.11.2015
    Адрес
    г. Красноярск
    Сообщений
    271
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Код:
    void EXTI15_10_IRQHandler(void)
    {
      /* USER CODE BEGIN EXTI15_10_IRQn 0 */
    
      /* USER CODE END EXTI15_10_IRQn 0 */
      HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_15);
    	
      /* USER CODE BEGIN EXTI15_10_IRQn 1 */
    /*********************блок переменных************************************************************/	
    static const uint8_t	     delta = 50;      		//дельта для диапозона пилот тона
    static const uint16_t 	pilot_ARR = 2168*2;		//значение таймера для пилот-тона 807Гц
    static const uint16_t 	 syn1_ARR = 667;		//значение таймера synchro1          5247Гц
    static const uint16_t 	 syn2_ARR = 735;			//значение таймера synchro2          4761Гц
    /***********************************************************************************************/
    	
    /********************чтение пилот-тона**********************************************************/		
    if (TapeInMode==TAPE_IN_LEAD){	
    TIM6->ARR = pilot_ARR;
    //EXTI->FTSR |= 0x15;															//по спадающему фронту
    	
     if (TapeIn==true){
    			TIM6->CNT = 0;													//начальное значение для отсчета
      		HAL_TIM_Base_Start (&htim6);
    			HAL_TIM_Base_Start_IT (&htim6);										//включить таймер
    			TapeIn=false;													//переключатель на выкл. таймера
    			EXTI->PR |= (0x15);												//Очищаем флаг и останавливаем прерывание
    			return;
     }
     else{
    			HAL_TIM_Base_Stop (&htim6);
    			HAL_TIM_Base_Stop_IT (&htim6);										//выключить таймер
    			counterbit = __HAL_TIM_GET_COUNTER(&htim6);				//взять значение отсчета таймера
    	 
    				/*проверка на ввод пилот тона, если нет сигнала то стоп прием и переход к ледующему шагу*/	 
    			if ((counterbit > pilot_ARR-delta) && (counterbit < pilot_ARR+delta) ) {
    				#if Debug_TIM									
    					SEGGER_RTT_printf(0,"\n counterbit %u\n", counterbit);						
    				#endif			 		 
    				TapeInMode	=	TAPE_IN_LEAD;								//продолжим прием пилот-тона
    				TapeIn=true;											//переключатель на старт таймера
    			}
    			else
    			{
    				#if Debug_TIM
    					SEGGER_RTT_printf(0,"\n Exit %u\n", counterbit);				
    				#endif	
    				
    				TIM6->ARR = syn1_ARR;
    				EXTI->RTSR |= 0x15;									//по нарастающему фронту
    				EXTI->PR |= (0x15);									//Очищаем флаг и останавливаем прерывание				
    				TIM6->CNT = 0;				 						//начальное значение для отсчета
    				HAL_TIM_Base_Start (&htim6);
    				HAL_TIM_Base_Start_IT (&htim6);							//включить таймер
    				
    				TapeInMode	=	TAPE_IN_SYNCHRO_1;						//прием Synchro1				
    
    			}										
    		return;
    	}	 
    }
    
    /********************читаем синхросигнал 1******************************************************/ 
     if (TapeInMode==TAPE_IN_SYNCHRO_1){
    	 	 
    			HAL_TIM_Base_Stop (&htim6);
    			HAL_TIM_Base_Stop_IT (&htim6);						//выключить таймер
    			counterbit = __HAL_TIM_GET_COUNTER(&htim6);			//взять значение отсчета таймера			
    			EXTI->PR |= (0x15);							         //Очищаем флаг и останавливаем прерывание				
    			EXTI->FTSR |= 0x15;					         		//по спадающему фронту	 
    			TIM6->ARR = syn2_ARR;
    	 
    	#if Debug_TIM
    		SEGGER_RTT_printf(0,"\n Exit Synchro1 %u\n", counterbit);						
    	#endif			 		 		
    	 
    			
    			TIM6->CNT = 0;									//начальное значение для отсчета
    			HAL_TIM_Base_Start (&htim6);
    			HAL_TIM_Base_Start_IT (&htim6);						//включить таймер
    	 
    			TapeInMode	=	TAPE_IN_SYNCHRO_2;					//стоп прием
      return;}
     
    /**************************************************************************************************/
    
    /********************читаем синхросигнал 2******************************************************/ 
     if (TapeInMode==TAPE_IN_SYNCHRO_2){
    	 
    			HAL_TIM_Base_Stop (&htim6);
    			HAL_TIM_Base_Stop_IT (&htim6);						//выключить таймер
    			counterbit = __HAL_TIM_GET_COUNTER(&htim6);			//взять значение отсчета таймера
    			TapeInMode	=	TAPE_IN_STOP;						//стоп прием
    			EXTI->PR |= (0x15);								//Очищаем флаг и останавливаем прерывание
    			EXTI->RTSR |= 0x15;								//по нарастающему фронту
    		
    	#if Debug_TIM
    		SEGGER_RTT_printf(0,"\n Exit Synchro2 %u\n", counterbit);						
    	#endif			 		 				
    
    	TapeIn=true;											//переключатель на старт таймера
      return;}
     
    /**************************************************************************************************/
    	/* USER CODE END EXTI15_10_IRQn 1 */
    }
    Вход 807Гц держит, определяет.
    Теперь нужно синхроимпульсы отработать.
    Первый по высокому фронту, а второй по низкому.
    Пока не получилось, может, что пропустил ?
    Последний раз редактировалось san010101; 12.12.2017 в 10:23.

  7. #57
    Activist Аватар для san010101
    Регистрация
    18.11.2015
    Адрес
    г. Красноярск
    Сообщений
    271
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Всем привет. После продолжительного перерыва вернулся к проекту. Теперь работаю с цветным экраном 320х240
    Пока поддержка только tap в режиме чтения. Есть возможность просматривать файлы jpeg, txt и zx spectrum образ экрана scr.
    Именно этот файл грузится при загрузке tap в качестве экранки. Добавлен прогресс бар.

    Отправлено с моего A0001 через Tapatalk
    https://youtu.be/Tvg1SUaCBxs

  8. #58
    Veteran Аватар для tank-uk
    Регистрация
    10.06.2015
    Адрес
    г. Запорожье, Украина
    Сообщений
    1,712
    Спасибо Благодарностей отдано 
    80
    Спасибо Благодарностей получено 
    415
    Поблагодарили
    198 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    san010101, ёёё моё, я уважаю ваш труд и стремление, но не проще купить за те же $20 какую то какашку на андроид и не париться ? в плеймаркете дофига прог для проигрывания TAP и TZX и все они работают, да еще и реально работают WAV с супер-турбо загрузкой

    не хотел ни кого обидеть, это так, мысли в слух

    Скрытый текст


    Специалист "УЦА" +SD-Vinxru +PS/2-Vinxru
    PLM-X 128 + AY -эмуль на 8меге
    Profi V3.2 - 768+Color-CP/M+ProfiExtender Solegstar
    Profi V3.2 -1024 Sim30+Color-CP/M+ProfiExtender Solegstar
    Pentagon 1024SL 1.42 - работает не совсем стабильно
    ZXM-Phoenix V06
    ZX-Evolition Rev C2 White FSP-MItX
    Sprinter 2000 v.Zorel
    Karabas128 + ZX-Taper by TrolSoft +DivSD +ScanDoubler
    ZX-UNO v4.1 2М с 4 переключаемыми флешками
    Поиск-1 - ждет ремонта
    Корвет ПК8010 up to 8020
    MisT 1.31
    Galaksija + SMD
    [свернуть]

  9. #59
    Activist Аватар для san010101
    Регистрация
    18.11.2015
    Адрес
    г. Красноярск
    Сообщений
    271
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По большому счету тут все можно перевести в алиэкспер или плай маркет. Компы на ПЛИС или эмулятор, различныу переферию на али экспресс или программно.

  10. #60
    Activist Аватар для san010101
    Регистрация
    18.11.2015
    Адрес
    г. Красноярск
    Сообщений
    271
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    https://youtu.be/3cCmEcKgLh0

    - - - Добавлено - - -

    Немного по развлекался с esp32. Пока только просмотр списка файлов и вывод файлов экрана zx spectrum

Страница 6 из 7 ПерваяПервая ... 234567 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 0
    Последнее: 12.01.2017, 11:00
  2. Ответов: 10
    Последнее: 30.05.2014, 11:58
  3. Конвертор TAP файлов
    от dM_GBG в разделе Софт
    Ответов: 1
    Последнее: 22.11.2011, 11:01
  4. чтение файлов MS-word
    от p@lex в разделе Софт
    Ответов: 17
    Последнее: 22.12.2007, 09:42
  5. Как в Unreal ускорить загрузку TAP файлов?
    от lavstudio в разделе Эмуляторы
    Ответов: 1
    Последнее: 19.02.2005, 01:50

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •