Саш, не забудь те поискать какие перемычки перепаять в радиовысотомере…
Костя, какой у тебя тип индикатора? Его что-то и в списках нет!
Прикрепленные изображения
ra3dcs
07.08.2008 в 16:10
Костя посмотри вот эти платы на ваши в указателе похожи?
Прикрепленные изображения
ra3dcs
07.08.2008 в 16:11
2
Прикрепленные изображения
Shadow Builder
08.08.2008 в 04:20
вот единственная надпись
Shadow Builder
08.08.2008 в 04:22
вот платы
ra3dcs
08.08.2008 в 08:00
вот платы
Видно схемы отличаются и существенно. Ваш вариант более ранних выпусков. Вам потребуется найти от него схему. Там кроме перемычек требуется замена номиналов некоторых элементов.
Прикрепленные изображения
Shadow Builder
08.08.2008 в 09:00
вот платы
Видно схемы отличаются и существенно. Ваш вариант более ранних выпусков. Вам потребуется найти от него схему. Там кроме перемычек требуется замена номиналов некоторых элементов.
может выходное напряжение както изменить? блин это ж на 1500м надо 150в? или как?
ra3dcs
08.08.2008 в 09:44
может выходное напряжение както изменить? блин это ж на 1500м надо 150в? или как?
150 в вряд ли. Если есть у вас источник регулируемого постоянного напряжения, подайте на 1 вывод прибора и посмотрите, при каком напряжении стрелка будет показывать 1500м. Скорее всего вольт 60.
Shadow Builder
08.08.2008 в 10:01
может выходное напряжение както изменить? блин это ж на 1500м надо 150в? или как?
150 в вряд ли. Если есть у вас источник регулируемого постоянного напряжения, подайте на 1 вывод прибора и посмотрите, при каком напряжении стрелка будет показывать 1500м. Скорее всего вольт 60.
даже если и 60в высота не линейно изменяется в зависимости от напряжения это канечно можно в самом FSBUSе реализовать, типа если высота стокато, то напряжение такое и вывести нужное число на ЦАП что бы это напряжение вывел но в схеме цапа, напряжение выходное то 10в максимум а если увеличить опорное напряжение? до скольки его можно увеличить?
ra3dcs
09.08.2008 в 04:57
а если увеличить опорное напряжение? до скольки его можно увеличить?
Предельное опорное напряжение КР572ПА1 составляет + — 22 в. Надо искать родную схему указателя и изменить схему сравнения.
Прикрепленные изображения
byk
30.08.2008 в 13:32
Вообщем на все благополучно забили….
Всем спасибо огромное, кто помогал и поддерживал )))))))
ra3dcs
31.08.2008 в 05:42
Вообщем на все благополучно забили….
Очень печально!!!!!
KOIS
01.09.2008 в 06:24
Эмм…. что значит на всё забили ?????????????
А вот это я для кого делел ?
А вот это для кого писАл ???
Народ , вы того … не падайте духом !!!!
Прикрепленные изображения
KOIS
01.09.2008 в 06:26
Вот …
KOIS
01.09.2008 в 06:36
.include»m48def.inc»
.include»macroses.asm»
;——— управление сельсин приемником посредством ШИМ ————————
ldi r16,0X57
sts WDTCSR,r16
*/
;———— установка портов ——————————————-
;————- порт B ——————————
ldi r16,0X00
out DDRB,r16
sbi DDRB,1 ; выход ШИМ Timer1 A
sbi DDRB,2 ; выход ШИМ Timer1 B
;————- порт C ——————————
ldi r16,0X00
out DDRC,r16
;————- порт D ——————————
ldi r16,0X00
out DDRD,r16
sbi DDRD,5 ; выход ШИМ Timer0 B
sbi DDRD,6 ; выход ШИМ Timer0 A
sbi DDRD,7
;————————————————————————————
;—— таймер Т0 режим работы ————————
; быстродействующий ШИМ
; частота сигнала — 40 000 гц для 16.000 мГц
; всего возможно 62 745 циклов увеличения значения счетчика от 0 до 0xFF
; для получения частоты 400 герц необходимо использовать 156 тактов
;
; в периоде 0.0025 мс успеем 156 раз сгенерировать прерывания и изменить период ШИМ
;
; разрешаем прерывания по каналам А и В
;
;
;
;
;———————————————————————————
clr r16 ;
; частота сигнала — 40 000 гц для 16.000 мГц
; всего возможно 62 745 циклов увеличения значения счетчика от 0 до 0xFF
; для получения частоты 400 герц необходимо использовать 156 тактов
;
; в периоде 0.0025 мс успеем 156 раз сгенерировать прерывания и изменить период ШИМ
;
; разрешаем прерывания по каналам А и В
;
;
;
;
;———————————————————————————
clr r16 ;
; 0x010C — множитель амплитуды
;
; 0x0103 множитель амплитуды Фазы А
; 0x0106 множитель амплитуды Фазы В
; 0x0109 множитель амплитуды Фазы С
; 0x010E скорость приращения угла
;
; на каждой трети диапазона увеличиваем шаг , только в одной из обмоток
; две остальные остаются в неизменном состоянии
; за весь диапазон все значения увеличатся на 1
ldi ZH,high(sin_table_1*2) ; и обязательно таблица должна начинаться с адреса где ZL = 0
ldi ZL,low (sin_table_1*2) ; чтобы при сложении не вылезать за диапазон 0..255
add ZL,r16 ; это нужно , чтобы сэкономить на команде ADC
lpm r16,Z
;—————————————————————————————
; Здесь — перемножение сигнала с константой ( угол текущий )
pop r16
reti
;*******************************************************************************
*************
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxхххххх
pop r16
reti
;*******************************************************************************
*************
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxхххххх
pop r16
reti
;*******************************************************************************
*************
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxхххххх
reti
;*******************************************************************************
*************
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxхххххх
А вот это я для кого делел ? А вот это для кого писАл ???
Для меня остается!!!!! И что все работает?????????
KOIS
02.09.2008 в 05:16
А вот это я для кого делел ? А вот это для кого писАл ???
Для меня остается!!!!! И что все работает?????????
🙂 Работает всё . Сейчас рисую печатные платы под маленькую серию . Причём питание — только 27 вольт . Интерфейс — RS485 И- выход на сельсин . Ничего лишнего :-)))
Да только — жаль , что ребята остановиться хотят , ведь такую красоту можно сделать из того , что у них есть …
Vladmode
02.09.2008 в 11:15
Мужики ! Это , у меня тоже УКЛ-2 ждёт запуска ! Реально жду Ваших наработок !
Shadow Builder
02.09.2008 в 12:35
Кто сказал что мы хотим остановиться?
Никто не собирается останавливаться!
Просто так сказать небольшая пауза!
По семейным и финансовым обстоятельствам.
KOIS
02.09.2008 в 13:48
Кто сказал что мы хотим остановиться? Никто не собирается останавливаться! Просто так сказать небольшая пауза! По семейным и финансовым обстоятельствам.
…. Блин , джентльмены …. Вы уж так не пугайте больше т, плиззз. Мы все заинтересованы в вашем успехе. И поможем , по мере сил .
Vladmode: наработки уже есть , по изготовлении плат печатных — предоставлю Вам для тестирования .
Если есть настроение посмотреть на промежуточные результаты — могу прислать схему предварительную , прошивки ( тоже не окончательные )
Андрей
Vladmode
02.09.2008 в 15:15
ОООчень интересно посмотреть на это чудо ! Тем более подумать как это прицепить ( и скакой стороны ) к своему железу .
Буду безмерно благодарен . Кстати может кто знает : как использовать в схеме управления курсовой шкалой индикатора УКЛ-2 в качестве элемента обратной связи штатный ползунковый безупорный 5-контактный потенциометр ? Есть соображения ?
ОООчень интересно посмотреть на это чудо ! Тем более подумать как это прицепить ( и скакой стороны ) к своему железу . Буду безмерно благодарен . Кстати может кто знает : как использовать в схеме управления курсовой шкалой индикатора УКЛ-2 в качестве элемента обратной связи штатный ползунковый безупорный 5-контактный потенциометр ? Есть соображения ?
Выложите схему УКЛ-2 — подскажу , чё и как … Просто я не знаю , чё это за штучка такая 🙁
Vladmode
03.09.2008 в 07:14
Да схемы как таковой нету С виду копия УГР . Принцип следующий . Стрелка радиопеленга сидит традиционно на оси сильсина . А курсовая шкала крутится ДИД-0,5 через редуктор . Элемент обратной связи — потенц . Строение его такое . Статор круговой — безупорный на 360 гр . В двух разнесённых на 180 гр. точках имеются отводы для подачи питания предположительно 27 В . А по статору ездят щётки — токосъёмы , разнесённые под 120 гр. Думал так : на съёмники подать от контроллера выпрямленный ШИМ (соотношение амплитуд в фазах , я так понимаю , соответствует текущему курсовому углу ) А со статора ( двух разнесённых а 180 гр. выводов ) снять результирующий сигнал и через усилитель подать на отрабатывающий движок . Не знаю , это пока догадки . Будет работать- не будет . Что Вы думаете по этому поводу ? Спасибо за внимание .
Vladmode
03.09.2008 в 07:20
Андрей ! большое спасибо за материал !
Буду разбиратся . Удачи Вам на нелёгком конструкторсом поприще !
Костя, какой у тебя тип индикатора? Его что-то и в списках нет!
Прикрепленные изображения
Прикрепленные изображения
Прикрепленные изображения
Видно схемы отличаются и существенно. Ваш вариант более ранних выпусков. Вам потребуется найти от него схему. Там кроме перемычек требуется замена номиналов некоторых элементов.
Прикрепленные изображения
может выходное напряжение както изменить?
блин это ж на 1500м надо 150в? или как?
150 в вряд ли. Если есть у вас источник регулируемого постоянного напряжения, подайте на 1 вывод прибора и посмотрите, при каком напряжении стрелка будет показывать 1500м. Скорее всего вольт 60.
даже если и 60в
высота не линейно изменяется в зависимости от напряжения
это канечно можно в самом FSBUSе реализовать, типа если высота стокато, то напряжение такое и вывести нужное число на ЦАП что бы это напряжение вывел
но в схеме цапа, напряжение выходное то 10в максимум
а если увеличить опорное напряжение? до скольки его можно увеличить?
Предельное опорное напряжение КР572ПА1 составляет + — 22 в. Надо искать родную схему указателя и изменить схему сравнения.
Прикрепленные изображения
Всем спасибо огромное, кто помогал и поддерживал
)))))))
Очень печально!!!!!
А вот это я для кого делел ?
А вот это для кого писАл ???
Народ , вы того … не падайте духом !!!!
Прикрепленные изображения
.include»macroses.asm»
;——— управление сельсин приемником посредством ШИМ ————————
;——— Процессор AtMega 48 ——————
;——— частота внешнего генератора 16.000 мГц ——————
;———————————————————————————————
;————— прием и передача по UART 0 —————————
; адрес в ОЗУ , где рассположены флаги ответа ведомого на маркер
; Ask On Marker Uart 0
.equ ACU0 = 0x0198
; адрес в ОЗУ , где рассположены флаги ответа ведомого на маркер
; Transmitter Condition Uart 0
.equ TCU0 = 0x0199
; адрес в ОЗУ , где рассположены флаги режимов работы UART0
.equ modeU0 = 0x019B
.def U0SB = r24
.equ P = 0X80
.equ S_M = 0X40
.equ once = 0x02
.equ often = 0x04
;————— прием и передача по UART 0 —————————
.org 0x0000
rjmp setup_processor
; ***** INTERRUPT VECTORS ************************************************
.org 0x0001 ; External Interrupt Request 0
reti
.org 0x0002 ; External Interrupt Request 1
reti
.org 0x0003 ; Pin Change Interrupt Request 0
reti
.org 0x0004 ; Pin Change Interrupt Request 0
reti
.org 0x0005 ; Pin Change Interrupt Request 1
reti
.org 0x0006 ; Watchdog Time-out Interrupt
reti
.org 0x0007 ; Timer/Counter2 Compare Match A
reti
.org 0x0008 ; Timer/Counter2 Compare Match A
reti
.org 0x0009 ; Timer/Counter2 Overflow
reti
.org 0x000a ; Timer/Counter1 Capture Event
reti
.org 0x000b ; Timer/Counter1 Compare Match A
rjmp Timer_1_Output_Compare_A
;reti
.org 0x000c ; Timer/Counter1 Compare Match B
rjmp Timer_1_Output_Compare_B
;reti
.org 0x000d ; Timer/Counter1 Overflow
reti
.org 0x000e ; TimerCounter0 Compare Match A
rjmp Timer_0_Output_Compare_A
;reti
.org 0x000f ; TimerCounter0 Compare Match B
rjmp Timer_0_Output_Compare_B
;reti
.org 0x0010 ; Timer/Couner0 Overflow
reti
.org 0x0011 ; SPI Serial Transfer Complete
reti
.org 0x0012 ; USART Rx Complete
;rjmp USART0_Resived_Complete
reti
.org 0x0013 ; USART, Data Register Empty
reti
.org 0x0014 ; USART Tx Complete
reti
.org 0x0015 ; ADC Conversion Complete
reti
.org 0x0016 ; EEPROM Ready
reti
.org 0x0017 ; Analog Comparator
reti
.org 0x0018 ; Two-wire Serial Interface
reti
.org 0x0019 ; Store Program Memory Read
reti
setup_processor:
;———— верхний диапазон памяти ————————————
ldi r16,low(RAMEND)
out SPL,r16
ldi r16,high(RAMEND)
out SPH,r16
;=============== включаем вотчдог ====================================
/*
ldi r16,0X5F
sts WDTCSR,r16
ldi r16,0X57
sts WDTCSR,r16
*/
;———— установка портов ——————————————-
;————- порт B ——————————
ldi r16,0X00
out DDRB,r16
sbi DDRB,1 ; выход ШИМ Timer1 A
sbi DDRB,2 ; выход ШИМ Timer1 B
;————- порт C ——————————
ldi r16,0X00
out DDRC,r16
;————- порт D ——————————
ldi r16,0X00
out DDRD,r16
sbi DDRD,5 ; выход ШИМ Timer0 B
sbi DDRD,6 ; выход ШИМ Timer0 A
sbi DDRD,7
;————————————————————————————
;—— таймер Т0 режим работы ————————
; быстродействующий ШИМ
; частота сигнала — 40 000 гц для 16.000 мГц
; всего возможно 62 745 циклов увеличения значения счетчика от 0 до 0xFF
; для получения частоты 400 герц необходимо использовать 156 тактов
;
; в периоде 0.0025 мс успеем 156 раз сгенерировать прерывания и изменить период ШИМ
;
; разрешаем прерывания по каналам А и В
;
;
;
;
;———————————————————————————
clr r16 ;
sbr r16,1<<WGM00 ;
cbr r16,1<<WGM01 ;
cbr r16,1<<COM0A0
sbr r16,1<<COM0A1
cbr r16,1<<COM0B0
sbr r16,1<<COM0B1
sts TCCR0A,r16
;———————————————————————————
;———————————————————————————
clr r16
cbr r16,1<<WGM02 ;
sbr r16,1<<CS00 ;
sts TCCR0B,r16 ;
;———————————————————————————
;———————————————————————————
ldi r16,0x01
sts OCR0A,r16
sts OCR0B,r16
lds r16,TIMSK0
sbr r16,1<<OCIE0A
sbr r16,1<<OCIE0B
sts TIMSK0,r16 ; Output Compare0 Interrupt enable
;———————————————————————————
;—— таймер Т1 режим работы ————————
; быстродействующий ШИМ
; частота сигнала — 40 000 гц для 16.000 мГц
; всего возможно 62 745 циклов увеличения значения счетчика от 0 до 0xFF
; для получения частоты 400 герц необходимо использовать 156 тактов
;
; в периоде 0.0025 мс успеем 156 раз сгенерировать прерывания и изменить период ШИМ
;
; разрешаем прерывания по каналам А и В
;
;
;
;
;———————————————————————————
clr r16 ;
sbr r16,1<<WGM10 ;
cbr r16,1<<WGM11 ;
cbr r16,1<<COM1A0
sbr r16,1<<COM1A1
cbr r16,1<<COM1B0
sbr r16,1<<COM1B1
sts TCCR1A,r16
;———————————————————————————
;———————————————————————————
clr r16
sbr r16,1<<WGM12 ;
cbr r16,1<<WGM13 ;
sbr r16,1<<CS10 ;
sts TCCR1B,r16 ;
;———————————————————————————
;———————————————————————————
clr r16
sts OCR1AH,r16
sts OCR1BH,r16
ldi r16,0x01
sts OCR1AL,r16
sts OCR1BL,r16
lds r16,TIMSK1
sbr r16,1<<OCIE1A
sbr r16,1<<OCIE1B
sts TIMSK1,r16 ; Output Compare1 Interrupt enable
;———————————————————————————
rcall setup_on_startup
;———————————————————————————
SEI
;————————————————————————————-
main_program:
nop
nop
nop
rjmp main_program
;————————————————————————————-
.include»start_setup.asm»
.include»timers.asm»
.include»UART0_receive.asm»
.include»CRC_8.asm»
.include»cos_1.asm»
.include»cos_2.asm»
.include»cos_3.asm»
.include»sin.asm»
.include»memory_map.asm»
; Обслуживение прерываний от таймеров Т0..Т2
/*
;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvv
; 0x010C — множитель амплитуды
;
; 0x0103 множитель амплитуды Фазы А
; 0x0106 множитель амплитуды Фазы В
; 0x0109 множитель амплитуды Фазы С
; 0x010E скорость приращения угла
;
Timer_0_Output_Compare:
push r16
push XL
push XH
push ZL
push ZH
inc_byte 0x010E
cpi r16,0x80
brlo end_Timer_0_Output_Compare
set_byte 0x010E,0x00
lds XH ,0x010C
lds XL ,0x010D
adiw XL ,0x01
sts 0x010D,XL
sts 0x010C,XH
cpi XH,1
brlo kernel_Timer_0_Output_Compare
cpi XL,104
brlo kernel_Timer_0_Output_Compare
ldi XL,0x01
clr XH
sts 0x010D,XL
sts 0x010C,XH
kernel_Timer_0_Output_Compare:
ldi ZH,high(cos_1_1*2)
ldi ZL,low (cos_1_1*2)
add ZL,XL
adc ZH,XH
lpm r16,Z
sts 0x0103,r16
lds XH ,0x010C
lds XL ,0x010D
ldi ZH,high(cos_2_1*2)
ldi ZL,low (cos_2_1*2)
add ZL,XL
adc ZH,XH
lpm r16,Z
sts 0x0106,r16
lds XH ,0x010C
lds XL ,0x010D
ldi ZH,high(cos_3_1*2)
ldi ZL,low (cos_3_1*2)
add ZL,XL
adc ZH,XH
lpm r16,Z
sts 0x0109,r16
end_Timer_0_Output_Compare:
pop ZH
pop ZL
pop XH
pop XL
pop r16
reti
;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvv
*/
/*
;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvv
; 0x010C — множитель амплитуды
;
; 0x0103 множитель амплитуды Фазы А
; 0x0106 множитель амплитуды Фазы В
; 0x0109 множитель амплитуды Фазы С
; 0x010E скорость приращения угла
;
; на каждой трети диапазона увеличиваем шаг , только в одной из обмоток
; две остальные остаются в неизменном состоянии
; за весь диапазон все значения увеличатся на 1
Timer_0_Output_Compare:
push r16
push XL
push XH
push ZL
push ZH
inc_byte 0x010E
cpi r16,0x04
breq kernel_Timer_0_Output_Compare_increase_angle_for_two_winding
cpi r16,0x08
breq kernel_Timer_0_Output_Compare_increase_angle_for_thrid_winding
cpi r16,0x0C
brlo end_Timer_0_Output_Compare
set_byte 0x010E,0x00
;——————————————————————-
; здесь — увеличение значения для 1 обмотки
lds XH ,0x010C
lds XL ,0x010D
adiw XL ,0x01
sts 0x010D,XL
sts 0x010C,XH
cpi XH,1
brlo kernel_Timer_0_Output_Compare
cpi XL,104
brlo kernel_Timer_0_Output_Compare
ldi XL,0x01
clr XH
sts 0x010D,XL
sts 0x010C,XH
kernel_Timer_0_Output_Compare:
ldi ZH,high(cos_1_1*2)
ldi ZL,low (cos_1_1*2)
add ZL,XL
adc ZH,XH
lpm r16,Z
sts 0x0103,r16
jmp end_Timer_0_Output_Compare
;——————————————————————-
;——————————————————————-
; здесь — увеличение значения для 2 обмотки
kernel_Timer_0_Output_Compare_increase_angle_for_two_winding:
lds XH ,0x010C
lds XL ,0x010D
ldi ZH,high(cos_2_1*2)
ldi ZL,low (cos_2_1*2)
add ZL,XL
adc ZH,XH
lpm r16,Z
sts 0x0106,r16
jmp end_Timer_0_Output_Compare
;——————————————————————-
;——————————————————————-
; здесь — увеличение значения для 3 обмотки
kernel_Timer_0_Output_Compare_increase_angle_for_thrid_winding:
lds XH ,0x010C
lds XL ,0x010D
ldi ZH,high(cos_3_1*2)
ldi ZL,low (cos_3_1*2)
add ZL,XL
adc ZH,XH
lpm r16,Z
sts 0x0109,r16
;——————————————————————-
end_Timer_0_Output_Compare:
pop ZH
pop ZL
pop XH
pop XL
pop r16
reti
;vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
vvvvvvvvvvv
*/
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxхххххх
;*******************************************************************************
*************
Timer_1_Output_Compare_A:
push r16
; В Е Д У Щ И Й
; фаза А
lds r16, 0x0102
kernel_Timer_1_Output_Compare_A:
lds r16,0x0102
ldi ZH,high(sin_table_1*2) ; и обязательно таблица должна начинаться с адреса где ZL = 0
ldi ZL,low (sin_table_1*2) ; чтобы при сложении не вылезать за диапазон 0..255
add ZL,r16 ; это нужно , чтобы сэкономить на команде ADC
lpm r16,Z
;—————————————————————————————
; Здесь — перемножение сигнала с константой ( угол текущий )
lds r17,0x0103
mul r16,r17
;—————————————————————————————
sts OCR1AL,r1
clr r1
sts OCR1AH,r1
sts OCR1AL,r16
clr r16
sts OCR1AH,r16
inc_byte 0x0102
cpi r16, 0x9C
brlo end_Timer_1_Output_Compare_A
;——————————————————————————————-
; задаем значения синуса для трёх фаз
set_byte 0x0102,0x00 ; фаза А
set_byte 0x0105,0x34 ; фаза В
set_byte 0x0108,0x68 ; фаза С
sbi PORTD,7
nop
cbi PORTD,7
;——————————————————————————————-
end_Timer_1_Output_Compare_A:
pop r16
reti
;*******************************************************************************
*************
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxхххххх
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxхххххх
;*******************************************************************************
*************
Timer_1_Output_Compare_B:
push r16
lds r16, 0x0105
ldi ZH,high(sin_table_1*2)
ldi ZL,low (sin_table_1*2)
add ZL,r16
lpm r16,Z
;—————————————————————————————
; Здесь — перемножение сигнала с константой ( угол текущий )
lds r17,0x0106
mul r16,r17
;—————————————————————————————
ldi r16,0x40
sts OCR1BL,r1
clr r1
sts OCR1BH,r1
inc_byte 0x0105
cpi r16, 0x9C
brlo end_Timer_1_Output_Compare_B
set_byte 0x0105,0x00
end_Timer_1_Output_Compare_B:
pop r16
reti
;*******************************************************************************
*************
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxхххххх
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxхххххх
;*******************************************************************************
*************
Timer_0_Output_Compare_A:
push r16
lds r16, 0x0108
ldi ZH,high(sin_table_1*2)
ldi ZL,low (sin_table_1*2)
add ZL,r16
lpm r16,Z
;—————————————————————————————
; Здесь — перемножение сигнала с константой ( угол текущий )
lds r17,0x0109
mul r16,r17
;—————————————————————————————
sts OCR1AL,r1
clr r1
sts OCR1AH,r1
inc_byte 0x0108
cpi r16, 0x9C
brlo end_Timer_0_Output_Compare_A
set_byte 0x0108,0x00
end_Timer_0_Output_Compare_A:
pop r16
reti
;*******************************************************************************
*************
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxхххххх
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxхххххх
;*******************************************************************************
*************
Timer_0_Output_Compare_B:
push r16
lds r16, 0x0102
ldi ZH,high(sin_table_1*2)
ldi ZL,low (sin_table_1*2)
add ZL,r16
lpm r16,Z
;ldi r16,0x20
sts OCR1BL,r16
clr r16
sts OCR1BH,r16
end_Timer_0_Output_Compare_B:
pop r16
reti
;*******************************************************************************
*************
;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxхххххх
.org 0x4C0
cos_1_1: .db 0xFE, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFC, 0xFC, 0xFC, 0xFB, 0xFB, 0xFA, 0xFA, 0xF9, 0xF9, 0xF8, 0xF7, 0xF7
cos_1_2: .db 0xF6, 0xF5, 0xF4, 0xF3, 0xF3, 0xF2, 0xF1, 0xF0, 0xEF, 0xEE, 0xED, 0xEC, 0xEA, 0xE9, 0xE8, 0xE7, 0xE5, 0xE4, 0xE3, 0xE1
cos_1_3: .db 0xE0, 0xDF, 0xDD, 0xDC, 0xDA, 0xD9, 0xD7, 0xD5, 0xD4, 0xD2, 0xD1, 0xCF, 0xCD, 0xCB, 0xCA, 0xC8, 0xC6, 0xC4, 0xC2, 0xC0
cos_1_4: .db 0xBF, 0xBD, 0xBB, 0xB9, 0xB7, 0xB5, 0xB3, 0xB1, 0xAF, 0xAD, 0xAB, 0xA9, 0xA7, 0xA4, 0xA2, 0xA0, 0x9E, 0x9C, 0x9A, 0x98
cos_1_5: .db 0x95, 0x93, 0x91, 0x8F, 0x8D, 0x8B, 0x88, 0x86, 0x84, 0x82, 0x80, 0x7D, 0x7B, 0x79, 0x77, 0x75, 0x72, 0x70, 0x6E, 0x6C
cos_1_6: .db 0x6A, 0x68, 0x65, 0x63, 0x61, 0x5F, 0x5D, 0x5B, 0x59, 0x57, 0x55, 0x52, 0x50, 0x4E, 0x4C, 0x4A, 0x48, 0x46, 0x44, 0x43
cos_1_7: .db 0x41, 0x3F, 0x3D, 0x3B, 0x39, 0x37, 0x36, 0x34, 0x32, 0x30, 0x2F, 0x2D, 0x2B, 0x2A, 0x28, 0x27, 0x25, 0x23, 0x22, 0x21
cos_1_8: .db 0x1F, 0x1E, 0x1C, 0x1B, 0x1A, 0x18, 0x17, 0x16, 0x15, 0x14, 0x12, 0x11, 0x10, 0xF, 0xE, 0xD, 0xC, 0xC, 0xB, 0xA
cos_1_9: .db 0x9 , 0x8, 0x8, 0x7, 0x6, 0x6, 0x5, 0x5, 0x4, 0x4, 0x3, 0x3, 0x3, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2
cos_1_10: .db 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x3, 0x3, 0x3, 0x4, 0x4, 0x5, 0x5, 0x6, 0x6, 0x7, 0x8, 0x8
cos_1_11: .db 0x9, 0xA, 0xB, 0xB, 0xC, 0xD, 0xE, 0xF, 0x10, 0x11, 0x12, 0x13, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1B, 0x1C, 0x1D
cos_1_12: .db 0x1F, 0x20, 0x22, 0x23, 0x25, 0x26, 0x28, 0x29, 0x2B, 0x2D, 0x2E, 0x30, 0x32, 0x33, 0x35, 0x37, 0x39, 0x3B, 0x3D, 0x3E
cos_1_13: .db 0x40, 0x42, 0x44, 0x46, 0x48, 0x4A, 0x4C, 0x4E, 0x50, 0x52, 0x54, 0x56, 0x58, 0x5A, 0x5C, 0x5F, 0x61, 0x63, 0x65, 0x67
cos_1_14: .db 0x69, 0x6C, 0x6E, 0x70, 0x72, 0x74, 0x76, 0x79, 0x7B, 0x7D, 0x7F, 0x81, 0x84, 0x86, 0x88, 0x8A, 0x8C, 0x8F, 0x91, 0x93
cos_1_15: .db 0x95, 0x97, 0x99, 0x9C, 0x9E, 0xA0, 0xA2, 0xA4, 0xA6, 0xA8, 0xAA, 0xAC, 0xAE, 0xB0, 0xB2, 0xB4, 0xB6, 0xB8, 0xBA, 0xBC
cos_1_16: .db 0xBE, 0xC0, 0xC2, 0xC4, 0xC6, 0xC7, 0xC9, 0xCB, 0xCD, 0xCF, 0xD0, 0xD2, 0xD4, 0xD5, 0xD7, 0xD8, 0xDA, 0xDB, 0xDD, 0xDE
cos_1_17: .db 0xE0, 0xE1, 0xE3, 0xE4, 0xE5, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF2, 0xF3, 0xF4, 0xF5
cos_1_18: .db 0xF6, 0xF7, 0xF7, 0xF8, 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC, 0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD
.org 0x400
; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
sin_table_1: .db 0x01,0x01,0x02,0x03,0x04,0x05,0x06,0x08,0x09,0x0B,0x0D,0x0F,0x12,0x15,0x17,0x1A,
0x1D,0x21,0x24,0x28,0x2B,0x30
; 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
sin_table_2: .db 0x34,0x38,0x3D,0x41,0x45,0x4A,0x4F,0x53,0x58,0x5D,0x62,0x67,0x6C,0x71,0x76,0x7B,
0x80,0x85,0x8A,0x8F,0x94,0x99
; 45 46 47 48 49 50 51 52 53 54 55 56 57 56 57 58 59 60 61 62 63 64
sin_table_3: .db 0x9E,0xA3,0xA8,0xAD,0xB2,0xB6,0xBB,0xBF,0xC4,0xC8,0xCC,0xD0,0xD4,0xD8,0xDC,0xDF,
0xE3,0xE6,0xE9,0xEC,0xEE,0xF1
; 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
sin_table_4: .db 0xF3,0xF5,0xF7,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFD,
0xFC,0xFB,0xFA,0xF9,0xF7,0xF5
; 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
sin_table_5: .db 0xF3,0xF1,0xEE,0xEC,0xE9,0xE6,0xE3,0xDF,0xDC,0xD8,0xD4,0xD0,0xCC,0xC8,0xC4,0xBF,
0xBB,0xB6,0xB2,0xAD,0xA8,0xA3
; 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
sin_table_6: .db 0x9E,0x99,0x94,0x8F,0x8A,0x85,0x80,0x7B,0x76,0x71,0x6C,0x67,0x62,0x5D,0x58,0x53,
0x4F,0x4A,0x45,0x41,0x3D,0x38
; 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
sin_table_7: .db 0x34,0x30,0x2B,0x28,0x24,0x21,0x1D,0x1A,0x17,0x15,0x12,0x0F,0x0D,0x0B,0x09,0x08,
0x06,0x05,0x04,0x03,0x02,0x01
; 153 154 155 156
sin_table_8: .db 0x01,0x01,0x01,0x00
Для меня остается!!!!!
И что все работает?????????
🙂
Работает всё .
Сейчас рисую печатные платы под маленькую серию .
Причём питание — только 27 вольт .
Интерфейс — RS485
И- выход на сельсин . Ничего лишнего :-)))
Да только — жаль , что ребята остановиться хотят , ведь такую
красоту можно сделать из того , что у них есть …
Никто не собирается останавливаться!
Просто так сказать небольшая пауза!
По семейным и финансовым обстоятельствам.
…. Блин , джентльмены ….
Вы уж так не пугайте больше т, плиззз. Мы все заинтересованы в вашем успехе.
И поможем , по мере сил .
Vladmode: наработки уже есть , по изготовлении плат печатных —
предоставлю Вам для тестирования .
Если есть настроение посмотреть на промежуточные результаты —
могу прислать схему предварительную , прошивки ( тоже не окончательные )
Андрей
Буду безмерно благодарен . Кстати может кто знает : как использовать в схеме управления курсовой шкалой индикатора УКЛ-2 в качестве элемента обратной связи штатный ползунковый безупорный 5-контактный потенциометр ? Есть соображения ?
Выложите схему УКЛ-2 — подскажу , чё и как …
Просто я не знаю , чё это за штучка такая 🙁
Буду разбиратся . Удачи Вам на нелёгком конструкторсом поприще !