-=FISHER=- Опубликовано 12 февраля, 2020 Автор Поделиться Опубликовано 12 февраля, 2020 (изменено) 12.02.2020 в 17:47, snn_krs сказал: У вас похоже неправильно прерывание объявлено Изменил, результата нет... Потому что это одно и то же... Изменено 12 февраля, 2020 пользователем -=FISHER=- 0 Мы все учились по-немногу, чему-нибудь и как-нибудь... Ссылка на комментарий Поделиться на другие сайты Поделиться
snn_krs Опубликовано 12 февраля, 2020 Поделиться Опубликовано 12 февраля, 2020 А какой у вас контроллер ? Для Тини13 вектор прерывания по таймеру 0 не 5 а 3. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
ruhi Опубликовано 12 февраля, 2020 Поделиться Опубликовано 12 февраля, 2020 28 минут назад, -=FISHER=- сказал: А вот в такой связке не работает, если убрать SEI - общее разрешение прерываний - тоже будет работать? это будет значить что дело только в вызове прерывания, как будто он уходит мимо этой определенной функции прерывания и, соответственно не выходит из этого состояния никогда. 1 Можно сделать все! Но чем больше можно, тем больше нельзя! Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>> Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
-=FISHER=- Опубликовано 12 февраля, 2020 Автор Поделиться Опубликовано 12 февраля, 2020 12.02.2020 в 18:17, ruhi сказал: если убрать SEI - общее разрешение прерываний - тоже будет работать? Да, так работает. Что теперь можно проверить? 12.02.2020 в 18:09, snn_krs сказал: Для Тини13 вектор прерывания по таймеру 0 не 5 а 3. Да 13. Я не уверен что означает цифра 5 в библиотеки Atmel Studio. Дошло... В проекте не изменил контроллер (остался старый Attiny25)........................................ Вопрос закрыт. Всем спасибо!!! 0 Мы все учились по-немногу, чему-нибудь и как-нибудь... Ссылка на комментарий Поделиться на другие сайты Поделиться
snn_krs Опубликовано 12 февраля, 2020 Поделиться Опубликовано 12 февраля, 2020 Проверьте в свойствах проекта, какой выбран контроллер. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
-=FISHER=- Опубликовано 21 февраля, 2020 Автор Поделиться Опубликовано 21 февраля, 2020 (изменено) @Yurkin2015 Добрый день! Я всё же немного переделал схему, добавив стабилизатор 78L05, отладил прошивку на отладочной плате, собрал всё в железе и в целом, всё работает как надо. Кроме одного странного момента, когда на схему подан постоянный плюс, минус и зажигание, то контроллер включается, хотя такого быть по задумке не должно, подскажите пожалуйста, где я ошибся? То есть на истоке Q3 присутствует 2,5 В, а на выходе 78L05 3,5 В Изменено 21 февраля, 2020 пользователем -=FISHER=- 0 Мы все учились по-немногу, чему-нибудь и как-нибудь... Ссылка на комментарий Поделиться на другие сайты Поделиться
ARV Опубликовано 21 февраля, 2020 Поделиться Опубликовано 21 февраля, 2020 Я извиняюсь, что вклиниваюсь, не изучив все предыдущие посты... Но вы учитываете тот факт, что через R4 микроконтроллер запитывается сам и по цепи VCC запитывает остальную часть схемы? Может, те самые 3,5 вольта на выходе 78L05 на самом деле появляются не с её выхода, а "из 8-й ноги микроконтроллера"? 1 Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют... Ссылка на комментарий Поделиться на другие сайты Поделиться
-=FISHER=- Опубликовано 21 февраля, 2020 Автор Поделиться Опубликовано 21 февраля, 2020 2 минуты назад, ARV сказал: Может, те самые 3,5 вольта на выходе 78L05 на самом деле появляются не с её выхода, а "из 8-й ноги микроконтроллера"? Может быть, а какое на Ваш взгляд есть решение?... 0 Мы все учились по-немногу, чему-нибудь и как-нибудь... Ссылка на комментарий Поделиться на другие сайты Поделиться
ARV Опубликовано 21 февраля, 2020 Поделиться Опубликовано 21 февраля, 2020 Решение? Исключать возможность запитки схемы сигналами управления. Иначе говоря, ставьте оптроны на сигнальные цепи. Кстати, проверить мою версию достаточно просто: принудительно заресеттьте микроконтроллер (чтобы гарантировать отсутствие его влияния) и посмотрите, как будет меняться напряжение на его 8 ноге при подаче и отключении сигнала IGN. 1 Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют... Ссылка на комментарий Поделиться на другие сайты Поделиться
-=FISHER=- Опубликовано 21 февраля, 2020 Автор Поделиться Опубликовано 21 февраля, 2020 11 минут назад, ARV сказал: Решение? Я понял, я просто немного отредактирую прошивку и это никак не будет влиять. Спасибо! 0 Мы все учились по-немногу, чему-нибудь и как-нибудь... Ссылка на комментарий Поделиться на другие сайты Поделиться
Yurkin2015 Опубликовано 21 февраля, 2020 Поделиться Опубликовано 21 февраля, 2020 3 hours ago, -=FISHER=- said: и зажигание, то контроллер включается Это было уже, раньше обсуждали в другой теме. Питание процессора происходит через резистор R4 1кОм. Увеличьте R4 до 100кОм или больше. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
-=FISHER=- Опубликовано 21 февраля, 2020 Автор Поделиться Опубликовано 21 февраля, 2020 (изменено) 1 час назад, Yurkin2015 сказал: Это было уже Да, Вы правы с этим разобрался изменив прошивку. Но теперь возникла в принципе типичная проблема при использовании "прямого" ШИМ. Когда значение переменной ocr равно 0, высокий уровень всё равно подается совсем на короткое время на ножку которая управляет транзистором, и тот из-за этого не может до конца закрыться и как следствие, светодиоды в нагрузке еле-еле святятся. Подскажите пожалуйста, как организовать инверсный ШИМ на основе вот этого прямого. //****************МАКРОСЫ ДЛЯ ПРОГРАММНОГО ШИМ********************************* #define PWM_PORT PORTB //PORT на котором расположен ШИМ #define PWM_DDR DDRB //DDR на котором расположен пин ШИМ #define PWM_PIN 0 //номер пина на который будет выводиться программный ШИМ //****************ПЕРЕМЕННЫЕ ДЛЯ ПРОГРАММНОГО ШИМ****************************** uint8_t counter; uint8_t ocr; uint8_t buf_ocr; void soft_pwm_ini(void) { PWM_DDR|=(1<<PWM_PIN); //настраиваем порт ШИМ на выход } void PWM(void) { if (++counter==0) //счетчик перехода таймера через ноль { buf_ocr=ocr; //значения длительности ШИМ PWM_PORT |=(1<<PWM_PIN); //подаем 1 на канал } if (counter==buf_ocr) PWM_PORT&=~(1<<PWM_PIN); //подаем 0 на канал } P.S. Я пробовал просто поменять местами строчки подачи 1 и 0 на ножку, но это не помогло. Изменено 21 февраля, 2020 пользователем -=FISHER=- 0 Мы все учились по-немногу, чему-нибудь и как-нибудь... Ссылка на комментарий Поделиться на другие сайты Поделиться
snn_krs Опубликовано 21 февраля, 2020 Поделиться Опубликовано 21 февраля, 2020 Просто поставьте if ( ocr == 0 ) { PWM_PORT &= ~( 1 << PWM_PIN ); } else { ... } 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Yurkin2015 Опубликовано 21 февраля, 2020 Поделиться Опубликовано 21 февраля, 2020 (изменено) 4 hours ago, Yurkin2015 said: Питание процессора происходит через резистор R4 1кОм 2 hours ago, -=FISHER=- said: с этим разобрался изменив прошивку. Ну, это очень круто! 2 hours ago, -=FISHER=- said: высокий уровень всё равно подается совсем на короткое время Меняем условия местами и добавляем else, например, вот так: void PWM(void) { buf_ocr=ocr; //значения длительности ШИМ if (++counter==buf_ocr) { PWM_PORT&=~(1<<PWM_PIN); //подаем 0 на канал } else if (counter==0) //счетчик перехода таймера через ноль { PWM_PORT |=(1<<PWM_PIN); //подаем 1 на канал } } Изменено 21 февраля, 2020 пользователем Yurkin2015 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
-=FISHER=- Опубликовано 21 февраля, 2020 Автор Поделиться Опубликовано 21 февраля, 2020 (изменено) 1 час назад, Yurkin2015 сказал: Ну, это очень круто! Я, конечно, имею ввиду что от этого эффекта я не избавился изменением программы)) а сделал так что он не влияет на правильность выполнения алгоритма. 1 час назад, Yurkin2015 сказал: Меняем условия местами и добавляем else, например, вот так: Таким образом, 254 - минимальная скважность, а 0 - максимальная, правильно? Изменено 21 февраля, 2020 пользователем -=FISHER=- 0 Мы все учились по-немногу, чему-нибудь и как-нибудь... Ссылка на комментарий Поделиться на другие сайты Поделиться
Yurkin2015 Опубликовано 21 февраля, 2020 Поделиться Опубликовано 21 февраля, 2020 18 minutes ago, -=FISHER=- said: минимальная скважность, При ocr=0 на выходе всегда 0, лампочки не горят. При ocr=255 на выходе практически всегда единица, лампочки горят в полный накал. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
-=FISHER=- Опубликовано 21 февраля, 2020 Автор Поделиться Опубликовано 21 февраля, 2020 4 часа назад, Yurkin2015 сказал: if (++counter==buf_ocr) Меня до сих пор сбивает вот эта строчка, как ее правильно читать? Что-то вроде: сначала проверяем условие и после проверки инкрементируем переменную counter? 0 Мы все учились по-немногу, чему-нибудь и как-нибудь... Ссылка на комментарий Поделиться на другие сайты Поделиться
Yurkin2015 Опубликовано 21 февраля, 2020 Поделиться Опубликовано 21 февраля, 2020 1 hour ago, -=FISHER=- said: как ее правильно читать? Сначала инкрементируем, потом используем полученное значение. Можно проще записать, будет то же самое. counter++; if (counter==buf_ocr) { .... } 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
-=FISHER=- Опубликовано 22 февраля, 2020 Автор Поделиться Опубликовано 22 февраля, 2020 (изменено) 11 часов назад, Yurkin2015 сказал: Сначала инкрементируем, потом используем полученное значение. Но ведь тогда переменная counter при первом входе в условие будет равна 1 и далее эта переменная будет принимать по кругу такие значения: 1,2,3,4,5...253,254,0,1,2,3... Так? Изменено 22 февраля, 2020 пользователем -=FISHER=- 0 Мы все учились по-немногу, чему-нибудь и как-нибудь... Ссылка на комментарий Поделиться на другие сайты Поделиться
Yurkin2015 Опубликовано 22 февраля, 2020 Поделиться Опубликовано 22 февраля, 2020 2 hours ago, -=FISHER=- said: Так? Так, только 255 тоже участвует в этом ряду. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Yurkin2015 Опубликовано 22 февраля, 2020 Поделиться Опубликовано 22 февраля, 2020 (изменено) if (counter >= buf_ocr) { PWM_PORT&=~(1<<PWM_PIN); //подаем 0 на канал } Ещё одна поправка в код. Для выключения выхода лучше проверять на больше или равно. Изменено 22 февраля, 2020 пользователем Yurkin2015 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
-=FISHER=- Опубликовано 22 февраля, 2020 Автор Поделиться Опубликовано 22 февраля, 2020 1 минуту назад, Yurkin2015 сказал: Ещё одна поправка в код. Поправил, тестируем 0 Мы все учились по-немногу, чему-нибудь и как-нибудь... Ссылка на комментарий Поделиться на другие сайты Поделиться
-=FISHER=- Опубликовано 27 февраля, 2020 Автор Поделиться Опубликовано 27 февраля, 2020 (изменено) @Yurkin2015 Добрый день! Собрал в железе, всё работает! Уже поставил на машину, катаюсь - радуюсь. Спасибо ещё раз большое за подсказки! В общем я разгадал тайный смысл выхода KEY на плате плафона освещения. Этот вывод является минусом для подсветки замка зажигания. И по задумке инженеров GM замок зажигания подсвечивается синхронно центральному плафону. Я решил чтобы всё было ещё ближе к изначальной задумке, задействовать и этот вывод. Могу ли я подключить ещё один полевой транзистор параллельно биполярному на штатной плате? Будет ли таким образом один канал ШИМ открывать и закрывать сразу два транзистора разной структуры, подскажите пожалуйста? Скрытый текст Изменено 27 февраля, 2020 пользователем -=FISHER=- 0 Мы все учились по-немногу, чему-нибудь и как-нибудь... Ссылка на комментарий Поделиться на другие сайты Поделиться
Yurkin2015 Опубликовано 27 февраля, 2020 Поделиться Опубликовано 27 февраля, 2020 1 hour ago, -=FISHER=- said: подключить ещё один Да, можно подключить, так - нормально. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.