Russian Crazy Pilot

Dimitrovgrad
Текущее время: 16 ноя 2018 19:19

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 30 ] 
Автор Сообщение
 Заголовок сообщения: Нужна помощь по програмированию
СообщениеДобавлено: 20 фев 2018 14:52 
Не в сети

Зарегистрирован: 20 фев 2018 14:47
Сообщений: 12
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Vasiliy Timofeev
Пункты репутации: 0
Нужно на атмеге создать небольшую прогу, начал разбираться в C. И вроде как есть полно примеров и литературы на эту тему.
Нужен ШИМ с управлением скважности от приложенного напряжения и сравнивалось с опорным на отдельном порту
У шима будет несколько 2-4 выхода с разной полярностью.
И отдельно задавалась бы частота шима.
Частота в пределах 50-200гц.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 14:57 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
а частоту шима зачем регулировать (период) ?
смысла нет!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 15:01 
Не в сети

Зарегистрирован: 20 фев 2018 14:47
Сообщений: 12
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Vasiliy Timofeev
Пункты репутации: 0
Периодом решается 1 задача, частотой для других целей аналогичного прибора.

-МП вырабатывает периодический тактовый сигнал с частотой 50 Гц. В отдельных модификациях МП частота может также принимать значения 100, 200, 300, 400 или 500 Гц.


Последний раз редактировалось Vasya 20 фев 2018 15:04, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 15:03 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
в шиме периодом ничего не решить!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 15:05 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
схему рисуй.. чем это всё будет управлять.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 15:06 
Не в сети

Зарегистрирован: 20 фев 2018 14:47
Сообщений: 12
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Vasiliy Timofeev
Пункты репутации: 0
-МП вырабатывает периодический тактовый сигнал с частотой 50 Гц. В отдельных модификациях МП частота может также принимать значения 100, 200, 300, 400 или 500 Гц.
- С привязкой к одному из фронтов тактового сигнала МП вырабатывает сигнал управления tи амплитудой 8-12в. А длительность его зависит от текущего значения контрольного сигнала х.


Вложения:
Screenshot_1.jpg
Screenshot_1.jpg [ 17.86 KiB | Просмотров: 1648 ]
Screenshot_2.jpg
Screenshot_2.jpg [ 11.28 KiB | Просмотров: 1648 ]
Screenshot_3.jpg
Screenshot_3.jpg [ 59.55 KiB | Просмотров: 1648 ]
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 15:12 
Не в сети

Зарегистрирован: 20 фев 2018 14:47
Сообщений: 12
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Vasiliy Timofeev
Пункты репутации: 0
С помощью задержки фронтов сформированы короткие импульсы разделения сигналов
(dead Time). Время задержки 5-10 мксек.
Внутренний сигнал у амплитудой 10-12в изменяется вместе с tи. Соответственно – внешний сигнал z занимает оставшуюся часть периода.
Не показан на рисунках также дополнительный сигнал - инверсия внутреннего сигнала.

Вот пока все


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 15:13 
Не в сети

Зарегистрирован: 20 фев 2018 14:47
Сообщений: 12
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Vasiliy Timofeev
Пункты репутации: 0
Грубо говоря, частота меняется во время програмирования очередного МП, а скважность меняется от приложенного напряжения..
На напряжения не смотри, это потом подтягивать до уровня драйверами буду.


Последний раз редактировалось Vasya 20 фев 2018 15:38, всего редактировалось 1 раз.

Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 15:23 
Не в сети

Зарегистрирован: 20 фев 2018 14:47
Сообщений: 12
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Vasiliy Timofeev
Пункты репутации: 0
Схемы то нет никакой, нужно 4 выхода


Вложения:
Screenshot_4.jpg
Screenshot_4.jpg [ 112.72 KiB | Просмотров: 1648 ]
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 15:44 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
схема нужна но то чем управляет этот шим
что вообще это за устройство?
так проще будет понять


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 15:57 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
шим то можно сделать программный.. или аппаратный!
что в данном случае лучше... непонятно!
вот и спрашиваю.. чем он управляет.. нужна вся схема!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 15:58 
Не в сети

Зарегистрирован: 20 фев 2018 14:47
Сообщений: 12
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Vasiliy Timofeev
Пункты репутации: 0
Схема заряда ионистора только на 555 таймере и то не вся, у меня в работе только эта часть, нужно управлять ключами на полевиках.. сейчас все руками регулируется, частота и скважность, но тут нужно управлять от уровня заряда. Сейчас идет отладка силовой части, не мной. Поэтому нужно иметь несколько частот. А скважность регулирует ток заряда. При изменении скважности увеличивается ток заряда. Вот +или- будет понятно чуть позже, нужно начать хотя бы с малого.. кнопками, энкодером или потенциометром управлять скважностью и соединить с полевиками через драйверы


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 16:20 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
;
;
;
;
; 22-09-2015
;
;
;
.include "m8def.inc"

;------------------------------------------------------------------------------------------

;---------------------------------------
.cseg
.org 0x0000
;---------------------------------------


.def BUF = r16
.def CNT = r17

.def Temp1 = r18
.def Temp2 = r19
.def Temp3 = r20
.def Temp4 = r21

.def Timer1 = r22
.def Timer2 = r23
.def Timer3 = r24


.equ Clok =16000000 ;Hz

.equ Period_imp =9 ; период импульсов PWM - ms

.equ Period =Clok*Period_imp/8000


#define RD_PIN PINB,5


;**************************************************************************************************

rjmp RESET



RESET:

;**************************************************************************************************

ldi temp1, LOW(RAMEND) ;setup stack pointer
out SPL, temp1
ldi temp1, HIGH(RAMEND)
out SPH, temp1

ldi temp1,(1<<ACD)|(0<<ACBG)|(0<<ACO)|(0<<ACI)|(0<<ACIE)|(0<<ACIC)|(0<<ACIS1)|(0<<ACIS0)
out ACSR,temp1

;**************************************************************************************************
; B
ldi Temp1,(0<<DDB7)|(0<<DDB6)|(0<<DDB5)|(0<<DDB4)|(0<<DDB3)|(1<<DDB2)|(1<<DDB1)|(0<<DDB0)
out DDRB,Temp1

ldi Temp1,(0<<PORTB7)|(0<<PORTB6)|(1<<PORTB5)|(0<<PORTB4)|(0<<PORTB3)|(1<<PORTB2)|(1<<PORTB1)|(0<<PORTB0)
out PORTB ,Temp1

;==================================================================================================
; C
ldi Temp1,(0<<DDC6)|(1<<DDC5)|(0<<DDC4)|(0<<DDC3)|(1<<DDC2)|(0<<DDC1)|(0<<DDC0)
out DDRC,Temp1

ldi Temp1,(0<<PORTC6)|(1<<PORTC5)|(0<<PORTC4)|(0<<PORTC3)|(0<<PORTC2)|(0<<PORTC1)|(0<<PORTC0)
out PORTC ,Temp1

;==================================================================================================
; D
ldi Temp1,(0<<DDD7)|(0<<DDD6)|(0<<DDD5)|(0<<DDD4)|(0<<DDD3)|(0<<DDD2)|(0<<DDD1)|(0<<DDD0)
out DDRD,Temp1

ldi Temp1,(0<<PORTD7)|(0<<PORTD6)|(0<<PORTD5)|(0<<PORTD4)|(0<<PORTD3)|(0<<PORTD2)|(0<<PORTD1)|(0<<PORTD0)
out PORTD ,Temp1

;**************************************************************************************************

; Timer/Counter 1 initialization
; Clock source: System Clock
; Clock value: 125,000 kHz
; Mode: Fast PWM top=ICR1
; OC1A output: Non-Inverted PWM
; OC1B output: Disconnected
; Noise Canceler: Off
; Input Capture on Falling Edge
; Timer Period: 20 ms
; Output Pulse(s):
; OC1A Period: 20 ms Width: 0,9924 ms
; Timer1 Overflow Interrupt: Off
; Input Capture Interrupt: Off
; Compare A Match Interrupt: Off
; Compare B Match Interrupt: Off

;==================================================================================================


ldi Temp1,(1<<COM1A1) | (0<<COM1A0) | (1<<COM1B1) | (0<<COM1B0) | (1<<WGM11) | (0<<WGM10)
out TCCR1A,Temp1


ldi Temp1,(0<<ICNC1) | (0<<ICES1) | (1<<WGM13) | (1<<WGM12) | (0<<CS12) | (1<<CS11) | (0<<CS10);
out TCCR1B,Temp1

;-------------------------------------
ldi Temp1,0x00;
out TCNT1H,Temp1

ldi Temp1,0x00;
out TCNT1L,Temp1
;-------------------------------------
; ПЕРИОД
ldi Temp1,high(Period)
out ICR1H,Temp1

ldi Temp1,low(Period)
out ICR1L,Temp1
;--------------------------------------

; Timer/Counter Interrupt initialization
ldi Temp1,(0<<OCIE2)|(0<<TOIE2)|(0<<TICIE1)|(0<<OCIE1A)|(0<<OCIE1B)|(0<<TOIE1)|(0<<TOIE0);
out TIMSK,Temp1


;**************************************************************************************************



START:



rcall RX_SBUS


;==================================================================================================

lds Temp2,0x0065 ;high(ch_3)
lds Temp4,0x0064 ;low(ch_3)

rcall ADD_900
; результат с Temp2-H Temp4-L

out OCR1AH,Temp2
out OCR1AL,Temp4
;------------------------------------------------
; 70 71 - 9
lds Temp2,0x0071 ;high(ch_9)
lds Temp4,0x0070 ;low(ch_9)

rcall ADD_900
; результат с Temp2-H Temp4-L

out OCR1BH,Temp2
out OCR1BL,Temp4
;------------------------------------------------


;------------------------------------------------


rjmp START

;**************************************************************************************************

ADD_900:
; результат с Temp2 Temp4

; Temp2,high(ch_1)
; Temp4,low(ch_1)

ldi Temp1,high(1250)
ldi Temp3,low(1250)

add Temp4,Temp3
adc Temp2,Temp1


ret

;**************************************************************************************************


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 16:21 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
вот аппаратный пвм под серву


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 16:31 
Не в сети

Зарегистрирован: 20 фев 2018 14:47
Сообщений: 12
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Vasiliy Timofeev
Пункты репутации: 0
Если поможет, собрано на 555


Вложения:
Screenshot_5.jpg
Screenshot_5.jpg [ 79.96 KiB | Просмотров: 1647 ]
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 16:50 
Не в сети

Зарегистрирован: 20 фев 2018 14:47
Сообщений: 12
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Vasiliy Timofeev
Пункты репутации: 0
Скомпилировал
Теперь надо как то в протеусе запустить


Вложения:
Screenshot_7.jpg
Screenshot_7.jpg [ 105.05 KiB | Просмотров: 1647 ]
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 17:33 
Не в сети

Зарегистрирован: 20 фев 2018 14:47
Сообщений: 12
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Vasiliy Timofeev
Пункты репутации: 0
Костя посмотри плиз


Вложения:
123.zip [14.51 KiB]
Скачиваний: 41
234.zip [5.45 KiB]
Скачиваний: 42
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 18:46 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
САМО ТЕЛО ПРОГРАММЫ МЕЖДУ СТАРТАМИ..
В ПРОЕКТЕ ЭТОГО У ТЕБЯ НЕТ!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 19:48 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
Василий Василич!
ты возми мегу.. и прошивай в железе!
последние протеусы хрен запустиш


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 20:14 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
ВОТ ТУТ .. ПРОВЕРИЛ В ЖЕЛЕЗЕ ШИМ ЕСТЬ!


Вложения:
000.ZIP [20.75 KiB]
Скачиваний: 44
0000.png
0000.png [ 10.3 KiB | Просмотров: 1645 ]
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 20:22 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
ТУТ ТЫ ЕСЛИ ПОСЧИТАЛ ТО ПЕРИОД 9МС
это описано в самом начале..
rcall ADD_900 нужно убрать.. это добавляет минимальную ширину для сервы


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 фев 2018 20:26 
Не в сети

Зарегистрирован: 20 фев 2018 14:47
Сообщений: 12
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Vasiliy Timofeev
Пункты репутации: 0
Из этого HEX делать? А инициализацию проца?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 21 фев 2018 01:51 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
Vasya писал(а):
Из этого HEX делать?

хекс там в архиве уже есть.. надо прошить мегу и посмотреть сигналы на ногах проца.. порт Б0 и 1 выход 16 бит пвм!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 21 фев 2018 02:08 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
Vasya писал(а):
А инициализацию проца?

ты по ходу ваще не понял что такое проц и как он работает!
это просто калькулятор ОДНОЗАДАЧНЫЙ который работает по программе!
и состоит из 8 битных регистров.. регистры отвечают за порты.. таймеры..
ком порты.. спай порты.. и2ц шина.. каналы пвм.. епром.. прерывания.. и прочую лабуду!!!

тыже водитель? вот чтобы твоя машина поехала надо её инициализировать...
тоесть.. залить бензин (в регистр бензобак) залить масло. в регистр МОТОР..
залить тормазуху.. посадить водителя.. завести мотор...
и только потом машина поедит!

поэтому начинать програмирование лучше с изучения самого проца
его регистров.. всех его устройств внутри и их конфигурации!
очень хорошо описан проц мега 128 на gaw.ru на русском языке!
если чесно то я сам незнаю всей переферии проца.. просто потому что с ней не сталкивался..
и разбираюсь с ней по мере необходимости!
многие аппаратные устройства.. например ком порт можно описать програмно..
в чём разница??? аппаратный жостко привязан к ногам проца.. и ноги поменят уже нельзя!
и может быть всего один.. а надо например два кома!
аппаратный настраивается по скорости в пересчёте от кварца.. тоесть только на какието конкретные скоростя..
програмному это повиг.. скорость любая! и ноги тоже.. тоесть удобно!
начать лучше с меги 8... неубиваемый проц! и много что может!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 21 фев 2018 02:38 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
теперь про написание самой проги...
и что такое инициализация проца..

.include "m8def.inc"
инклюдэ.. это просто фаил описания проца.. ног.. регистров и бит в них
в проце нет например PORTB.. есть регистр 0х18
тоесть там просто пишится PORTB = 0х18
ниже будет конфигурация PORTB.. но на самом деле ты будеш конфигурировать регистр 0х18
===================================
ЭТО ГОВОРИТ ЧТО НАЧИНАЕМ С НУЛЕВОЙ ОБЛАСТИ ПАМЯТИ (НЕОБЯЗАТЕЛЬНО)
;---------------------------------------
.cseg
.org 0x0000
;---------------------------------------
=====================================
ТУТ...
В АВР ЕСТЬ 32 РЕГИСТРА С КОТОРЫМИ И ОПЕРИРУЕМ..
ГРУБО ГОВОРЯ КАРМАНЫ НА ТВОИХ ШТАНЫХ
ДОСТАЛ С КАРМАНА БАБОСЫ.. ПРОПИЛ.. ЖЕНЕ ОТДАЛ.. ИЛИ В ДРУГОЙ КАРМАН ПОЛОЖИЛ!

ЕСТЬ В ПРОЦЕ РЕГИСТРЫ В КОТОРЫЕ НЕЛЬЗЯ ПОЛОЖИТЬ НАПРЯМУЮ.. ЭТО
R0-R15 И ЕСТЬ МНОГО РЕГИСТРОВ В ПЕРЕФЕРИИ..
ТУДА МОЖНО ТОЛЬКО ПЕРЕЛОЖИТЬ ИЗ ДРУГОВА РЕГИСТРА..
НАПРИМЕР ИЗ Р16 ПО Р32
И БУДЕТ ВЫГЛЯДЕТЬ ТАК!
ldi r16,200
mov r0,r16

это значит что в р16 загрузили число 200
и переложили его в р0

дальше..
тут идет ДЕФ!
это присвоении просто имени регисту.. для удобности
чтобы ты помнил что там
тоесть можно записать так..
ldi r16,200
а можно так
ldi BUF,200

тоесть думаю понятно!

.def BUF = r16
.def CNT = r17

.def Temp1 = r18
.def Temp2 = r19
.def Temp3 = r20
.def Temp4 = r21

.def Timer1 = r22
.def Timer2 = r23
.def Timer3 = r24
============================
тут впринципе тоже самое..
толко толко именам (переменным) присваевается какоето значение..
зачем это делается..
вот представь что Clok указан в проге 1000раз и указан цыфрами.. и теперь тебе их надо поменять!
1000раз по тексту все найти это проблема.. а через имя просто один раз поменять!


.equ Clok =16000000 ;Hz

.equ Period_imp =9 ; период импульсов PWM - ms

.equ Period =Clok*Period_imp/8000


==================================


;**************************************************************************************************
это типа старт с первого адреса.. и между этими строками обычно находятся адреса прерываний
об это позже!
rjmp RESET



RESET:

;**************************************************************************************************
а вот это уже началась инициализация проца!!
4ре красные строки обязательны! во всех процах
это инициализация стека!
попросту сказать настройка кристалической решотки памяти :) (во эт пизданул :) )

ldi temp1, LOW(RAMEND) ;setup stack pointer
out SPL, temp1
ldi temp1, HIGH(RAMEND)
out SPH, temp1

-------------
это ACSR отключаем компаратор.. чтобы просто не мешался!

ldi temp1,(1<<ACD)|(0<<ACBG)|(0<<ACO)|(0<<ACI)|(0<<ACIE)|(0<<ACIC)|(0<<ACIS1)|(0<<ACIS0)
out ACSR,temp1

;**************************************************************************************************
это настройка портов.. тоесть просто ноги процесора!!
регистры DDR отвечают как будет работать нога.. входом или выходом

; B
ldi Temp1,(0<<DDB7)|(0<<DDB6)|(0<<DDB5)|(0<<DDB4)|(0<<DDB3)|(1<<DDB2)|(1<<DDB1)|(0<<DDB0)
out DDRB,Temp1

регистр PORT отвечает за подтягивающие резисторы к +.. если в нужный бит записать 1 то он подключится
через резистр к + .. акруально если нога включена как вход.. чтобы не болталась в воздухе :)

ldi Temp1,(0<<PORTB7)|(0<<PORTB6)|(1<<PORTB5)|(0<<PORTB4)|(0<<PORTB3)|(1<<PORTB2)|(1<<PORTB1)|(0<<PORTB0)
out PORTB ,Temp1

;==================================================================================================
; C
ldi Temp1,(0<<DDC6)|(1<<DDC5)|(0<<DDC4)|(0<<DDC3)|(1<<DDC2)|(0<<DDC1)|(0<<DDC0)
out DDRC,Temp1

ldi Temp1,(0<<PORTC6)|(1<<PORTC5)|(0<<PORTC4)|(0<<PORTC3)|(0<<PORTC2)|(0<<PORTC1)|(0<<PORTC0)
out PORTC ,Temp1

;==================================================================================================
; D
ldi Temp1,(0<<DDD7)|(0<<DDD6)|(0<<DDD5)|(0<<DDD4)|(0<<DDD3)|(0<<DDD2)|(0<<DDD1)|(0<<DDD0)
out DDRD,Temp1

ldi Temp1,(0<<PORTD7)|(0<<PORTD6)|(0<<PORTD5)|(0<<PORTD4)|(0<<PORTD3)|(0<<PORTD2)|(0<<PORTD1)|(0<<PORTD0)
out PORTD ,Temp1

;**************************************************************************************************

;==================================================================================================
ЭТО КОНФИГУРИРУЕМ ТАЙМЕР1 КАК ПВМ

ldi Temp1,(1<<COM1A1) | (0<<COM1A0) | (1<<COM1B1) | (0<<COM1B0) | (1<<WGM11) | (0<<WGM10)
out TCCR1A,Temp1


ldi Temp1,(0<<ICNC1) | (0<<ICES1) | (1<<WGM13) | (1<<WGM12) | (0<<CS12) | (1<<CS11) | (0<<CS10);
out TCCR1B,Temp1

;-------------------------------------
ldi Temp1,0x00;
out TCNT1H,Temp1

ldi Temp1,0x00;
out TCNT1L,Temp1
;-------------------------------------
; ПЕРИОД
ldi Temp1,high(Period)
out ICR1H,Temp1

ldi Temp1,low(Period)
out ICR1L,Temp1
;--------------------------------------

; Timer/Counter Interrupt initialization
ldi Temp1,(0<<OCIE2)|(0<<TOIE2)|(0<<TICIE1)|(0<<OCIE1A)|(0<<OCIE1B)|(0<<TOIE1)|(0<<TOIE0);
out TIMSK,Temp1

ЗАКОНЧИЛИ КОНФИТЬ ПВМ

;**************************************************************************************************

САМА ПРОГА...

START:


RX_SBUS ТУТ НЕ АКТУАЛЬНО.. САМОЙ ПРОГУ ТУТ НЕТ..
ОНА ПРОСТО ПРИНИМАЛА ИНФУ И ГРУЗИЛА В ПАМЯТЬ ПО НУЖНЫМ АДРЕСАМ!
rcall RX_SBUS


;==================================================================================================

А ТУТ УЖЕ ИДЁТ ЗАГРУЗКА ИНФЫ О РЦ КАНАЛЕ ИЗ ЯЧЕЕК ОЗУ 65 И 64
В Р19 И Р21..ПОТОМ В ПРОГЕ rcall ADD_900К ЭТИМ ЧИСЛАМ ДОБАВЛЯЕТСЯ
ИМПУЛЬС 09МС.. У НАСЖЕ У СЕРВЫ ИМПУЛЬС ЕСЛИ НОЛЬ ТО ЭТО 09МС.. А ЕСЛИ 2048 ТО ЭТО 2.1МС

lds Temp2,0x0065 ;high(ch_3)
lds Temp4,0x0064 ;low(ch_3)

rcall ADD_900
; результат с Temp2-H Temp4-L

out OCR1AH,Temp2
out OCR1AL,Temp4
;------------------------------------------------
; ИТАК В ДВА КАНАЛА ПВМ

lds Temp2,0x0071 ;high(ch_9)
lds Temp4,0x0070 ;low(ch_9)

rcall ADD_900
; результат с Temp2-H Temp4-L

out OCR1BH,Temp2
out OCR1BL,Temp4
;------------------------------------------------


;------------------------------------------------
НУ И НАЧИНАЕМ С НАЧАЛА!!! СО СТРОКИ START:

rjmp START

;**************************************************************************************************

ADD_900:
; результат с Temp2 Temp4

; Temp2,high(ch_1)
; Temp4,low(ch_1)

ldi Temp1,high(1250)
ldi Temp3,low(1250)

add Temp4,Temp3
adc Temp2,Temp1


ret

;***********************************************************************************************


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 21 фев 2018 02:42 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
В ТОЁМ случае.. там где строка rcall RX_SBUS
надо вызывать опрос ацп..
тогда тут у тебя получится афигенный серво тестер! :)

ну и доработать потом под твои нужды!
как прошьёш мегу 8.. и увидиш пвм импульсы... продолжим!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 21 фев 2018 09:23 
Не в сети

Зарегистрирован: 20 фев 2018 14:47
Сообщений: 12
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Имя: Vasiliy Timofeev
Пункты репутации: 0
Костя, ну я почти все понял, осталось в железо попробовать залить.
Смотри у меня в наличии есть тинька 26L-8PU, DIP20
Есть какие камни перевода с меги на тиньку?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 21 фев 2018 10:59 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
Vasya писал(а):
Костя, ну я почти все понял, осталось в железо попробовать залить.
Смотри у меня в наличии есть тинька 26L-8PU, DIP20
Есть какие камни перевода с меги на тиньку?

возможно и есть
в авр студии.. закладка дебаг - селект платформ энд девайс..
выбираеш проц который тебе надо и в правом верхнем окне потом смотриш что там есть
а там есть!!! верней нет 16 битного таймера1
есть 3х канальный 8 битный таймер 1


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 22 фев 2018 20:08 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
http://www.sinava.ru/BM9010.php

http://forum.rcdesign.ru/blogs/50021/bl ... l#comments


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 23 фев 2018 01:07 
Не в сети
Администратор

Зарегистрирован: 29 ноя 2012 14:46
Сообщений: 667
Благодарил (а): 72 раз.
Поблагодарили: 149 раз.
Имя:
Пункты репутации: 2
вот ещё
http://myrobot.ru/stepbystep/mc_programmer.php#usbasp

http://myrobot.ru/downloads/driver-usba ... -10-xp.php


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 30 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB