Самодельный локомотивный декодер.

Вопросы и ответы связанные с цифровым управлением, аналоговой автоматикой и их элементами
Сообщение
Автор
Аватара пользователя
Engineer_Keen
Сообщения: 313
Зарегистрирован: Ср фев 24, 2010 11:15 am
Имя: Василий
Откуда: Москва
Поблагодарили: 5 раз

Re: Самодельный локомотивный декодер.

#241 Непрочитанное сообщение Engineer_Keen »

Для тех кому интересно. Реализация чтения команды (осторожно, ассемблер :mrgreen: )
Последний вариант выглядит примерно так:
1) Настраиваем таймер (например 0-й) с предделителем 8 (пример для Fclk=8МГц)
2) Настраиваем прерывание по перепаду и для этого прерывания пишем следующий обработчик:

Код: Выделить всё

DCC_READ:
	PUSH	r16		;сохраняем R16
	IN	R16,SREG   ;и SREG
	PUSH	R16
	IN	r16,TCNT1L	 ;читаем прошедший интервал (нужно младших 8 бит)
	SUBI	R16,-32 ;некоторые преобразования
	COM	R16 ;которые позволяют интервал превратить в соответствующий бит (60 us - 1, 120us - 0)
	OUT	TCNT1L,ZERO ;обнуляем таймер
	SBIC	PINA,0 ;реагируем только на каждый 2-й перепад 
	RJMP	I_RET	 ;остальные игнорируем
	BST	R16,7	;сохраняем "результат измерения" в Т
	CJNE	XL,low(cmd-1),C_START ;если прием команды не был начат, переход на C_START
	BRTC	BITZERO ;если Т=0, преамбула кончилась, переход на BITZERO
	INC	BITCOUNT ;иначе считаем "1"-ы
	RJMP	I_RET	;выходим
BITZERO:CJLO	BITCOUNT,12,RESCMD		;если "1"-ц меньше 12, ошибка приема, переход на сброс
	LDI	XL,low(cmd) ;иначе, переводим указатель на первый адрес команды
	RJMP	RESBIT ;сброс счетчика битов
C_START:CJEQ	XL,low(cmd+7),RESCMD		;если байт>7, слишком длинная команда, переход на сброс
	INC	BITCOUNT ;увеличиваем биты
	CJEQ	BITCOUNT,9,BIT9	;если битов 9, переход на BIT9
	LSL	CurrByte ;сдвигаем байт
	BLD	CurrByte,0 ;загружаем в MSB "результат измерения"
	RJMP	I_RET	;выходим
BIT9:	ST	X+,CurrByte ;сохраняем байт в ОЗУ
	BRTC	RESBIT ;если 9-й бит 0, выходим
	SBR	CON1,(1<<DCC_CMD_READY) ;если нет, ставим флаг что команда принята полностью
	RJMP	RESBIT ;и выходим
RESCMD:	LDI	XL,low(cmd-1) ;сброс указателя 
RESBIT:	CLR	BITCOUNT ;и счетчика бит
I_RET:	POP	R16 ;восстанавливаем R16
	OUT	SREG,R16 ;и SREG
	POP	r16
	RETI ;выход из прерывания
3) В главном цикле проверяем флаг DCC_CMD_READY, и если установлен идем в обработчик команд (там сбрасываем флаг и указатель).
Интересно посмотреть другие варианты.

dom812005
Сообщения: 148
Зарегистрирован: Вс мар 18, 2012 2:06 am

Re: Самодельный локомотивный декодер.

#242 Непрочитанное сообщение dom812005 »

Взгляните на эту печатку, помоему все верно. Похоже так и придется самому его зделать, пока все отладишь... :D Короче: верхний слой необходимо через зеркало, а вот второй слой без инверсии так и распечатывать. Главное многие скачивают и молчат как на допросе, нет что бы.. :D Ладно скоро изготовлю и отпишусь, может еще чего вылезет.
Вложения
Locdec4.rar
(7.71 КБ) 534 скачивания

Аватара пользователя
Engineer_Keen
Сообщения: 313
Зарегистрирован: Ср фев 24, 2010 11:15 am
Имя: Василий
Откуда: Москва
Поблагодарили: 5 раз

Re: Самодельный локомотивный декодер.

#243 Непрочитанное сообщение Engineer_Keen »

dom812005 писал(а):Главное многие скачивают и молчат как на допросе, нет что бы.. :D Ладно скоро изготовлю и отпишусь, может еще чего вылезет.
Ну у меня например диптрейса нету и ставить ради этого влом :mrgreen:

dom812005
Сообщения: 148
Зарегистрирован: Вс мар 18, 2012 2:06 am

Re: Самодельный локомотивный декодер.

#244 Непрочитанное сообщение dom812005 »

К справке: DipTrace открывает P-Cad и многие другие, а вот наоборот проверяйте сами ( импорт и экспорт действует в обоих направлениях). Если нужно могу ссылку положить, где можно скачать.

Аватара пользователя
Жорик_У
Сообщения: 481
Зарегистрирован: Пн мар 17, 2008 3:46 pm
Откуда: Туапсе
Контактная информация:

Re: Самодельный локомотивный декодер.

#245 Непрочитанное сообщение Жорик_У »

Блин, надо бы покрасить ЖД форум в шпальный цвет и запах прицепить креозота. А так куча хворумов на одно лицо...
Последний раз редактировалось Жорик_У Вт апр 24, 2012 8:25 am, всего редактировалось 1 раз.

dom812005
Сообщения: 148
Зарегистрирован: Вс мар 18, 2012 2:06 am

Re: Самодельный локомотивный декодер.

#246 Непрочитанное сообщение dom812005 »

Кто-нибудь преведите. :mrgreen: :mrgreen: :mrgreen:

Аватара пользователя
Engineer_Keen
Сообщения: 313
Зарегистрирован: Ср фев 24, 2010 11:15 am
Имя: Василий
Откуда: Москва
Поблагодарили: 5 раз

Re: Самодельный локомотивный декодер.

#247 Непрочитанное сообщение Engineer_Keen »

Видимо окошком промахнулись :lol:

Федюнь
Сообщения: 1430
Зарегистрирован: Вс фев 19, 2012 7:18 am
Имя: Фарид
Откуда: Узбекистан Ташкент
Контактная информация:

Re: Самодельный локомотивный декодер.

#248 Непрочитанное сообщение Федюнь »

Вообшем обьездил все магазины какие есть,беда выходит с фриками,нету практический ничего, только в одном магазе на заказ 24 по тройной цене,нельзяли на пиках придумать?звуковой декодер.

dom812005
Сообщения: 148
Зарегистрирован: Вс мар 18, 2012 2:06 am

Re: Самодельный локомотивный декодер.

#249 Непрочитанное сообщение dom812005 »

А по интернет магазинам проитись религия не позволяет.

Аватара пользователя
Жорик_У
Сообщения: 481
Зарегистрирован: Пн мар 17, 2008 3:46 pm
Откуда: Туапсе
Контактная информация:

Re: Самодельный локомотивный декодер.

#250 Непрочитанное сообщение Жорик_У »

что есть фрик?

Ответить

Вернуться в «Цифровое управление, Аналоговая автоматика и их элементы»