Jump to content
Sign in to follow this  
-=FISHER=-

Вежливая подсветка на AtTiny25

Recommended Posts

12.02.2020 в 17:47, snn_krs сказал:

У вас похоже неправильно прерывание объявлено

Изменил, результата нет...

Потому что это одно и то же...

1768761657_.JPG.1e401e46154e8678386d04c59fd15ed3.JPG

Edited by -=FISHER=-

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Share this post


Link to post
Share on other sites

А какой у вас контроллер ? Для Тини13 вектор прерывания по таймеру 0 не 5 а 3.

Share this post


Link to post
Share on other sites
28 минут назад, -=FISHER=- сказал:

А вот в такой связке не работает,

если убрать SEI - общее разрешение прерываний - тоже будет работать? это будет значить что дело только в вызове прерывания, как будто он уходит мимо этой определенной функции прерывания и, соответственно не выходит из этого состояния никогда.


Можно сделать все! Но чем больше можно, тем больше нельзя!

Share this post


Link to post
Share on other sites

Время – деньги и наноамперы: применение часов реального времени Maxim Integrated

Зачем использовать внешнюю микросхему часов реального времени (RTC), а не внутренние RTC микроконтроллера? Хотя бы потому, что у RTC MAX31342 производства Maxim Integrated типовое потребление составляет 150 нА при 3 В и температуре 25°С, а у встроенных RTC одного из самых малопотребляющих микроконтроллеров при тех же условиях – примерно 370 нА.

Читать статью

12.02.2020 в 18:17, ruhi сказал:

если убрать SEI - общее разрешение прерываний - тоже будет работать?

Да, так работает. Что теперь можно проверить?

12.02.2020 в 18:09, snn_krs сказал:

Для Тини13 вектор прерывания по таймеру 0 не 5 а 3.

Да 13. Я не уверен что означает цифра 5 в библиотеки Atmel Studio.

502581043_.JPG.b9df72fc86c1a9a91d66104904313da8.JPG

Дошло... В проекте не изменил контроллер (остался старый Attiny25)........................................ Вопрос закрыт. Всем спасибо!!!


Мы все учились по-немногу, чему-нибудь и как-нибудь...

Share this post


Link to post
Share on other sites

Проверьте в свойствах проекта, какой выбран контроллер.

Share this post


Link to post
Share on other sites
                     

Чип-резисторы Panasonic - технология мягких выводов и сертификация AEC-Q200

Технология мягких выводов чип-резисторов производства компании Panasonic. Обзор серий с оптимизированными параметрами: прецизионных тонкопленочных, токоизмерительных, антисерных, резисторов с повышенной стойкостью к статике и импульсным нагрузкам, резисторных сборок.

Читать статью

@Yurkin2015 Добрый день! Я всё же немного переделал схему, добавив стабилизатор 78L05, отладил прошивку на отладочной плате, собрал всё в железе и в целом, всё работает как надо. Кроме одного странного момента, когда на схему подан постоянный плюс, минус и зажигание, то контроллер включается, хотя такого быть по задумке не должно, подскажите пожалуйста, где я ошибся? То есть на истоке Q3 присутствует 2,5 В, а на выходе 78L05 3,5 В

893920233_.JPG.dfc5a549f7d0234f96b896adaf29ab34.JPG

Edited by -=FISHER=-

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Share this post


Link to post
Share on other sites

Я извиняюсь, что вклиниваюсь, не изучив все предыдущие посты... Но вы учитываете тот факт, что через R4 микроконтроллер запитывается сам и по цепи VCC запитывает остальную часть схемы? Может, те самые 3,5 вольта на выходе 78L05 на самом деле появляются не с её выхода, а "из 8-й ноги микроконтроллера"?


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites
2 минуты назад, ARV сказал:

Может, те самые 3,5 вольта на выходе 78L05 на самом деле появляются не с её выхода, а "из 8-й ноги микроконтроллера"?

Может быть, а какое на Ваш взгляд есть решение?...


Мы все учились по-немногу, чему-нибудь и как-нибудь...

Share this post


Link to post
Share on other sites

Решение? Исключать возможность запитки схемы сигналами управления. Иначе говоря, ставьте оптроны на сигнальные цепи.

Кстати, проверить мою версию достаточно просто: принудительно заресеттьте микроконтроллер (чтобы гарантировать отсутствие его влияния) и посмотрите, как будет меняться напряжение на его 8 ноге при подаче и отключении сигнала IGN.


Если забанить всех, кто набрался смелости думать независимо, здорово будет на форуме - как на кладбище: тишина, птички поют...

Share this post


Link to post
Share on other sites
11 минут назад, ARV сказал:

Решение?

Я понял, я просто немного отредактирую прошивку и это никак не будет влиять. Спасибо!


Мы все учились по-немногу, чему-нибудь и как-нибудь...

Share this post


Link to post
Share on other sites
3 hours ago, -=FISHER=- said:

и зажигание, то контроллер включается

Это было уже, раньше обсуждали в другой теме. Питание процессора происходит через резистор R4 1кОм. Увеличьте R4 до 100кОм или больше.

Share this post


Link to post
Share on other sites
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 на ножку, но это не помогло.

Edited by -=FISHER=-

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Share this post


Link to post
Share on other sites

Просто поставьте

if ( ocr == 0 )
{
  PWM_PORT &= ~( 1 << PWM_PIN );
} else {
  ...
}

 

Share this post


Link to post
Share on other sites
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 на канал
 }  
}
Edited by Yurkin2015

Share this post


Link to post
Share on other sites
1 час назад, Yurkin2015 сказал:

Ну, это очень круто!

Я, конечно, имею ввиду что от этого эффекта я не избавился изменением программы)) а сделал так что он не влияет на правильность выполнения алгоритма.

1 час назад, Yurkin2015 сказал:

Меняем условия местами и добавляем else, например, вот так:

Таким образом, 254 - минимальная скважность, а 0 - максимальная, правильно?

Edited by -=FISHER=-

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Share this post


Link to post
Share on other sites
18 minutes ago, -=FISHER=- said:

минимальная скважность,

При ocr=0 на выходе всегда 0, лампочки не горят.

При ocr=255 на выходе практически всегда единица, лампочки горят в полный накал.

Share this post


Link to post
Share on other sites
4 часа назад, Yurkin2015 сказал:

if (++counter==buf_ocr)

Меня до сих пор сбивает вот эта строчка, как ее правильно читать? Что-то вроде: сначала проверяем условие и после проверки инкрементируем переменную counter?


Мы все учились по-немногу, чему-нибудь и как-нибудь...

Share this post


Link to post
Share on other sites
1 hour ago, -=FISHER=- said:

как ее правильно читать?

Сначала инкрементируем, потом используем полученное значение.

Можно проще записать, будет то же самое.

counter++;
if (counter==buf_ocr)
{
   ....
}

 

Share this post


Link to post
Share on other sites
11 часов назад, Yurkin2015 сказал:

Сначала инкрементируем, потом используем полученное значение.

Но ведь тогда переменная counter при первом входе в условие будет равна 1 и далее эта переменная будет принимать по кругу такие значения: 1,2,3,4,5...253,254,0,1,2,3... Так?

Edited by -=FISHER=-

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Share this post


Link to post
Share on other sites
2 hours ago, -=FISHER=- said:

Так?

Так, только 255 тоже участвует в этом ряду. 

Share this post


Link to post
Share on other sites
if (counter >= buf_ocr)
{ 
PWM_PORT&=~(1<<PWM_PIN);  //подаем 0 на канал     
}

Ещё одна поправка в код. Для выключения выхода лучше проверять на больше или равно.

Edited by Yurkin2015

Share this post


Link to post
Share on other sites
1 минуту назад, Yurkin2015 сказал:

Ещё одна поправка в код.

Поправил, тестируем


Мы все учились по-немногу, чему-нибудь и как-нибудь...

Share this post


Link to post
Share on other sites

@Yurkin2015 Добрый день! Собрал в железе, всё работает! Уже поставил на машину, катаюсь - радуюсь. Спасибо ещё раз большое за подсказки!

В общем я разгадал тайный смысл выхода KEY на плате плафона освещения. Этот вывод является минусом для подсветки замка зажигания. И по задумке инженеров GM замок зажигания подсвечивается синхронно центральному плафону. Я решил чтобы всё было ещё ближе к изначальной задумке, задействовать и этот вывод. Могу ли я подключить ещё один полевой транзистор параллельно биполярному на штатной плате? Будет ли таким образом один канал ШИМ открывать и закрывать сразу два транзистора разной структуры, подскажите пожалуйста?

 

Скрытый текст

765663658_.thumb.jpg.dc6e7ec62410bb1dca92fde04bc53405.jpg

 

Edited by -=FISHER=-

Мы все учились по-немногу, чему-нибудь и как-нибудь...

Share this post


Link to post
Share on other sites
1 hour ago, -=FISHER=- said:

подключить ещё один

Да, можно подключить, так - нормально.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Сообщения

    • Робот однако...https://aliexpress.ru/item/4000036818252.html?yclid=2944093463414341440&src=yndxweb&albch=srch&acnt=7443951&isdl=y&aff_short_key=_eMF23G&tracelog=yandexmg_Standard_Promocode_dsa Модный
    • Делайте это, плиз, до того как задаёте вопросы на форуме Иначе на вопросы, типа : Будете получать в ответ : "А почему она должна работать ?".
    • а от чего транзистор слез? хочу спросить хозяина усЯ походу ты в него залез!? а он кричит- не я! а кто крутил винты? скажи не сами же они? а он каки винты, каки винты? ты пальцем покажи! а вот, смотри, да не туда! ты чё, ваще слепой? а он поникнув головой сказал лишь тихо ой... тогда, мой друг, бери кашель и доставай бабло покуда добрый я сей час скажи что повезло но, ссука, в следующий раз молись своим богам хоть жопу натяни на глаз гарантию не дам! (радиоремонтная. жизненная. экспромт)
    • Купил сварочный бу Ресанта 250а, свистит на хх. Вскрыл, обнаружил люфт сердечника силового трансформатора. Пошевелил, частота свиста/писка меняется. Подскажите, чем приклеить и как спозиционировать в нормальное положение? ЕЕ65
    • раз пошла такая пьянка с вариантами, то три дэ принтер забыли... я же говорю о доступных подручных и практически бесплатных материалах, в смысле тары, в смысле их крышек. вот вариант женских банок с кремами очень подходящий. есть такие крышки у кремов для рук/лица/век и вообще кожи на любых местах (типа баба сшита из разных сортов а мужик из одного ) прям ништячные. у фирмовых поликарбонатные как корпуса смартов. у дешёвых либо колкие либо мягкие  полиэтиленовые как на баклашках (чаще всего белые, чёрные и матовые) о, есть же ещё банки из под кофе типа нескафе, монарх и тд. крышки в основном коричневые и чёрные. диаметр близок к требуемому. просто надо померить.  а пенсионеров так обижать грешно. им итак досталось в войну, потом восстановление из разрухи, стройки века, перестройка, развал союза а тут ещё и крышку со счётчика спёрли... 
    • А есть люди после которых таксисты протирают сиденья
    • Простое зарядное устройство с возможностью установки тока и напряжения заряда. Зарядное устройство для аккумуляторов.rar
×
×
  • Create New...