Кузов проварю и инж поставлю
а на моем стандартном восьмом тоже проблемы будут? или с ним на много проще с настройкой?
в армейку боюсь заберут на старости лет.
Engineer09
тож недавно посмотрел АЦП (через ICD) своего ДВРМ - 1,02 , померял напругу между зелёним и жёлтым - 1,02 (мультиметр китайский :-D ), померял сопротивление между выводами - в пределах допуска. но ничего криминального не замечено, расход нормальный, разгон ... надо с чем-то сравнить (всё сток) ... тож вроде ничего, правда когда ещё температура двиг. до 50-60С то при резком нажатии на педальку 1-2сек. паузы - мож это симптом? машинака 25 тык пробежала.
Потом проверил у друга на 13 - 1,0В.
вот незнаю.
пока забил
посмотрел АЦП
и не знал, что можно проверить работу АЦП с помощью обычного китайского мультиметра
Just_a_Boy
ну чё ты к словам придрался?
все здесь поняли о чём речь.
ну написал:
посмотрел АЦП
и не знал, что можно проверить работу АЦП с помощью обычного китайского мультиметра
Проверки АЦП?
А зачем его проверять?
"в символы понятные всем" - это в какие?
Just_a_Boy
я в терминах не силён, поэтому извиняюсь за неточность, которая тебя так напугала.
Проверки АЦП?
А зачем его проверять?
"в символы понятные всем" - это в какие?
проверять работу аппаратного АЦП с помощью китайского мультиметра и без элементарных знаний по устройству и функционированию АЦП - это круто!
Теперь пора переходить к замеру мощности двигателя "на глаз"
Just_a_Boy
пойми, мы сдесь не теорию АЦП обсуждаем.
Если будет нужда обратиться к специалисту по АЦП - уже знаем к кому! :cool:
источником этой формулы является документ ВАЗа. Если в ней проблема так подскажи им. Тоесть ты имеешь ввиду что "правильная" формула должна выглядеть так: N=E*5.0000/1024?
я не вникал в суть работы ЭБУ но эта формула ЭБУ не нужна, он работает с величиной Е. Она для того чтоб каждый мог увидеть там величину НАПРЯЖЕНИЕ а не какое-то непонятное число.
проверять работу аппаратного АЦП с помощью китайского мультиметра и без элементарных знаний по устройству и функционированию АЦП - это круто!
Теперь пора переходить к замеру мощности двигателя "на глаз"
Речь не о принципе работы АЦП
для "разводильщиков лохов"
А вдруг "источник этой формулы" не Волжский АВТОМОБИЛЬНЫЙ завод
кто ляпает "новые прошивки" и "программы для проверки АЦП"
не замеряют выходной сигнал с АЦП мультиметром!
цифра 1024
катаемся и посматриваем на лампочку СЕ
Да и вообще, к чему все эти обсуждения АЦП, если на выходе ДМРВ - аналоговое напряжение (у тех, которые мы обсуждаем)? И важно ИЗМЕНЕНИЕ этого напряжения в зависимости от движения потока воздуха... Учитываем: падение напряжения на контактах, САУ с обратной связью (Датчик Кислорода и т.п.) и то, что ДМРВ и ЭБУ разрабатывали люди, знающие ЧТО такое есть АЦП, процессор и транзистор - катаемся и посматриваем на лампочку СЕ. Как только загорится - смотрим на ошибки и в зависимости от причины - устраняем или обращаемся в СЦ (лучше туда, где не замеряют выходной сигнал с АЦП мультиметром! И, конечно же, не туда, где пропиливают дырочки в ДПДЗ напильником для получения "0%"!). СпрОсите: "А куда?" Если спросили - значит... идем в магаз и покупаем новую запчасть. Иначе - нас так и будут доить всякие "знатоки"-прошивальщики, и будут забивать нам "АЦП через ICD своего ДВРМ" за наши же деньги...
замолви,заодно, словечко о Я7.2
Пока специалист по ацп тут не налошил - программа использует только 8 разрядов! Поэтому /256
Да и вообще, к чему все эти обсуждения АЦП, если на выходе ДМРВ - аналоговое напряжение (у тех, которые мы обсуждаем)? И важно ИЗМЕНЕНИЕ этого напряжения в зависимости от движения потока воздуха... Учитываем: падение напряжения на контактах, САУ с обратной связью (Датчик Кислорода и т.п.) и то, что ДМРВ и ЭБУ разрабатывали люди, знающие ЧТО такое есть АЦП, процессор и транзистор - катаемся и посматриваем на лампочку СЕ. Как только загорится - смотрим на ошибки и в зависимости от причины - устраняем или обращаемся в СЦ (лучше туда, где не замеряют выходной сигнал с АЦП мультиметром! И, конечно же, не туда, где пропиливают дырочки в ДПДЗ напильником для получения "0%"!). СпрОсите: "А куда?" Если спросили - значит... идем в магаз и покупаем новую запчасть. Иначе - нас так и будут доить всякие "знатоки"-прошивальщики, и будут забивать нам "АЦП через ICD своего ДВРМ" за наши же деньги...
Что-то Just_a_Boy много говорить начал И похоже сам главный разводильщик.
Пока специалист по ацп тут не налошил - программа использует только 8 разрядов! Поэтому /256
А в числителе ЧЕГО? Неужто пустота? А пустота (делимое) деленная на 256 (делитель) скоко даст в частном? Что? Пустоту??? То есть - ВОЗДУХ! Вот его-то мы и замеряем! :grin:
...А я, конечно же, теперь стал "специалистом по ацп"!
Еще раз предупреждение: попав вот к такому разводильщику - не задерживайтесь ни на секунду! Задний ход и - по газам! Иначе - засрет мозги, унизит, оскорбит, постарается выставить дураком даже если в совершенстве владеешь вопросом и... обдерет как липку! Помню-помню: "расточку дырок под крепление ДПДЗ" и угрозы в адрес спецов-электронщиков, попытавшихся хоть как-то осадить хама!
(Код Р0102 заносится, если существуют следующие условия: 1)обороты двигателя выше 560 об/мин, 2)расход воздуха ниже 2,5кг/ч) и 0103 (Код Р0103 заносится, если в течение 1 сек расход воздуха превышает порог, зависящий от оборотов двигателя), помним про программу ЭБУ, написанную - к счастью - программистами, а не слесарями, пусть даже эти слесаря и очень умные...
MOV A,R1
JNZ A15AA ;Текущий расход >25.6кг/ч
JB RAM_2A.3,A15AA ;>Двигатель находится в режиме пуска.
MOV DPTR,#T6062 ;+Минимальный расход воздуха для диагностики ДМРВ
CLR A
MOVC A,@A+DPTR ;0.5кг/ч =05h
MOV B,A
MOV A,R0
CLR C
MOV SERRORL.6,C ;Сбрасываем флаг ошибки низкий уровень ДМРВ.
SUBB A,B
JNC A15AA ;>Расход воздуха более 0.5кг/ч
;Расход воздуха менее 0.5кг/ч
MOV DPTR,#JATAIR
MOVX A,@DPTR ;код АЦП ДМРВ.
CLR C
SUBB A,#07H ;-0.13v
MOV SERRORL.6,C ;Если напряжение<0.13v - устанавливаем флаг ошибки.
CLR SERRORH.6 ;Сбрасываем флаг ошибки высокого уровня ДМРВ
A159A:
;Ошибка ДМРВ. Устанавливаем расход воздуха = 0.
MOV R0,#00H
MOV R1,#00H
MOV DPTR,#JAIR
MOV A,R0
MOVX @DPTR,A
INC DPL
MOV A,R1
MOVX @DPTR,A
LJMP A15B5
A15AA: CLR SERRORL.6 ;Сброс ошибки низкого уровня ДМРВ.
MOV DPTR,#JAIR
MOV A,R0
MOVX @DPTR,A
INC DPL
MOV A,R1
MOVX @DPTR,A
A15B5:
MOV DPTR,#JAIR ;Текущий расход воздуха *10.
MOVX A,@DPTR
MOV R0,A
INC DPL
MOVX A,@DPTR
MOV R1,A
MOV DPTR,#T6063 ;+Максимальный расход воздуха для диагностики ДМРВ
CLR A
MOVC A,@A+DPTR ;614.4кг/ч =18h
MOV B,A
MOV A,R1
JZ A1667 ;>Расход менее 25.6 кг/ч.
CLR C
SUBB A,B ;Вычитаем из текущего расхода 614.4kg/h
CPL C
MOV SERRORH.6,C ;Если текущий больше - заносим код ошибки.
SJMP A1669
A1667: CLR SERRORH.6 ;Сброс кода ошибки
A1669:
(Код Р0102 заносится, если существуют следующие условия: 1)обороты двигателя выше 560 об/мин, 2)расход воздуха ниже 2,5кг/ч) и 0103 (Код Р0103 заносится, если в течение 1 сек расход воздуха превышает порог, зависящий от оборотов двигателя), помним про программу ЭБУ, написанную - к счастью - программистами, а не слесарями, пусть даже эти слесаря и очень умные...
MOV A,R1
JNZ A15AA ;Текущий расход >25.6кг/ч
JB RAM_2A.3,A15AA ;>Двигатель находится в режиме пуска.
MOV DPTR,#T6062 ;+Минимальный расход воздуха для диагностики ДМРВ
CLR A
MOVC A,@A+DPTR ;0.5кг/ч =05h
.....................
A1667: CLR SERRORH.6 ;Сброс кода ошибки
A1669:
unsigned int def_LEVEL(){
unsigned int cnt;
GODONE = 1;//A/D conversion cycle in progress. Setting this bit starts an A/D conversion cycle.
while (!GODONE);
cnt=ADRESH;
cnt<<=8;
cnt|=ADRESL;
cnt&=0x03FF;
return cnt;
}
void soft_lig_on(){//включение мотора
#define len_on 8//9//10
#define soft_time_on 3//4 -- изменил 21.04.08
#define TIME_ON soft_time_on*TIME_SOFT_ON
int i,y,z;
unsigned char t;
i = soft_time_on*TIME_SOFT_ON;
t=0;
z=20;//10;//25;
if (lig_on){
relay_on();
time_now=0;
return;
}
do{
z+=soft_time_on;
time_now=i;
do{
relay_off();
delay_us(len_on*i);
relay_on();
delay_us((((TIME_ON*len_on)+1)-(len_on*i)));
}while (z>0);
i--;
}while ((i>0));
lig_on=TRUE;
}
543: void soft_lig_on(){//включение мотора
0C6 302D MOVLW 0x2d
0C7 1283 BCF 0x3, 0x5
0C8 00C5 MOVWF 0x45
0C9 01C6 CLRF 0x46
0CA 01C2 CLRF 0x42
0CB 3014 MOVLW 0x14
0CC 00C3 MOVWF 0x43
0CD 01C4 CLRF 0x44
0CE 18A1 BTFSC 0x21, 0x1
0CF 28D4 GOTO 0xd4
555:
0D1 01AA CLRF 0x2a
0D2 01AB CLRF 0x2b
557:
0D3 0008 RETURN
0D4 3003 MOVLW 0x3
0D5 07C3 ADDWF 0x43, F
0D6 1803 BTFSC 0x3, 0
0D7 0AC4 INCF 0x44, F
561:
0D8 0845 MOVF 0x45, W
0D9 00AA MOVWF 0x2a
0DA 0846 MOVF 0x46, W
0DB 00AB MOVWF 0x2b
0DD 1283 BCF 0x3, 0x5
0E0 0846 MOVF 0x46, W
0E1 00DA MOVWF 0x5a
0E2 0845 MOVF 0x45, W
0E3 00D9 MOVWF 0x59
0E4 1003 BCF 0x3, 0
0E5 0DD9 RLF 0x59, F
0E6 0DDA RLF 0x5a, F
0E7 1003 BCF 0x3, 0
0E8 0DD9 RLF 0x59, F
0E9 0DDA RLF 0x5a, F
0EA 1003 BCF 0x3, 0
0EB 0DD9 RLF 0x59, F
0EC 0DDA RLF 0x5a, F
0ED 0859 MOVF 0x59, W
0EE 00CB MOVWF 0x4b
0EF 085A MOVF 0x5a, W
0F0 00CC MOVWF 0x4c
0F1 2033 CALL 0x33
0F3 0846 MOVF 0x46, W
0F4 00DA MOVWF 0x5a
0F5 0845 MOVF 0x45, W
0F6 00D9 MOVWF 0x59
0F7 1003 BCF 0x3, 0
0F8 0DD9 RLF 0x59, F
0F9 0DDA RLF 0x5a, F
0FA 1003 BCF 0x3, 0
0FB 0DD9 RLF 0x59, F
0FC 0DDA RLF 0x5a, F
0FD 1003 BCF 0x3, 0
0FE 0DD9 RLF 0x59, F
0FF 0DDA RLF 0x5a, F
100 0859 MOVF 0x59, W
101 00C7 MOVWF 0x47
102 085A MOVF 0x5a, W
103 00C8 MOVWF 0x48
104 3069 MOVLW 0x69
105 00D9 MOVWF 0x59
106 3001 MOVLW 0x1
107 00DA MOVWF 0x5a
108 0847 MOVF 0x47, W
109 02D9 SUBWF 0x59, F
10A 1C03 BTFSS 0x3, 0
10B 03DA DECF 0x5a, F
10C 0848 MOVF 0x48, W
10D 02DA SUBWF 0x5a, F
10E 0859 MOVF 0x59, W
10F 00CB MOVWF 0x4b
110 085A MOVF 0x5a, W
111 00CC MOVWF 0x4c
112 2033 CALL 0x33
570:
113 08C3 MOVF 0x43, F
114 1903 BTFSC 0x3, 0x2
115 03C4 DECF 0x44, F
116 03C3 DECF 0x43, F
571:
117 0844 MOVF 0x44, W
118 3A80 XORLW 0x80
119 00D9 MOVWF 0x59
11A 3080 MOVLW 0x80
11B 0259 SUBWF 0x59, W
11C 3001 MOVLW 0x1
11D 1903 BTFSC 0x3, 0x2
11E 0243 SUBWF 0x43, W
11F 1803 BTFSC 0x3, 0
120 28DC GOTO 0xdc
121 08C5 MOVF 0x45, F
122 1903 BTFSC 0x3, 0x2
123 03C6 DECF 0x46, F
124 03C5 DECF 0x45, F
125 0846 MOVF 0x46, W
126 3A80 XORLW 0x80
127 00D9 MOVWF 0x59
128 3080 MOVLW 0x80
129 0259 SUBWF 0x59, W
12A 3001 MOVLW 0x1
12B 1903 BTFSC 0x3, 0x2
12C 0245 SUBWF 0x45, W
12D 1803 BTFSC 0x3, 0
12E 28D4 GOTO 0xd4
12F 10A1 BCF 0x21, 0x1
130 0008 RETURN
580: unsigned int def_LEVEL(){
063 1283 BCF 0x3, 0x5
064 149F BSF 0x1f, 0x1
065 189F BTFSC 0x1f, 0x1
066 2865 GOTO 0x65
067 081E MOVF 0x1e, W
068 00CB MOVWF 0x4b
069 01CC CLRF 0x4c
06A 00CC MOVWF 0x4c
06B 01CB CLRF 0x4b
588:
06C 1683 BSF 0x3, 0x5
06D 081E MOVF 0x1e, W
06E 1283 BCF 0x3, 0x5
06F 04CB IORWF 0x4b, F
589:
070 3003 MOVLW 0x3
071 05CC ANDWF 0x4c, F
590:
072 084C MOVF 0x4c, W
073 00DA MOVWF 0x5a
074 084B MOVF 0x4b, W
075 00D9 MOVWF 0x59
591:
076 0008 RETURN
Компилятор так разбрасывает код, что разобраться в нем - не сможет даже сам автор
Приведенную программу на С писал я, но где в листинге дизассемблера найти константу len_on ? Х.З.! И никто не найдет! Даже ты! А она - там есть! (Мы суслика не видим, а он - есть!)
Ахаха!
1) Изначально этот код написан на макроассемблере! Компилятора на столько эфективного не существовало ни в 1990-х когда его писали ни сейчас. И это не листинг дизассемблера а исходник J5LS. Она откоментированна вся. При этом многое сделано автоматически.
2) Только последний слесарь может писать на С для PIC16. И только такое убожество - как кнопки. Поэтому код немерянно раздут и озу используется неэффективно.
Компилятор так разбрасывает код, что разобраться в нем - не сможет даже сам автор
Приведенную программу на С писал я, но где в листинге дизассемблера найти константу len_on ? Х.З.! И никто не найдет! Даже ты! А она - там есть! (Мы суслика не видим, а он - есть!)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы можете вкладывать файлы
Вы можете скачивать файлы