Jump to content
tifaso

Переписать системы ду из ассемблера в си

Recommended Posts

Есть прошивки систем дистанционного управления на ассемблере. Одна на 4 канала. Вторая на 16 каналов. Все схемы комплектные со своими пультами это для меня очень важно.

4 канальная система.zip  16 канальная система.zip

В архивах также вложены все схемы и фьюзы. Всё это работает само по себе нормально, но чтобы где то её использовать нужно как то всё время выкручиваться.

Это бы всё облегчило если бы кто помог переписать эти прошивки с ассемблера на си сохранив при этом полностью весь функционал. Так как в си мне разобраться гораздо легче чем в ассемблере. Так же я там уже сам смогу корректировать код вывода сигнала уже под свои нужды. Типа фиксированное нажатие кнопки или нет.

Я работаю с кодом в Atmel Studio 6.2 ну хотелось бы чтобы была совместимость с этим редактором.


Нарушение правил форума II.24

Share this post


Link to post
Share on other sites

Вряд ли кто за бесплатно согласится. В разделе Работа вам быстрее помогут.

Share this post


Link to post
Share on other sites

Средсв всё равно нет на это.

Интересно всё таки попробовать, а можно ли как то допустим не трогая основной код сделать вставки кодом на си или такое тут не прокатит? Знаю где то такое делают. Но это так как минимум, а так хотелось бы полностью уже переписать было бы меньше проблем.

Edited by tifaso

Нарушение правил форума II.24

Share this post


Link to post
Share on other sites

Повышаем уровень передаваемой мощности в однопарной сети Ethernet

В статье приведено описание новых гибридных разъемов для использования в SPE-приложениях. По сравнению с традиционными разъемами, в основе структуры которых лежит технология PoDL (Power over Data Line), предлагаемое решение содержит в себе дополнительные контакты питания, но сохраняет при этом компактные размеры. А работа с более высокими значениями тока значительно расширяет возможности применения предлагаемых разъемов в различных топологиях, по сравнению с PoDL.
Подробнее

Написать код с нуля намного проще, чем переделывать чужой. Ждите, может найдётся энтузиаст, который вам поможет.

Share this post


Link to post
Share on other sites

Вебинар «Новинки и решения Traco для промышленных и отраслевых приложений» (28.10.2021)

Компэл 28 октября приглашает всех желающих принять участие в вебинаре, где будет рассмотрена новая и перспективная продукция компании Traco. Мы подробно рассмотрим сильные стороны и преимущества продукции Traco, а также коснемся практических вопросов, связанных с измерением уровня шумов, промывкой изделий после пайки и отдельно разберем, как отличить поддельный ИП Traco от оригинала.

Подробнее

Популярные пружинные клеммники Degson со склада Компэл

Пружинные разъемные клеммники Degson с технологией Push-In обеспечивают надежное и безопасное электрическое соединение. При их использовании исключается возможность короткого замыкания в точке контакта, что гарантирует надежное соединение. Электрическая безопасность клеммных блоков подтверждается соответствием мировым стандартам UL, IEC и VDE.
Подробнее

@andrusha152 Здесь нету главного условия. Это комплектность устройства должен быть и пульт и приёмник с полной совместимостью.


Нарушение правил форума II.24

Share this post


Link to post
Share on other sites

Датчики дальности ST обеспечивают безопасность в период COVID-19

Оптические датчики приближения STMicroelectronics из семейства Flight Sense™, средства разработки и программное обеспечение для них позволяют как организовать бесконтактную работу торговых и информационных точек и соблюдение социальной дистанции в непростой эпидемический период, так и строить сложные пространственные системы вплоть до трехмерных моделей. Рассмотрим устройство для обнаружения и измерения расстояний до объектов без физического контакта, и инструментарий для его разработки, а также другие примеры.
Подробнее

Пульт можно взять любой, на Али их куча, с разными протоколами. Самсунг, Сони, RC5 - все эти протоколы неоднократно описаны в сети с примерами. Только под себя код подправить и пользоваться на здоровье.

Share this post


Link to post
Share on other sites

@andrusha152 Нет это не годится. Нужен обязательно самодельный. Только такие варианты и рассматриваются.

Хотя впринцепи есть такой вариант собрать пульт на SAA3010P. Они у меня есть и уже как то найти связи с пультом в приёмнике это самое сложное для меня. У меня есть и прошивка для приёмника на RC5 протоколе, но как найти эти связи это ад для меня. осциллографа нету сразу говорю.


Нарушение правил форума II.24

Share this post


Link to post
Share on other sites
Цитата

Так как в си мне разобраться гораздо легче чем в ассемблере.

Вот и перепиши весь алгоритм на СИ. В чём проблема?

Share this post


Link to post
Share on other sites

@otest Можно попробовать с помощью справочника по ассемблеру попытаться что то написать. Но как сомневаюсь что что то выйдет. Ассемблер сильно сложный и путаный.


Нарушение правил форума II.24

Share this post


Link to post
Share on other sites
10 минут назад, otest сказал:

перепиши весь алгоритм на СИ

Для этого нужно знать ассемблер и Си.

 

12 минут назад, otest сказал:

В чём проблема?

Вот в этом и проблема. :)

 

Share this post


Link to post
Share on other sites
Цитата

Для этого нужно знать ассемблер и Си.

Для этого нужно знать алгоритм работы устройства. А на каком языке это написано устройству на плевать.

Share this post


Link to post
Share on other sites

Разница между ассемблером и СИ примерно такая:
Если на СИ программа выглядит так: "Открыть форточку", то на Ассемблере это будет иметь вид:" Встать с дивана, прошагать направо 2 метра, налево полтора, поднять руку, растопырить кисть, поднести к ручке, сжать кисть, повернуть ручку, потянуть .. и т.д."
Причём "встать с дивана" и "шагнуть"- это будут ещё отдельные подпрограммы.:lol:

Берёшь листинг в одну руку, справочник в другую и по порядку разбираешься с каждой командой, пишешь комментарии в каждую строку - что здесь происходит. 
Всё это куда реальней, чем ждать у моря погоды. А там, глядишь, и нужда переписывать программу отпадёт, просто внесёшь своих изменения.

 


"Я не знаю какой там коэффициент, я просто паять умею. "

Share this post


Link to post
Share on other sites
9 часов назад, otest сказал:

устройству на плевать

А при чём здесь устройство? Тема про другое.

Share this post


Link to post
Share on other sites

Сейчас перевёл для начала все имеющиеся комментарии в фале листинга и в коде прошивок для 16 канальной системы ДУ. Уже даже сейчас из этих комментариев стала понятна примерная логика работы программ. Теперь ещё сделаю также перевод комментариев на 4 канальную систему. Ну и тогда уже начну разбирать поочерёдно каждую команду с помощью справочника и делая свои приписки что за что отвечает и что делает. Ну а там уже посмотрим что выйдет.

Edited by tifaso

Нарушение правил форума II.24

Share this post


Link to post
Share on other sites

Закончил переводы комментариев и начал потихоньку копаться в справочнике ассемблера. И тут я вообще стал понимать, то что по сути то мне и не стоит даже это всё переписывать, а лишь достаточно переписать выводы сигнала на выходе приёмника чтобы его можно было правильно обработать, но тут ещё нужно разобраться от куда что приходит и как приёмник подаёт сигналы на разные каналы. Примерную логику я знаю так как система дистанционного управления мне близка было не мало литературы по ней изучено.Нужно только разбираться кодом. из комментариев в прошивке пульта я понял что сигнал передаётся на частоте 37 мг. там это чётко написано.Ну мне эту часть можно даже не трогать. Принимать и проводить дальнейшую обработку сигналов я буду другой микросхемой со своей прошивкой. А здесь мне нужно будет сделать так чтобы приёмник на выход подавал сигнал так как будто идёт обычное нажатие на кнопку. В общем при нажатии на пульт выдать отрицательный сигнал на соответствующем выводе приёмника.

Edited by tifaso

Нарушение правил форума II.24

Share this post


Link to post
Share on other sites

Всё вроде бы как посидел сравнил прошивки посмотрел справочник и понял что же нужно сделать. Достаточно переписать несколько строк кода и всё будет в порядке. Сигнал на выходе будет выходить так как нужно. И не нужно мне больше делать этих костылей на выходе. Обрабатывать сигнал я уже всё равно своей микросхемой буду вернее со своей прошивкой на си. А тут уж лучше сделать так.

Edited by tifaso

Нарушение правил форума II.24

Share this post


Link to post
Share on other sites

Всё переписал как мне нужно осталось только протестироваль, но у меня сейчас не на чем тестировать нужно ещё собирать саму систему.Но думаю что всё уже должно работать. Ведь я смотрел в других прошивках этого  же автора как он делал там и наконец то уловил суть алгоритма данного кода. Всё всем спасибо.

Edited by tifaso

Нарушение правил форума II.24

Share this post


Link to post
Share on other sites

В общем собрал на макетке без пайки проверил как то не так оно работает как ожидалось. Ну это прийдётся дальше разбираться править код тестировать.


Нарушение правил форума II.24

Share this post


Link to post
Share on other sites
5 часов назад, tifaso сказал:

Всё переписал как мне нужно

Быстро уж слишком, даже удивился, и в результате

13 минут назад, tifaso сказал:

как то не так оно работает как ожидалось

Кажущаяся простота

6 часов назад, tifaso сказал:

Достаточно переписать несколько строк кода и всё будет в порядке.

Ну да, тогда каждый бы был "писателем".

Share this post


Link to post
Share on other sites

Да ничего страшно на самом то деле уже почти всё как нужно осталось только один момент доработать видимо я где то упустил в коде, но думаю это будет не так сложно найти.


Нарушение правил форума II.24

Share this post


Link to post
Share on other sites

В общем так выкладываю всё как есть в подробностях:

4 канальная система от автора DANYK

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

Схема:

avr_dop.png.d7f232c6bedf4f49f8692e63ed98ea2b.png

 С фиксацией кнопок

 Код пульта:


; Передатчик
; Процессор 1,2 МГц
; f 37 500 Гц
; создатель: DANYK 
; http://danyk.cz

.NOLIST   
.INCLUDE "tn13def.inc"     
.LIST     


.DEF REG=R16		;рабочий регистр
.DEF REG2=R17		;рабочий регистр 2
.DEF CYKLY=R18		;счетчик циклов
.DEF CEK=R19		;регистр ожидания
.DEF CEK2=R20		;регистр ожидания 2
.EQU SMER=DDRB		;управление направлением  
.EQU PORT=PORTB		;порт  
.EQU PINY=PINB		;порт 
                    
.CSEG				;сегмент кода   

.ORG 0
RJMP START

.ORG PCI0addr
RJMP TLACITKO
	
START:

;установить портB
LDI REG,0b00010000
OUT SMER,REG
LDI REG,0b00001111
OUT PORT,REG

; НАСТРОЙКИ ТАЙМЕРА
;LDI	REG,0b00000000 	; установить счетчик на ноль при настройке на сравнение ...
;OUT	TCCR0A,REG    	; ... значения (так называемый CTC), OC0 не используется, подраздел 256
;LDI	REG,37      	; установить сравниваемое значение (мультиплексирование прибл. 100 Гц)
;OUT	OCR0A,REG     	; 
;LDI	REG,0b00000000	; разрешить прерывание обеих цитат
;OUT	TIMSK0,REG    	; (бит 0 включает citac0A, бит 6 включает citac1A)



LDI	REG,0b00100000	; разрешить прерывание PCINT
OUT	GIMSK,REG    	;

LDI	REG,0b00001111	; разрешить прерывание PCINT на 0,1,2,3
OUT	PCMSK,REG    	;

LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG

;выключает аналог. компаратор - никогда не использовался (экономия энергии)
LDI	REG,0b10000000	
OUT	ACSR,REG  

SEI

SMYCKA:
SLEEP
RJMP SMYCKA


TLACITKO:
ZNOVA:
IN REG2,PINY
ANDI REG2,0b00001111

CPI REG2,0b00000111
BREQ TL3
CPI REG2,0b00001011
BREQ TL2
CPI REG2,0b00001101
BREQ TL1
CPI REG2,0b00001110
BREQ TL0

RJMP NENE

;Кнопка кодирования (двухбитное кодирование)
TL0:
LDI REG2,0b00000000
RJMP TL_ZAKOD
TL1:
LDI REG2,0b00000001
RJMP TL_ZAKOD
TL2:
LDI REG2,0b00000010
RJMP TL_ZAKOD
TL3:
LDI REG2,0b00000011
RJMP TL_ZAKOD

TL_ZAKOD:
RCALL VYSILEJ
RJMP ZNOVA
NENE:
LDI REG,0b00001111
OUT PORT,REG
RETI

; Передается с использованием обратного управляющего кода
; Кодирование длины промежутка
; MSB начинается 
VYSILEJ:
LDI CYKLY,6
VYSILEJ_DAL:

RCALL KRATKA_1

SBRS REG2,1
RCALL KRATKA_0
SBRC REG2,1
RCALL DLOUHA_0

RCALL KRATKA_1

SBRS REG2,0
RCALL KRATKA_0
SBRC REG2,0
RCALL DLOUHA_0

RCALL KRATKA_1

SBRC REG2,1
RCALL KRATKA_0
SBRS REG2,1
RCALL DLOUHA_0

RCALL KRATKA_1

SBRC REG2,0
RCALL KRATKA_0
SBRS REG2,0
RCALL DLOUHA_0

RCALL KRATKA_1

RCALL DLOUHA_0
RCALL DLOUHA_0
RCALL DLOUHA_0
RCALL DLOUHA_0

DEC CYKLY
BRNE VYSILEJ_DAL
RET


;Короткий промежуток
KRATKA_0:
LDI CEK,16
CEKEJ_K0:

NOP
NOP
LDI CEK2,9
CEKEJ_K0A:
DEC CEK2
BRNE CEKEJ_K0A

DEC CEK
BRNE CEKEJ_K0
RET


;Длинный промежуток
DLOUHA_0:
LDI CEK,64
CEKEJ_D0:

NOP
NOP
LDI CEK2,9
CEKEJ_D0A:
DEC CEK2
BRNE CEKEJ_D0A

DEC CEK
BRNE CEKEJ_D0
RET


;Короткий импульс
KRATKA_1:
LDI CEK,16
CEKEJ_K1:

LDI REG,0b00011111
OUT PORT,REG

LDI CEK2,3
CEKEJ_K1A:
DEC CEK2
BRNE CEKEJ_K1A

LDI REG,0b00001111
OUT PORT,REG

;NOP
NOP
LDI CEK2,5
CEKEJ_K1B:
DEC CEK2
BRNE CEKEJ_K1B

DEC CEK
BRNE CEKEJ_K1
RET

Код приёмника:


;4-канальный приемник DO
;кодируется длиной промежутка. 
;1,2MHz
; создан: DANYK
; http://danyk.cz

.NOLIST   
.INCLUDE "tn13def.inc"     
.LIST     

.DEF REG=R16		;рабочий регистр
.DEF REG2=R17		;рабочий регистр 2
.DEF STAV=R18		;регистр состояния входа
.DEF VYST=R19		;регистр выхода
.DEF VYST_2=R20		;предыдущий выходной регистр 
.DEF VYST_3=R21		;регистр предварительного вывода 
.DEF PRODLEVA=R22	;отложить до дальнейшей реакции
.DEF BITY=R23		;счетчик битов

.EQU SMER=DDRB		;контроль направления  
.EQU PORT=PORTB		;порт  
.EQU PINY=PINB		;порт 
                    
.CSEG				;сегмент кода   

.ORG 0
RJMP START

.ORG PCI0addr
RJMP SIGNAL
	
.ORG OC0Aaddr
RJMP CAS_VYPRSEL

START:

LDI REG,LOW(RAMEND)
OUT SPL,REG

;настройки портB
LDI REG,0b00001111
OUT SMER,REG
LDI REG,0b00010000
OUT PORT,REG

; НАСТРОЙКИ ТАЙМЕРА
LDI	REG,0b00000010 	; установить счетчик на ноль, когда установлен для сравнения ...
OUT	TCCR0A,REG    	; ... значения (так называемый CTC), OC0 не используется
LDI	REG,0b00000011 	; делитель 64
OUT	TCCR0B,REG    	; 
LDI	REG,255      	; устанавливает сравниваемое значение
OUT	OCR0A,REG     	; 
LDI	REG,0b00000100	; разрешить прерывание OCIE0A
OUT	TIMSK0,REG    	; 


LDI	REG,0b00100000	; включить прервание PCINT
OUT	GIMSK,REG    	;

LDI	REG,0b00010000	; разрешить прерывание PCINT на 4
OUT	PCMSK,REG    	;

LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG

;выключает аналог. компаратор - никогда не использовался (экономия энергии)
LDI	REG,0b10000000	
OUT	ACSR,REG  

SEI

SMYCKA:
SLEEP
RJMP SMYCKA


SIGNAL:
IN STAV,PINY
COM STAV	;инвертирует входной сигнал (приемник в состоянии покоя log1)

;Низкий уровень
SBRC STAV,4
RJMP NE_10

LDI REG,0
OUT TCNT0,REG

NE_10:

;Высокий уровень
SBRS STAV,4
RJMP NE_01

IN REG,TCNT0

CPI REG,4		;Порог затемнения 
BRLO ZAKMIT

CPI REG,64		;Длинный промежуток / интервал длины промежутка
BRLO NE_KONEC_SNIMKU

RCALL KONTROLA

MOV VYST_3,VYST_2
MOV VYST_2,VYST

NE_KONEC_SNIMKU:

LSL VYST
INC BITY
IN REG,TCNT0
CPI REG,16		;Порог короткого / длинного промежутка
BRLO KRATKA_M
INC VYST
KRATKA_M:

ZAKMIT:
NE_01:


LDI	REG,0b00100000	;включить спящий режим и установить режим ожидания
OUT	MCUCR,REG
RETI


;проверить правильность передачи
KONTROLA:
ANDI VYST,0b00001111
CPI BITY,5		;если количество битов не подходит, сбросить код
BRNE SPATNE_BITY
CP VYST_2,VYST	;если 3 последовательных кода не совпадают, он не отвечает
BRNE RUZNE_KODY
CP VYST_3,VYST	;если 3 последовательных кода не совпадают, он не отвечает
BRNE RUZNE_KODY
RCALL PRIJEM
RUZNE_KODY:
CLR BITY
RET
SPATNE_BITY:
CLR VYST
CLR BITY
RET



CAS_VYPRSEL:

RCALL KONTROLA

LDI VYST,0
LDI VYST_2,1
LDI VYST_3,2

LDI PRODLEVA,0

LDI REG,0
OUT TCNT0,REG

LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG
RETI



PRIJEM:
CPI PRODLEVA,0
BRNE NEREAGUJ
IN REG,PORT

ANDI VYST,0b00001111

CPI VYST,0b00000011
BREQ TL0
CPI VYST,0b00000110
BREQ TL1
CPI VYST,0b00001001
BREQ TL2
CPI VYST,0b00001100
BREQ TL3

RJMP NEREAGUJ

TL0:
SBRC REG,0
CBI PORT,0
SBRS REG,0
SBI PORT,0
RJMP KONEC_TL

TL1:
SBRC REG,1
CBI PORT,1
SBRS REG,1
SBI PORT,1
RJMP KONEC_TL

TL2:
SBRC REG,2
CBI PORT,2
SBRS REG,2
SBI PORT,2
RJMP KONEC_TL

TL3:
SBRC REG,3
CBI PORT,3
SBRS REG,3
SBI PORT,3
RJMP KONEC_TL

KONEC_TL:
NEREAGUJ:
LDI PRODLEVA,1
RET

Ещё одна 4 канальная система тоже от автора DANYK только это уже без фиксации кнопок

Код пульта:


; Передатчик
; Процессор 1,2 МГц
; f 37 500 Гц
; создатель: DANYK 
; http://danyk.cz

.NOLIST   
.INCLUDE "tn13def.inc"     
.LIST     


.DEF REG=R16		;рабочий регистр
.DEF REG2=R17		;рабочий регистр 2
.DEF CYKLY=R18		;счетчик циклов
.DEF CEK=R19		;регистр ожидания
.DEF CEK2=R20		;регистр ожидания 2
.EQU SMER=DDRB		;управление направлением  
.EQU PORT=PORTB		;порт  
.EQU PINY=PINB		;порт 
                    
.CSEG				;сегмент кода   

.ORG 0
RJMP START

.ORG PCI0addr
RJMP TLACITKO
	
START:

;установить портB
LDI REG,0b00010000
OUT SMER,REG
LDI REG,0b00001111
OUT PORT,REG

; НАСТРОЙКИ ТАЙМЕРА
;LDI	REG,0b00000000 	; установить счетчик на ноль при настройке на сравнение ...
;OUT	TCCR0A,REG    	; ... значения (так называемый CTC), OC0 не используется, подраздел 256
;LDI	REG,37      	; установить сравниваемое значение (мультиплексирование прибл. 100 Гц)
;OUT	OCR0A,REG     	; 
;LDI	REG,0b00000000	; разрешить прерывание обеих цитат
;OUT	TIMSK0,REG    	; (бит 0 включает citac0A, бит 6 включает citac1A) 



LDI	REG,0b00100000	; разрешить прерывание PCINT
OUT	GIMSK,REG    	;

LDI	REG,0b00001111	; разрешить прерывание PCINT на 0,1,2,3
OUT	PCMSK,REG    	;

LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG

;выключает аналог. компаратор - никогда не использовался (экономия энергии) 
LDI	REG,0b10000000	
OUT	ACSR,REG  

SEI

SMYCKA:
SLEEP
RJMP SMYCKA


TLACITKO:
ZNOVA:
IN REG2,PINY
ANDI REG2,0b00001111

CPI REG2,0b00000111
BREQ TL3
CPI REG2,0b00001011
BREQ TL2
CPI REG2,0b00001101
BREQ TL1
CPI REG2,0b00001110
BREQ TL0

RJMP NENE

;Кодирование кнопок (двухбитное кодирование)
TL0:
LDI REG2,0b00000000
RJMP TL_ZAKOD
TL1:
LDI REG2,0b00000001
RJMP TL_ZAKOD
TL2:
LDI REG2,0b00000010
RJMP TL_ZAKOD
TL3:
LDI REG2,0b00000011
RJMP TL_ZAKOD

TL_ZAKOD:
RCALL VYSILEJ
RJMP ZNOVA
NENE:
LDI REG,0b00001111
OUT PORT,REG
RETI

; Передается с использованием обратного управляющего кода
; Кодирование длины зазора
; MSB начинается 
VYSILEJ:
LDI CYKLY,6
VYSILEJ_DAL:

RCALL KRATKA_1

SBRS REG2,1
RCALL KRATKA_0
SBRC REG2,1
RCALL DLOUHA_0

RCALL KRATKA_1

SBRS REG2,0
RCALL KRATKA_0
SBRC REG2,0
RCALL DLOUHA_0

RCALL KRATKA_1

SBRC REG2,1
RCALL KRATKA_0
SBRS REG2,1
RCALL DLOUHA_0

RCALL KRATKA_1

SBRC REG2,0
RCALL KRATKA_0
SBRS REG2,0
RCALL DLOUHA_0

RCALL KRATKA_1

RCALL DLOUHA_0
RCALL DLOUHA_0
RCALL DLOUHA_0
RCALL DLOUHA_0

DEC CYKLY
BRNE VYSILEJ_DAL
RET


;Короткий промежуток
KRATKA_0:
LDI CEK,16
CEKEJ_K0:

NOP
NOP
LDI CEK2,9
CEKEJ_K0A:
DEC CEK2
BRNE CEKEJ_K0A

DEC CEK
BRNE CEKEJ_K0
RET


;Длинный промежуток
DLOUHA_0:
LDI CEK,64
CEKEJ_D0:

NOP
NOP
LDI CEK2,9
CEKEJ_D0A:
DEC CEK2
BRNE CEKEJ_D0A

DEC CEK
BRNE CEKEJ_D0
RET


;Короткий импульс
KRATKA_1:
LDI CEK,16
CEKEJ_K1:

LDI REG,0b00011111
OUT PORT,REG

LDI CEK2,3
CEKEJ_K1A:
DEC CEK2
BRNE CEKEJ_K1A

LDI REG,0b00001111
OUT PORT,REG

;NOP
NOP
LDI CEK2,5
CEKEJ_K1B:
DEC CEK2
BRNE CEKEJ_K1B

DEC CEK
BRNE CEKEJ_K1
RET

Код приёмника:


; 4-канальный приемник DO для команд.
; кодируется длиной промежутка.
; Внутренний генератор 1,2 МГц
; создатель: DANYK
; http://danyk.cz

.NOLIST   
.INCLUDE "tn13def.inc"     
.LIST     

.DEF REG=R16		;рабочий регистр
.DEF REG2=R17		;рабочий регистр 2
.DEF STAV=R18		;регистр состояния входа
.DEF VYST=R19		;выходной регистр
.DEF VYST_2=R20		;предыдущий выходной регистр 
.DEF VYST_3=R21		;регистр предварительного вывода 
.DEF BITY=R22		;счетчик битов

.EQU SMER=DDRB		;управление направлением  
.EQU PORT=PORTB		;порт  
.EQU PINY=PINB		;порт 
                    
.CSEG				;сегмент кода   

.ORG 0
RJMP START

.ORG PCI0addr
RJMP SIGNAL
	
.ORG OC0Aaddr
RJMP CAS_VYPRSEL

START:

LDI REG,LOW(RAMEND)
OUT SPL,REG

;установить портB
LDI REG,0b00001111
OUT SMER,REG
LDI REG,0b00010000
OUT PORT,REG

; НАСТРОЙКИ ТАЙМЕРА
LDI	REG,0b00000010 	; установить счетчик на ноль при достижении сравнения ...
OUT	TCCR0A,REG    	; ... значения (так называемый CTC), OC0 не используется
LDI	REG,0b00000011 	; делитель 64
OUT	TCCR0B,REG    	; 
LDI	REG,255      	; устанавливает сравниваемое значение
OUT	OCR0A,REG     	; 
LDI	REG,0b00000100	; разрешить прерывание OCIE0A
OUT	TIMSK0,REG    	; 


LDI	REG,0b00100000	; разрешить прерывание PCINT
OUT	GIMSK,REG    	;

LDI	REG,0b00010000	; разрешить прерывание PCINT на 4
OUT	PCMSK,REG    	;

LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG

;выключает аналог. компаратор - никогда не использовался (экономия энергии) 
LDI	REG,0b10000000	
OUT	ACSR,REG  

SEI


SMYCKA:
SLEEP
RJMP SMYCKA


SIGNAL:
IN STAV,PINY
COM STAV	;инвертирует входной сигнал (приемник имеет log1 в состоянии покоя)

;Низкий уровень
SBRC STAV,4
RJMP NE_10

LDI REG,0
OUT TCNT0,REG

NE_10:

;Верхний уровень
SBRS STAV,4
RJMP NE_01

IN REG,TCNT0

CPI REG,4		;Порог длины колебаний 
BRLO ZAKMIT

CPI REG,64		;Большой разрыв / пороговый разрыв
BRLO NE_KONEC_SNIMKU

RCALL KONTROLA

MOV VYST_3,VYST_2
MOV VYST_2,VYST

NE_KONEC_SNIMKU:

LSL VYST
INC BITY
IN REG,TCNT0
CPI REG,16		;Порог короткого / длинного промежутка
BRLO KRATKA_M
INC VYST
KRATKA_M:

ZAKMIT:
NE_01:


LDI	REG,0b00100000	;включить спящий режим и установить режим ожидания
OUT	MCUCR,REG
RETI


;проверьте правильность передачи
KONTROLA:
ANDI VYST,0b00001111
CPI BITY,5		;если количество бит не влезает, сбросить код
BRNE SPATNE_BITY
CP VYST_2,VYST	;если 3 последовательных кода не совпадают, он не отвечает
BRNE RUZNE_KODY
CP VYST_3,VYST	;если 3 последовательных кода не совпадают, он не отвечает
BRNE RUZNE_KODY
RCALL PRIJEM
RUZNE_KODY:
CLR BITY
RET
SPATNE_BITY:
CLR VYST
CLR BITY
RET



CAS_VYPRSEL:

RCALL KONTROLA

LDI VYST,0
LDI VYST_2,1
LDI VYST_3,2

LDI REG,0b00010000
OUT PORT,REG

LDI REG,0
OUT TCNT0,REG

LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG
RETI



PRIJEM:

ANDI VYST,0b00001111

CPI VYST,0b00000011
BREQ TL0
CPI VYST,0b00000110
BREQ TL1
CPI VYST,0b00001001
BREQ TL2
CPI VYST,0b00001100
BREQ TL3

RJMP KONEC_TL

TL0:
SBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
RJMP KONEC_TL

TL1:
CBI PORT,0
SBI PORT,1
CBI PORT,2
CBI PORT,3
RJMP KONEC_TL

TL2:
CBI PORT,0
CBI PORT,1
SBI PORT,2
CBI PORT,3
RJMP KONEC_TL

TL3:
CBI PORT,0
CBI PORT,1
CBI PORT,2
SBI PORT,3
RJMP KONEC_TL

KONEC_TL:
RET

 

16 канальная система от автора DANYK

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

Схема:

avr_do2.png.c4b84b065773cf6986a0adb84aaaf6d9.png

С фиксацией кнопок

Код пульта:


; Передатчик DO, 16 каналов
; CPU 1 МГц
; f 37000 Гц
; создатель: DANYK 
; http://danyk.cz

.NOLIST   
.INCLUDE "tn2313Adef.inc"     
.LIST     


.DEF REG=R16		;рабочий регистр
.DEF REG2=R17		;рабочий регистр 2
.DEF CYKLY=R18		;счетчик циклов
.DEF CEK=R19		;регистр ожидания
.DEF CEK2=R20		;регистр ожидания 2

.EQU SMER=DDRB		;управление направлением  
.EQU PORT=PORTB		;порт  
.EQU PINY=PINB		;входы

.EQU SMER2=DDRD		;управление направлением  
.EQU PORT2=PORTD	;порт  
.EQU PINY2=PIND		;входы

.EQU SMER3=DDRA		;управление направлением  
.EQU PORT3=PORTA	;порт  
.EQU PINY3=PINA		;входы
                    
.CSEG				;сегмент кода   

.ORG 0
RJMP START

.ORG PCIBaddr
RJMP TLACITKO_0_7

.ORG PCIAaddr
RJMP TLACITKO_15

.ORG PCIDaddr
RJMP TLACITKO_8_14

	
START:

LDI REG,LOW(RAMEND)
OUT SPL,REG

;установить порт B
LDI REG,0b00000000
OUT SMER,REG
LDI REG,0b11111111
OUT PORT,REG

;установить порт D
LDI REG,0b00000000
OUT SMER2,REG
LDI REG,0b01111111
OUT PORT2,REG

;установить порт A
LDI REG,0b00000010
OUT SMER3,REG
LDI REG,0b00000001
OUT PORT3,REG


LDI	REG,0b00111000	; включить прерывание PCINT 
OUT	GIMSK,REG    	;

LDI	REG,0b01111111	; включить прерывание PCINT 
OUT	PCMSK2,REG    	;

LDI	REG,0b00000001	; включить прерывание PCINT 
OUT	PCMSK1,REG    	;

LDI	REG,0b11111111	; включить прерывание PCINT 
OUT	PCMSK,REG    	;


LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG

;выключает аналог. компаратор - никогда не использовался (экономия энергии) 
LDI	REG,0b10000000	
OUT	ACSR,REG  

;отключает другие вещи: цитаты, USI, USART (экономия энергии)
LDI	REG,0b00001111
OUT	PRR,REG  


SEI

SMYCKA:
SLEEP
RJMP SMYCKA


;Кнопка 0-7
TLACITKO_0_7:
IN REG2,PINY
;ANDI REG2,0b11111111

CPI REG2,0b01111111
BREQ TL7
CPI REG2,0b10111111
BREQ TL6
CPI REG2,0b11011111
BREQ TL5
CPI REG2,0b11101111
BREQ TL4
CPI REG2,0b11110111
BREQ TL3
CPI REG2,0b11111011
BREQ TL2
CPI REG2,0b11111101
BREQ TL1
CPI REG2,0b11111110
BREQ TL0

LDI REG,0b00000001
OUT PORT3,REG
RETI

;Кодирует кнопку 0-7.
TL7:
LDI REG2,7
RJMP TL_0_7_ZAKOD
TL6:
LDI REG2,6
RJMP TL_0_7_ZAKOD
TL5:
LDI REG2,5
RJMP TL_0_7_ZAKOD
TL4:
LDI REG2,4
RJMP TL_0_7_ZAKOD
TL3:
LDI REG2,3
RJMP TL_0_7_ZAKOD
TL2:
LDI REG2,2
RJMP TL_0_7_ZAKOD
TL1:
LDI REG2,1
RJMP TL_0_7_ZAKOD
TL0:
LDI REG2,0
RJMP TL_0_7_ZAKOD

TL_0_7_ZAKOD:
RCALL VYSILEJ
RJMP TLACITKO_0_7



;Кнопка 8-14
TLACITKO_8_14:
IN REG2,PINY2
ANDI REG2,0b01111111

CPI REG2,0b00111111
BREQ TL14
CPI REG2,0b01011111
BREQ TL13
CPI REG2,0b01101111
BREQ TL12
CPI REG2,0b01110111
BREQ TL11
CPI REG2,0b01111011
BREQ TL10
CPI REG2,0b01111101
BREQ TL9
CPI REG2,0b01111110
BREQ TL8

LDI REG,0b00000001
OUT PORT3,REG
RETI

;Кодирует кнопку 8-14
TL14:
LDI REG2,14
RJMP TL_8_14_ZAKOD
TL13:
LDI REG2,13
RJMP TL_8_14_ZAKOD
TL12:
LDI REG2,12
RJMP TL_8_14_ZAKOD
TL11:
LDI REG2,11
RJMP TL_8_14_ZAKOD
TL10:
LDI REG2,10
RJMP TL_8_14_ZAKOD
TL9:
LDI REG2,9
RJMP TL_8_14_ZAKOD
TL8:
LDI REG2,8
RJMP TL_8_14_ZAKOD

TL_8_14_ZAKOD:
RCALL VYSILEJ
RJMP TLACITKO_8_14


;Кнопка 15
TLACITKO_15:
IN REG2,PINY3
ANDI REG2,0b00000001

CPI REG2,0b00000000
BREQ TL15

LDI REG,0b00000001
OUT PORT3,REG
RETI

;Кодирует кнопку 15
TL15:
LDI REG2,15
RJMP TL_15_ZAKOD

TL_15_ZAKOD:
RCALL VYSILEJ
RJMP TLACITKO_15




; Передается с использованием обратного управляющего кода
; Кодирование длины промежутка
; MSB начинается 
VYSILEJ:
LDI CYKLY,4
VYSILEJ_DAL:

RCALL KRATKA_1

SBRS REG2,3
RCALL KRATKA_0
SBRC REG2,3
RCALL DLOUHA_0

RCALL KRATKA_1

SBRS REG2,2
RCALL KRATKA_0
SBRC REG2,2
RCALL DLOUHA_0

RCALL KRATKA_1

SBRS REG2,1
RCALL KRATKA_0
SBRC REG2,1
RCALL DLOUHA_0

RCALL KRATKA_1

SBRS REG2,0
RCALL KRATKA_0
SBRC REG2,0
RCALL DLOUHA_0

RCALL KRATKA_1

SBRC REG2,3
RCALL KRATKA_0
SBRS REG2,3
RCALL DLOUHA_0

RCALL KRATKA_1

SBRC REG2,2
RCALL KRATKA_0
SBRS REG2,2
RCALL DLOUHA_0

RCALL KRATKA_1

SBRC REG2,1
RCALL KRATKA_0
SBRS REG2,1
RCALL DLOUHA_0

RCALL KRATKA_1

SBRC REG2,0
RCALL KRATKA_0
SBRS REG2,0
RCALL DLOUHA_0

RCALL KRATKA_1

RCALL DLOUHA_0
RCALL DLOUHA_0
RCALL DLOUHA_0
RCALL DLOUHA_0

DEC CYKLY
BRNE VYSILEJ_DAL
RET


;Короткий промежуток
KRATKA_0:
LDI CEK,16
CEKEJ_K0:

LDI CEK2,8
CEKEJ_K0A:
DEC CEK2
BRNE CEKEJ_K0A

DEC CEK
BRNE CEKEJ_K0
RET


;Длинный промежуток
DLOUHA_0:
LDI CEK,64
CEKEJ_D0:

LDI CEK2,8
CEKEJ_D0A:
DEC CEK2
BRNE CEKEJ_D0A

DEC CEK
BRNE CEKEJ_D0
RET


;Короткий импульс
KRATKA_1:
LDI CEK,16
CEKEJ_K1:

LDI REG,0b00000011
OUT PORT3,REG

NOP
LDI CEK2,2
CEKEJ_K1A:
DEC CEK2
BRNE CEKEJ_K1A

LDI REG,0b00000001
OUT PORT3,REG

NOP
LDI CEK2,4
CEKEJ_K1B:
DEC CEK2
BRNE CEKEJ_K1B

DEC CEK
BRNE CEKEJ_K1
RET

Код приёмника:


; 16-канальный приемник DO
; кодируется длиной промежутка.
; 1 МГц ATTiny2313A
; создатель: DANYK 
; http://danyk.cz

.NOLIST ;Выключить генерацию листинга  
.INCLUDE "tn2313Adef.inc";Вложить другой файл  
.LIST ;Включить генерацию листинга    

;DEF Назначить регистру символическое имя
.DEF REG=R16		;рабочий регистр
.DEF REG2=R17		;рабочий регистр 2
.DEF STAV=R18		;регистр состояния входа
.DEF VYST=R19		;выходной регистр
.DEF VYST_2=R20		;предыдущий выходной регистр
.DEF PRODLEVA=R21	;отложить до дальнейшей реакции
.DEF BITY=R22		;битовый счетчик

;EQU Установить постоянное выражение
.EQU SMER=DDRB		;управление направлением  
.EQU PORT=PORTB		;порт  

.EQU SMER2=DDRD		;управление направлением  
.EQU PORT2=PORTD	;порт  

.EQU SMER3=DDRA		;управление направлением  
.EQU PORT3=PORTA	;порт  
.EQU PINY3=PINA		;входы

;CSEG Программный сегмент                    
.CSEG				;сегмент кода   

;ORG  Установить положение в сегменте
;RJMP Относительный переход
.ORG 0
RJMP START

.ORG OC0Aaddr
RJMP CAS_VYPRSEL

.ORG PCIAaddr
RJMP SIGNAL
	

START:

LDI REG,LOW(RAMEND)
OUT SPL,REG

;установить порт B
LDI REG,0b11111111
OUT SMER,REG
LDI REG,0b00000000
OUT PORT,REG

;установить порт D
LDI REG,0b01111111
OUT SMER2,REG
LDI REG,0b00000000
OUT PORT2,REG

;установить порт A
LDI REG,0b00000001
OUT SMER3,REG
LDI REG,0b00000010
OUT PORT3,REG

; НАСТРОЙКИ ТАЙМЕРА
LDI	REG,0b00000010 	; установить счетчик на ноль при настройке на сравнение ...
OUT	TCCR0A,REG    	; ... значения (так называемый CTC), OC0 не используется
LDI	REG,0b00000011 	; делитель 64
OUT	TCCR0B,REG    	; 
LDI	REG,213      	; устанавливает сравниваемое значение
OUT	OCR0A,REG     	; 

LDI	REG,0b00000001	; разрешить прерывание OCIE0A
OUT	TIMSK,REG    	; 



LDI	REG,0b00001000	; разрешить прерывание PCINT1
OUT	GIMSK,REG    	;

LDI	REG,0b00000010	; разрешить прерывание PCINT на PA1 (PCINT9)
OUT	PCMSK1,REG    	;

LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG

;выключает аналог. компаратор - никогда не использовался (экономия энергии) 
LDI	REG,0b10000000	
OUT	ACSR,REG  

SEI

SMYCKA:
SLEEP
RJMP SMYCKA


SIGNAL:
IN STAV,PINY3
COM STAV	;инвертирует входной сигнал (приемник в состоянии покоя log1)

;Низкий уровень
SBRC STAV,1
RJMP NE_10

LDI REG,0
OUT TCNT0,REG

NE_10:

;Верхний уровень
SBRS STAV,1
RJMP NE_01

IN REG,TCNT0

CPI REG,3		;Порог колебания / длинного (короткого) импульса
BRLO ZAKMIT

CPI REG,53		;Длинный промежуток / пороговый промежуток
BRLO NE_KONEC_SNIMKU

RCALL KONTROLA

MOV VYST_2,VYST

NE_KONEC_SNIMKU:

LSL VYST
INC BITY
IN REG,TCNT0
CPI REG,13		;Порог короткого / длинного промежутка
BRLO KRATKA_M
INC VYST
KRATKA_M:

ZAKMIT:
NE_01:

LDI	REG,0b00100000	;включить спящий режим и установить режим ожидания
OUT	MCUCR,REG
RETI



CAS_VYPRSEL:

RCALL KONTROLA

CLR VYST
SER VYST_2

CLR PRODLEVA

LDI REG,0
OUT TCNT0,REG

LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG
RETI



;проверьте правильность передачи
KONTROLA:
CPI BITY,9		;если количество бит не влезает, отбросьте код
BRNE SPATNE_BITY
CP VYST_2,VYST	;если 2 последовательных кода не совпадают, он не отвечает
BRNE RUZNE_KODY
RCALL PRIJEM
RUZNE_KODY:
CLR BITY
RET
SPATNE_BITY:
CLR VYST
CLR BITY
RET



PRIJEM:

CPI PRODLEVA,0
BREQ PRODLEVA_JE_0
RJMP KONEC_TL
PRODLEVA_JE_0:

MOV REG,VYST
SWAP REG
ANDI REG,0b00001111

MOV REG2,VYST
COM REG2
ANDI REG2,0b00001111

CP REG,REG2
BREQ SHODA
RJMP KONEC_TL
SHODA:

CLR REG2
LDI ZL,LOW(SKOK)
LDI ZH,HIGH(SKOK)
ADD ZL,REG
ADC ZH,REG2
IJMP

SKOK:
RJMP TL0
RJMP TL1
RJMP TL2
RJMP TL3
RJMP TL4
RJMP TL5
RJMP TL6
RJMP TL7
RJMP TL8
RJMP TL9
RJMP TL10
RJMP TL11
RJMP TL12
RJMP TL13
RJMP TL14
RJMP TL15


TL0:
;IN Чтение порта
IN REG,PORT
;SBRC Пропустить если бит в регистре очищен
SBRC REG,0
;CBI Очистить бит в порту
CBI PORT,0
;SBRS Пропустить если бит в регистре установлен
SBRS REG,0
;SBI Установить бит в порту
SBI PORT,0
;RJMP Относительный переход
RJMP KONEC_TL

TL1:
IN REG,PORT
SBRC REG,1
CBI PORT,1
SBRS REG,1
SBI PORT,1
RJMP KONEC_TL

TL2:
IN REG,PORT
SBRC REG,2
CBI PORT,2
SBRS REG,2
SBI PORT,2
RJMP KONEC_TL

TL3:
IN REG,PORT
SBRC REG,3
CBI PORT,3
SBRS REG,3
SBI PORT,3
RJMP KONEC_TL

TL4:
IN REG,PORT
SBRC REG,4
CBI PORT,4
SBRS REG,4
SBI PORT,4
RJMP KONEC_TL

TL5:
IN REG,PORT
SBRC REG,5
CBI PORT,5
SBRS REG,5
SBI PORT,5
RJMP KONEC_TL

TL6:
IN REG,PORT
SBRC REG,6
CBI PORT,6
SBRS REG,6
SBI PORT,6
RJMP KONEC_TL

TL7:
IN REG,PORT
SBRC REG,7
CBI PORT,7
SBRS REG,7
SBI PORT,7
RJMP KONEC_TL

TL8:
IN REG,PORT2
SBRC REG,0
CBI PORT2,0
SBRS REG,0
SBI PORT2,0
RJMP KONEC_TL

TL9:
IN REG,PORT2
SBRC REG,1
CBI PORT2,1
SBRS REG,1
SBI PORT2,1
RJMP KONEC_TL

TL10:
IN REG,PORT2
SBRC REG,2
CBI PORT2,2
SBRS REG,2
SBI PORT2,2
RJMP KONEC_TL

TL11:
IN REG,PORT2
SBRC REG,3
CBI PORT2,3
SBRS REG,3
SBI PORT2,3
RJMP KONEC_TL

TL12:
IN REG,PORT2
SBRC REG,4
CBI PORT2,4
SBRS REG,4
SBI PORT2,4
RJMP KONEC_TL

TL13:
IN REG,PORT2
SBRC REG,5
CBI PORT2,5
SBRS REG,5
SBI PORT2,5
RJMP KONEC_TL

TL14:
IN REG,PORT2
SBRC REG,6
CBI PORT2,6
SBRS REG,6
SBI PORT2,6
RJMP KONEC_TL

TL15:
IN REG,PORT3
SBRC REG,0
CBI PORT3,0
SBRS REG,0
SBI PORT3,0
RJMP KONEC_TL

KONEC_TL:
LDI PRODLEVA,1
RET

 

Комментарии в коде перевёл на русский чтобы было легче разобраться.

Мне же нужно сделать 16 канальную систему без фиксации кнопок по этим же схемам.

Впринцепи я уже попробовал переписать прошивку приёмника вот что из этого получилось.

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

; 16-канальный приемник DO
; кодируется длиной промежутка.
; 1 МГц ATTiny2313A
; создатель: DANYK 
; http://danyk.cz

.NOLIST ;Выключить генерацию листинга  
.INCLUDE "tn2313Adef.inc";Вложить другой файл  
.LIST ;Включить генерацию листинга    

;DEF Назначить регистру символическое имя
.DEF REG=R16		;рабочий регистр
.DEF REG2=R17		;рабочий регистр 2
.DEF STAV=R18		;регистр состояния входа
.DEF VYST=R19		;выходной регистр
.DEF VYST_2=R20		;предыдущий выходной регистр
.DEF PRODLEVA=R21	;отложить до дальнейшей реакции
.DEF BITY=R22		;битовый счетчик

;EQU Установить постоянное выражение
.EQU SMER=DDRB		;управление направлением  
.EQU PORT=PORTB		;порт  

.EQU SMER2=DDRD		;управление направлением  
.EQU PORT2=PORTD	;порт  

.EQU SMER3=DDRA		;управление направлением  
.EQU PORT3=PORTA	;порт  
.EQU PINY3=PINA		;входы

;CSEG Программный сегмент                    
.CSEG				;сегмент кода   

;ORG  Установить положение в сегменте
;RJMP Относительный переход
.ORG 0
RJMP START

.ORG OC0Aaddr
RJMP CAS_VYPRSEL

.ORG PCIAaddr
RJMP SIGNAL
	

START:

LDI REG,LOW(RAMEND)
OUT SPL,REG

;установить порт B
LDI REG,0b11111111
OUT SMER,REG
LDI REG,0b00000000
OUT PORT,REG

;установить порт D
LDI REG,0b01111111
OUT SMER2,REG
LDI REG,0b00000000
OUT PORT2,REG

;установить порт A
LDI REG,0b00000001
OUT SMER3,REG
LDI REG,0b00000010
OUT PORT3,REG

; НАСТРОЙКИ ТАЙМЕРА
LDI	REG,0b00000010 	; установить счетчик на ноль при настройке на сравнение ...
OUT	TCCR0A,REG    	; ... значения (так называемый CTC), OC0 не используется
LDI	REG,0b00000011 	; делитель 64
OUT	TCCR0B,REG    	; 
LDI	REG,213      	; устанавливает сравниваемое значение
OUT	OCR0A,REG     	; 

LDI	REG,0b00000001	; разрешить прерывание OCIE0A
OUT	TIMSK,REG    	; 



LDI	REG,0b00001000	; разрешить прерывание PCINT1
OUT	GIMSK,REG    	;

LDI	REG,0b00000010	; разрешить прерывание PCINT на PA1 (PCINT9)
OUT	PCMSK1,REG    	;

LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG

;выключает аналог. компаратор - никогда не использовался (экономия энергии) 
LDI	REG,0b10000000	
OUT	ACSR,REG  

SEI

SMYCKA:
SLEEP
RJMP SMYCKA


SIGNAL:
IN STAV,PINY3
COM STAV	;инвертирует входной сигнал (приемник в состоянии покоя log1)

;Низкий уровень
SBRC STAV,1
RJMP NE_10

LDI REG,0
OUT TCNT0,REG

NE_10:

;Верхний уровень
SBRS STAV,1
RJMP NE_01

IN REG,TCNT0

CPI REG,3		;Порог колебания / длинного (короткого) импульса
BRLO ZAKMIT

CPI REG,53		;Длинный промежуток / пороговый промежуток
BRLO NE_KONEC_SNIMKU

RCALL KONTROLA

MOV VYST_2,VYST

NE_KONEC_SNIMKU:

LSL VYST
INC BITY
IN REG,TCNT0
CPI REG,13		;Порог короткого / длинного промежутка
BRLO KRATKA_M
INC VYST
KRATKA_M:

ZAKMIT:
NE_01:

LDI	REG,0b00100000	;включить спящий режим и установить режим ожидания
OUT	MCUCR,REG
RETI



CAS_VYPRSEL:

RCALL KONTROLA

CLR VYST
SER VYST_2

CLR PRODLEVA

LDI REG,0
OUT TCNT0,REG

LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG
RETI



;проверьте правильность передачи
KONTROLA:
CPI BITY,9		;если количество бит не влезает, отбросьте код
BRNE SPATNE_BITY
CP VYST_2,VYST	;если 2 последовательных кода не совпадают, он не отвечает
BRNE RUZNE_KODY
RCALL PRIJEM
RUZNE_KODY:
CLR BITY
RET
SPATNE_BITY:
CLR VYST
CLR BITY
RET



PRIJEM:

CPI PRODLEVA,0
BREQ PRODLEVA_JE_0
RJMP KONEC_TL
PRODLEVA_JE_0:

MOV REG,VYST
SWAP REG
ANDI REG,0b00001111

MOV REG2,VYST
COM REG2
ANDI REG2,0b00001111

CP REG,REG2
BREQ SHODA
RJMP KONEC_TL
SHODA:

CLR REG2
LDI ZL,LOW(SKOK)
LDI ZH,HIGH(SKOK)
ADD ZL,REG
ADC ZH,REG2
IJMP

SKOK:
RJMP TL0
RJMP TL1
RJMP TL2
RJMP TL3
RJMP TL4
RJMP TL5
RJMP TL6
RJMP TL7
RJMP TL8
RJMP TL9
RJMP TL10
RJMP TL11
RJMP TL12
RJMP TL13
RJMP TL14
RJMP TL15


TL0:
SBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL1:
CBI PORT,0
SBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL2:
CBI PORT,0
CBI PORT,1
SBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL3:
CBI PORT,0
CBI PORT,1
CBI PORT,2
SBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL4:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
SBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL5:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
SBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL6:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
SBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL7:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
SBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL8:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
SBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL9:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
SBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL10:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
SBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL11:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
SBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL12:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
SBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL13:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
SBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL14:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
SBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL15:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
SBI PORT3,0
RJMP KONEC_TL

KONEC_TL:
RET

 

Так впринцепи оно работает, но при отжатии кнопки нужно ещё как то отлючать сигнал. И вот тут я вошёл в ступор. Что же дальше делать? Где что ещё исправить?


Нарушение правил форума II.24

Share this post


Link to post
Share on other sites
Guest В прицепе
19 минут назад, tifaso сказал:

Где что ещё исправить?

"Впринцепи"! "Впринцепи" своё исправь! Пожалуйста! Ведь это могут читать люди!

Share this post


Link to post
Share on other sites

@Гость В прицепе Что конкретно там исправлять я так и не догоняю. Всё вроде верно. Нужно только сделать чтобы на отжатие отключалось. А вот и проблемка в том что не могу найти где это. Или мне нужно переписать условие выполнения действия при нажатии.

Edited by tifaso

Нарушение правил форума II.24

Share this post


Link to post
Share on other sites

Сейчас всё таки доработал код вроде бы так как нужно отрабатывает.

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

; 16-канальный приемник DO
; кодируется длиной промежутка.
; 1 МГц ATTiny2313A
; создатель: DANYK 
; http://danyk.cz

.NOLIST ;Выключить генерацию листинга  
.INCLUDE "tn2313Adef.inc";Вложить другой файл  
.LIST ;Включить генерацию листинга    

;DEF Назначить регистру символическое имя
.DEF REG=R16		;рабочий регистр
.DEF REG2=R17		;рабочий регистр 2
.DEF STAV=R18		;регистр состояния входа
.DEF VYST=R19		;выходной регистр
.DEF VYST_2=R20		;предыдущий выходной регистр
.DEF PRODLEVA=R21	;отложить до дальнейшей реакции
.DEF BITY=R22		;битовый счетчик

;EQU Установить постоянное выражение
.EQU SMER=DDRB		;управление направлением  
.EQU PORT=PORTB		;порт  

.EQU SMER2=DDRD		;управление направлением  
.EQU PORT2=PORTD	;порт  

.EQU SMER3=DDRA		;управление направлением  
.EQU PORT3=PORTA	;порт  
.EQU PINY3=PINA		;входы

;CSEG Программный сегмент                    
.CSEG				;сегмент кода   

;ORG  Установить положение в сегменте
;RJMP Относительный переход
.ORG 0
RJMP START

.ORG OC0Aaddr
RJMP CAS_VYPRSEL

.ORG PCIAaddr
RJMP SIGNAL
	

START:

LDI REG,LOW(RAMEND)
OUT SPL,REG

;установить порт B
LDI REG,0b11111111
OUT SMER,REG
LDI REG,0b00000000
OUT PORT,REG

;установить порт D
LDI REG,0b01111111
OUT SMER2,REG
LDI REG,0b00000000
OUT PORT2,REG

;установить порт A
LDI REG,0b00000001
OUT SMER3,REG
LDI REG,0b00000010
OUT PORT3,REG

; НАСТРОЙКИ ТАЙМЕРА
LDI	REG,0b00000010 	; установить счетчик на ноль при настройке на сравнение ...
OUT	TCCR0A,REG    	; ... значения (так называемый CTC), OC0 не используется
LDI	REG,0b00000011 	; делитель 64
OUT	TCCR0B,REG    	; 
LDI	REG,213      	; устанавливает сравниваемое значение
OUT	OCR0A,REG     	; 

LDI	REG,0b00000001	; разрешить прерывание OCIE0A
OUT	TIMSK,REG    	; 



LDI	REG,0b00001000	; разрешить прерывание PCINT1
OUT	GIMSK,REG    	;

LDI	REG,0b00000010	; разрешить прерывание PCINT на PA1 (PCINT9)
OUT	PCMSK1,REG    	;

LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG

;выключает аналог. компаратор - никогда не использовался (экономия энергии) 
LDI	REG,0b10000000	
OUT	ACSR,REG  

SEI

SMYCKA:
SLEEP
RJMP SMYCKA


SIGNAL:
IN STAV,PINY3
COM STAV	;инвертирует входной сигнал (приемник в состоянии покоя log1)

;Низкий уровень
SBRC STAV,1
RJMP NE_10

LDI REG,0
OUT TCNT0,REG

NE_10:

;Верхний уровень
SBRS STAV,1
RJMP NE_01

IN REG,TCNT0

CPI REG,3		;Порог колебания / длинного (короткого) импульса
BRLO ZAKMIT

CPI REG,53		;Длинный промежуток / пороговый промежуток
BRLO NE_KONEC_SNIMKU

RCALL KONTROLA

MOV VYST_2,VYST

NE_KONEC_SNIMKU:

LSL VYST
INC BITY
IN REG,TCNT0
CPI REG,13		;Порог короткого / длинного промежутка
BRLO KRATKA_M
INC VYST
KRATKA_M:

ZAKMIT:
NE_01:

LDI	REG,0b00100000	;включить спящий режим и установить режим ожидания
OUT	MCUCR,REG
RETI



CAS_VYPRSEL:

RCALL KONTROLA

CLR VYST
SER VYST_2

CLR PRODLEVA

LDI REG,0
OUT TCNT0,REG

LDI	REG,0b00110000	;включить спящий режим и установить режим отключения питания
OUT	MCUCR,REG
RETI



;проверьте правильность передачи
KONTROLA:
CPI BITY,9		;если количество бит не влезает, отбросьте код
BRNE SPATNE_BITY
CP VYST_2,VYST	;если 2 последовательных кода не совпадают, он не отвечает
BRNE RUZNE_KODY
RCALL PRIJEM
RUZNE_KODY:
CLR BITY
RET
SPATNE_BITY:
CLR VYST
CLR BITY
RET



PRIJEM:

CPI PRODLEVA,0
BREQ PRODLEVA_JE_0
RJMP KONEC_TL
PRODLEVA_JE_0:

MOV REG,VYST
SWAP REG
ANDI REG,0b00001111

MOV REG2,VYST
COM REG2
ANDI REG2,0b00001111

CP REG,REG2
BREQ SHODA
RJMP KONEC_TL
SHODA:

CLR REG2
LDI ZL,LOW(SKOK)
LDI ZH,HIGH(SKOK)
ADD ZL,REG
ADC ZH,REG2
IJMP

SKOK:
RJMP TL0
RJMP TL1
RJMP TL2
RJMP TL3
RJMP TL4
RJMP TL5
RJMP TL6
RJMP TL7
RJMP TL8
RJMP TL9
RJMP TL10
RJMP TL11
RJMP TL12
RJMP TL13
RJMP TL14
RJMP TL15


TL0:
SBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL1:
CBI PORT,0
SBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL2:
CBI PORT,0
CBI PORT,1
SBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL3:
CBI PORT,0
CBI PORT,1
CBI PORT,2
SBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL4:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
SBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL5:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
SBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL6:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
SBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL7:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
SBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL8:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
SBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL9:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
SBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL10:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
SBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL11:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
SBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL12:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
SBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL13:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
SBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL14:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
SBI PORT2,6
CBI PORT3,0
RJMP KONEC_TL

TL15:
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
SBI PORT3,0
RJMP KONEC_TL

KONEC_TL:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CBI PORT,0
CBI PORT,1
CBI PORT,2
CBI PORT,3
CBI PORT,4
CBI PORT,5
CBI PORT,6
CBI PORT,7
CBI PORT2,0
CBI PORT2,1
CBI PORT2,2
CBI PORT2,3
CBI PORT2,4
CBI PORT2,5
CBI PORT2,6
CBI PORT3,0
RET

 

Не уверен что сделал правильно, но на более лучшее решение я не могу сообразить. Кто знает как сделать лучше подскажите.


Нарушение правил форума II.24

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • все достаточно просто, диэлектрическая прочность слюды 100кВ/мм FullPak дает изоляцию 2,5кВ при этом на пластике для ТО-247 теряется минимум 0.6К/Вт пдфки от производителя на примере IRFP450 (irfp450.pdf) & IRFIP450 (IRFIP450.pdf) сопротивление 0,65К/Вт и 1,3К/Вт по факту потеря на пластике 0,65К/Вт считаем толщину слюды 2,5/100=0,025мм смотрим таблицу в конце статьи для слюды стандартной толщиной 0,05мм (изоляция 5кВ) тепловое сопротивление  0.172К/Вт итого имеем почти четырех кратную эффективность слюды с корпусом ТО-220 эффективность будет еще выше тк в фулпаке в среднем сопротивление 4К/Вт , обычного 1,5К/Вт  
    • Нужны градусы в цифрах, а не эмоции.    Не знаю, какую именно пасту дали айтишники.  Факт то, что я смазывал одну и ту-же пасту.   А между тем, разница между ними раз в 5.    Не понимаю, что не так? -  По сути я пластик в 0.5 мм изолированного ТО220  заменил на слюду и произвел аналогичные замеры.
    • Если у тебя иип лопает 500 Ватт - по факту лопает намного больше - счётчик не считает реактивную состовляюшую потребления - это в общих чертах, спецы глубоко в этой теме думаю смогут посчитать насколько нагружаешь проводку дома и какое точно сечение нужно - чтоб включить в одну розетку пару таких иип) 
    • Чем гадить? Ни кто не может сказать чем!!! Но мы гадим.... Можешь сказать - чем гадим? Вообще фиолетово, что там у них запрещают У них много ни как у нас Они нас с банями считали дураками при этом не мылись
    • И совершенно справедливо. Нормальных баб полно. Только у многих ломкость выше ковкости. И это тоже правильно.
    • Мы живём в одной подводной лодке) если гадить всей толпой - рано или поздно - скажется) в Европе не зря запретили иип мощностью свыше 50ти Ватт, а у меня на даче с деревни идёт старая проводка - которая не выдерживает, особенно по пикам потребления,придётся печку ставить - свет могут на сутки в лёгкую отрубить, может и панелями заморочусь - просто на освещение - акб халява). Отрубили свет - затопил печку - переключил на панели. Не в тему - но так и есть - ибо - насрать). 
    • На это ориентироваться нельзя! Как можно ориентироваться если, к примеру, керамические конденсаторы выпаиваются в платы компактного проигрывателя CD дисков с питанием 3 Вольта, или с платы CD видеоплеера с питанием цифровой части +5 Вольт? Да никак, если нет схемы c перечнем деталей.

  • Мощные небольшие моторчики, 2 шт.

×
×
  • Create New...