Корректировка исходника для теста форсунок.

Обсуждаем контроллеры компании Atmel.
Ответить
Встал на лапы
Сообщения: 97
Зарегистрирован: Ср окт 17, 2012 11:42:17
Откуда: Барнаул

Сообщение ололошка »

Недавно наткнулся на очень простой тестер форсунок. Но есть некоторая проблема, у него в исходники забиты некоторые крайне опасные функции. К примеру для теста производительности высокий уровень в течение 60с. Оэто очень много когда для чистки нужно максимум 10мс. Кто может подсказать какая часть исходника за что отвечает, а часности то что отвечает за время импульса, а то сам только понял как скважность изменять.
Изображение


;Программа управлением стендом промывки форсунок.
;Форсунки управляются с выхода RD0
;Кнопки на портах RB
;Реализовано 3 режима: "тест производительности", "очистка" и "кавитация"
;**************************************************************************
.include "2313def.inc"

.cseg
.org 0
rjmp Reset
rjmp INT_0
rjmp INT_1
rjmp Timer1_capt1
rjmp Timer1_comp1
rjmp Timer1_OVF1
rjmp Timer0_OVF0
rjmp UART_RX
rjmp UART_UDRE
rjmp UART_TX
rjmp ANA_COMP

;Reset:
INT_0:
INT_1:
Timer1_capt1:
;Timer1_comp1:
Timer1_OVF1:
Timer0_OVF0:
UART_RX:
UART_UDRE:
UART_TX:
ANA_COMP:
reti

;Инициализация
reset:
cli ;Запретить прерывания
ldi r31,0b01110001 ;Порт "D0,D5,D6" на вывод, по умолчанию все
out DDRD,r31 ;порты настроены как входы
ldi r31,0b11111111 ;к портам "B" подключаем подтягивающий резистор
out portb,r31
ldi r25,RAMEND ;Инициализация стека
out spl,r25 ;для выхода из прерываний
;**************Таймер ***************
ldi r31,0b01000000 ;разрешить прерывание компаратора
out TIMSK,r31
ldi r31,0b00000011 ;тактовый сигнал = CK/8 (10)
out TCCR1B,r31
ldi r31,0x7f ;инициализация компаратора 2.5 ms
out OCR1AH,r31
ldi r31,0xff
out OCR1AL,r31
ldi r31,0 ;обнуление таймера
out TCNT1H,r31
out TCNT1L,r31
ldi r31,0 ;установка портов вывода на "0"
out portD,r31
ldi r19,255
;*******************************************************

;*********************Обработка событий*********************
Loop:
SBIs pinB,0 ;если не нажата кнопка пинB 0 "0" пропустить
rcall kavit ;Запускаем режим кавитации
SBIs pinB,1 ;если не нажата кнопка пинB 0 "0" пропустить
rcall open_10s ;Запускаем режим "измерения"
SBIs pinB,2 ;если не нажата кнопка пинB 0 "0" пропустить
rcall clear ;Запускаем режим промывки
rjmp Loop

;*****************Подпрограммы***************************************

Timer1_comp1:
cbi portd,0 ;"0" на вывод порт D0
rcall del_100
rcall del_100
rcall del_100
ldi r31,0 ;обнуление таймера
out TCNT1H,r31
out TCNT1L,r31
SBIc pinD,5 ;если включен режим "тест" по окончании таймера
rcall reset ;сброс.
reti

;****************Режим кавитации****************************
kavit:
sbi portD,4 ;индикация режима кавитации
sei ;разрешаем прерывания
loop_1: sbi portD,0 ;открыть форсунку
rcall delay
cbi portd,0 ;закрыть форсунку
rcall delay ;Для скважности 30% 1 пауза откр. 2 закр
rcall delay
rjmp Loop_1

;*****************Режим очистки (эмитация работы двигателя)**
clear:
sbi portD,6 ;индикация режима очистки
loop_3: sbi portD,0 ;открыть форсунку
rcall del_100
rcall del_100
cbi portd,0 ;закрыть форсунку
rcall del_100
rcall del_100
rjmp Loop_3
;****************Режим проверки производительности**************
open_10s:
ldi r31,0b00000101 ;тактовый сигнал таймера
out TCCR1B,r31
sbi portD,5 ;индикация режима "налив"
ldi r31,0 ;обнуление таймера
out TCNT1H,r31
out TCNT1L,r31
sei ;разрешаем прерывания
loop_2:
sbi portD,0 ;Открыть форсунку
rjmp Loop_2 ;Ждем пока не сработает таймер


;*************Задержки для инициализации и отпраки команд********
delay:

dec r19
mov r19,r17 ;задержка
l: ldi r18,4
l1: dec r18
brne l1
dec r17
brne l
ret


del_100:
ldi r17,255 ;задержка
l_1: ldi r18,255
l1_1: dec r18
brne l1_1
dec r17
brne l_1
ret

;.org $200
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Сообщение ChipKiller »

Недавно наткнулся на очень простой тестер форсунок.
... в ветке АвтоМотоВело выложил проект в Proteus
Реклама
Встал на лапы
Сообщения: 97
Зарегистрирован: Ср окт 17, 2012 11:42:17
Откуда: Барнаул

Сообщение ололошка »

Ничего не понял. Но что то умное) Там проект если не ошибаюсь недоработан?
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Сообщение ChipKiller »

Там проект если не ошибаюсь недоработан?
.. для изменения "режимов" поиграйте значением 3-х переменных (в комментариях все есть...)

PS. информация на индикаторе информативней светодиодов, плюс можете настраивать параметры
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Сообщения: 97
Зарегистрирован: Ср окт 17, 2012 11:42:17
Откуда: Барнаул

Сообщение ололошка »

А можете конкретно подсказать с чем игратся? Мне в "моем " проекте более менее стало понятно, только никак не могу разобратся с этими строками.


;****************Режим кавитации****************************
kavit:
sbi portD,4 ;индикация режима кавитации
sei ;разрешаем прерывания
loop_1: sbi portD,0 ;открыть форсунку
rcall delay
cbi portd,0 ;закрыть форсунку
rcall delay ;Для скважности 30% 1 пауза откр. 2 закр
rcall delay
rjmp Loop_1

Мне нужно этот блок изменить чтоб взаместо таймера на 1 минуту был генератор примерно 300-400 герц скважность 50-60%.
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Сообщение ChipKiller »

А можете конкретно подсказать с чем игратся?

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

    time_l=100; // длительность 0
    time_h=200; // длительность 1
	clk_count=2000; // количество импульсов
time_h+time_l=период, про clk_count добавить что то сложно ....
Реклама
Встал на лапы
Сообщения: 97
Зарегистрирован: Ср окт 17, 2012 11:42:17
Откуда: Барнаул

Сообщение ололошка »

А можете конкретно в кусок исходника кинуть чтоб понятней было. P.S. Немного я туповат. Ничего кроме паскаля в школе не изучал ди и его через раз слушал.
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Сообщение ChipKiller »

А можете конкретно в кусок исходника кинуть
- исходник в архиве вместе с проектом
Встал на лапы
Сообщения: 97
Зарегистрирован: Ср окт 17, 2012 11:42:17
Откуда: Барнаул

Сообщение ололошка »

Да я не про тот проэкт. Я про свой почти доляпанный под себя.
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Сообщение ChipKiller »

Встал на лапы
Сообщения: 97
Зарегистрирован: Ср окт 17, 2012 11:42:17
Откуда: Барнаул

Сообщение ололошка »

Мои познания в программирование на уровне как залить прошивку и больше толком ничего)
Первый раз сказал Мяу!
Сообщения: 36
Зарегистрирован: Ср апр 15, 2015 10:03:15
Откуда: Ростов-на-Дону

Сообщение voffka_rostov »

Я так понимаю что проект без проблем можно реализовать на меге? 8/168/328?
Друг Кота
Аватара пользователя
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск

Сообщение pyzhman »

Конечно.
Docendo discimus
Контактная информация:
Встал на лапы
Сообщения: 102
Зарегистрирован: Вт июл 10, 2012 14:13:34
Откуда: Харьков

Сообщение krox »

Заинтересовала эта схемка. Нужен-ли диод, где подключается форсунка?
Ответить

Вернуться в «AVR»