Страница 2 из 6
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 10:14:07
rxstart1
Спасибо. Но возникает вопрос как быть?
Просто я думал что программа циклично заходит и проверяет это условие или я не прав. Если я не прав у меня возникает проблемма как можно это дело обойти т. е. обнулить переменную 1 раз?
т. е. переменную я обнуляю, но при условии, что триггер не взведен и сразу же взвожу триггер, т. е. при следующем заходе она не должна обнуляться.
Антидребезг я тоже сделал на таймере вот здесь
if (START_BUTTON && trig) // кнопка отпущена
{
if (tim2>SEC_05) // антидребезг
{
.....
по сл. ошибке, мне лучше запретить прерывание?
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 10:18:22
rxstart1
Да на счет программатора Вы меня не совсем правильно поняли))
на примере одного пина я показал как будет задействовано и работать готовая схема, +12в подается только при подключении к машине)), а при программировании туда вообще ничего подавать не собирался.))
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 10:29:56
ИС-пытатель
Прошу прощения, упустил, что у Вас триггер взводится. Сейчас еще раз посмотрю.
А при программировании контроллера у Вас питание на него как будет подаваться?
И при работе у Вас транзистор не будет открываться в таком включении.
У Вас антидребезг по факту отпускания кнопки, а по факту нажатия нет.
Вот здесь у Вас зависнет, пока не нажмете кнопку HEAT. А при ее нажатии у Вас сработает прерывание, для которого нет обработчика и контроллер сбросится. Вам надо или убрать настройку прерывания или написать для него обработчик
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 10:36:06
rxstart1
точно не будет на скорую руку вчера делал не посмотрел))
коллектор на +12В
эмиттер на диод через резак))
ну питание на контроллер тоже выход на плате сделаю?
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 10:37:36
rxstart1
я согласен с Вами на счет обработчика, но поставьте точку останова он вообще не заходит внутрь((
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 10:37:53
ИС-пытатель
rxstart1 писал(а):ну питание на контроллер тоже выход на плате сделаю?
Как вариант
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 10:41:13
rxstart1
я запретил прерывание эффекта 0 ((
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 10:49:57
ИС-пытатель
Внутрь он заходит, но Протеус почему-то не отображает изменение переменной tim2 в прерывании (tim2++). Я бы не стал на это обращать внимание. У Протеуса много глюков. Лучше перекиньте код в студию, подправьте для нее и прогоните через ее симулятор. А еще лучше на железе проверьте
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 10:53:41
rxstart1
на счет первого ничего не понял, я не так давно занимаюсь программированием МК))
на счет последнего, Вы считаете что код работоспособен?
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 10:57:44
ИС-пытатель
А вот, нашел у Вас.
Код: Выделить всё
void change_key_pos(char num)
{
switch (num)
{
case 0: ACC=0; // все выключить
IGN=0;
IGN_FAULT=0;
STARTER=0;
break;
!!!! case 1: ACC=1; // включить АСС - аксесуары т. е. первое положение "ключа"
IGN=0;
IGN_FAULT=0;
STARTER=0;
!!!! tim2=0; // взвести таймер
break;
case 2: if (tim2>SEC_10) // если пауза межде первам и вторым нажатием превысила 10 сек. выключить все
{
ACC=0;
IGN=0;
IGN_FAULT=0;
STARTER=0;
key=0;
tim2=0;
break;
}
ACC=1;
IGN=!err; // в зависимости от исправности
IGN_FAULT=err; // включить реле IGN
break;
}
}
У Вас key будет = 1, потому что изменяется всего раз, а потом вы триггером запрещаете изменение. А в этом switch у Вас сбрасывается tim2
И еще.
1. Антидребезг у Вас не правильно сделан.
2. Необходимо добавить антидребезг после нажатия
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 11:03:44
rxstart1
убрал все ровно не работает((
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 11:04:24
ИС-пытатель
Давайте архив со всеми изменениями. Скомпилировать не забыли?
попробуйте закомментировать вот этот кусок:
for (i=0;i<k;i++)
{
on_led(i);
delay_ms(5);
}
будет работать или нет?
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 11:11:22
rxstart1
Вру заработало все ОК, но поочему то с дикими тормозами попробую перегрузить комп))
СПАСИБО Вам огромное помогли, время выключения предеться чуть переделать, а так все ок))
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 11:12:52
rxstart1
просто вместо 2 сек надо держать секунды 4-5 почему так получилось хз?
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 11:20:07
rxstart1
Есть еще одна проблема чем больше частота вращения вала тем больше тормоза? как быть?
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 11:31:32
ИС-пытатель
Скорость эмуляции протеуса зависит от мощности компьютера. И она не всегда совпадает с реальностью. Проверяйте в железе.
А вот лучшее спасибо - это плюсик в карму.
А то я тут поцапался с несколькими типами и меня уже "плохим" сделали. )
но я думаю, Вы еще будете писать - не все там идеально .

Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 12:46:40
rxstart1
а как плюсик поставить я поставил + в рейтенге сообщений - это карма))?
я сделал условие если двигатель работает то включать диоды в цикле, а при нажатии на кнопку сразу проверку поставил если двигатель работает вырубить все - и помогло))
еще у меня есть вопрос как работать с энергонезависимой памятью, мне туда надо бит ошибки прописывать при разрыве линии IGN переменная err тип bit?
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Ср апр 23, 2014 12:57:02
ИС-пытатель
rxstart1 писал(а):а как плюсик поставить я поставил + в рейтенге сообщений - это карма))?
Нет, но тоже сойдет. ) Карма - это в информации обо мне можно поставить. но Вы все равно сейчас не измените. Мало сообщений у Вас.
По поводу памяти - скачайте Евстифеева. "Микроконтроллеры AVR Tiny и Mega". Лучше в .pdf
Там все хорошо описано. Прям по оглавлению находите и читайте.
P.S. Ну, Вы понастарались с плюсами!

Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Чт апр 24, 2014 09:15:36
rxstart1
У меня новая проблема, но уже с протеусом в дебаге в окне переменных выдает следующее:
err R-254 byte Item (1 bytes at 0xFFFFFF02) not within memory block (0x00000460 bytes).
И ничего не работает((
Погуглил, но толком ничего не нашел((
с EEPROM разобрался там всего 2 команды записать в память и считать, но пока не реализовал, т. к. эта проблема ставит крест на всей работе((
Прикрепляю новый код
Re: Проект - тахометр +кнопка START-STOP engine
Добавлено: Чт апр 24, 2014 09:22:39
ИС-пытатель
Насколько помнится, Протеус может видеть только глобальные переменные. Если у Вас переменная объявлена внутри функции - он ее не сможет отобразить. Это если я правильно понял проблему.