Мега девайс для авто на Attiny2313

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Мега девайс для авто на Attiny2313

Сообщение KOTик »

Привет всем котам! :)
Долго думал, в какую ветвь написать и вот, выбрал именно эту

Появилась идея сотворить мега девайс:
  • — авто-строб на штатные фары
    — плавное гашение света в салоне с задержкой.

Описание девайса:
  • — при кратковременном нажатии на рукоятку переключения фар ближний/дальний, включаеЦа один из эффектов мигания (устанвливаеЦа джампером или свитчером).
    — если удерживать рукоятку (не отпускать), — мигание циклическое с указанной паузой. Если отпустить рукоятку, девайс должен завершить цикл, после чего фары гасятся.
    — при включенных габаритах и/или ближнем свете фар, устройство работает в штатном режиме. Мигание обеих фар происходит за счет "дергивания" рукоятки.
    — дверь открыта — свет в салоне загораеЦа мгновенно; дверь закрыта — выдержка 5-7 секунд, после чего свет в салоне плавно гаснет.
В программировании новичОк, но кое-что понимаю. Функции строба с 3 эффектами на выбор Я сделал, смоделил и вроде работает.
А вот плавное гашения света - это для меня проблема. Никак не могу разобраЦа :cry: ШИМ - это для меня дремучий лес :cry:
Поставил паузу на 7 секунд, после чего свет в салоне резко гасиЦа (моделил в протеусе).
Хотелось бы сделать, чтобы при открытии двери свет мгновенно загорался, а после закрытия - выдержка 5-7 секунд, после чего свет плаво гаснет.

А еще обнаружил баг, - если фары мигают и открыть дверь (концевик замкнут на минус), свет в салоне через раз горит :dont_know:


Помогите, дорогие коты :)
Буду признателен за помощь.

Выкладываю схему, листинг и прототип :)
Вложения
proto.gif
прототип :)
(84.52 КБ) 916 скачиваний
mega_device.rar
протеус, схема, листинг
(94.95 КБ) 357 скачиваний
Реклама
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение YS »

Посмотрел код - все на задержках через _delay_ms(). Это не есть хорошо. Лучше делать на таймерах. А уж задержку в семь секунд и подавно. Кстати, это скорее всего и есть причина описанного бага.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Реклама
Аватара пользователя
AndyWorld
Прорезались зубы
Сообщения: 209
Зарегистрирован: Вт сен 30, 2008 09:23:14
Откуда: Краснодарский край

Re: Мега девайс для авто на Attiny2313

Сообщение AndyWorld »

Не знаю какая у тебя машина, у меня штатная была задержка выключения подсветки салона. При разборке оказалось что она простая как трусы на 555 таймере, я добавил кондер по питанию на 4700 Мкф, и все стало гаснуть плавно и красиво.
Смотри здесь http://www.vectra-club.ru/forum/viewtop ... 1&t=128774
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение KOTик »

Товарищи коты! :)
Я собрал уже устройство плавного гашение света в салоне. Работает на ура! :music:
Изображение

А устройство на attiny2313 с начала задумывалось только для строба на фары.
Потом решил добавить пару эффектов мигания, затем решил добавить фишку плавного гашения света, т.к. много портов не задействовано. Ну, и в результате - получился мегадевайс (или должен получиЦа) :)
Набросал схему и прошивку мегадевайса.
Прошивка "сырая". Баг присутствует и потому обращаюсь к бывалым, мудрым котам :)
Я новичок в программировании и буду признателен за дельный совет :)

_____
P.S. У меня седьмая серия.... (ВАЗ :) )
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение KOTик »

YS писал(а):Посмотрел код - все на задержках через _delay_ms(). Это не есть хорошо. Лучше делать на таймерах. А уж задержку в семь секунд и подавно. Кстати, это скорее всего и есть причина описанного бага.
С таймерами и ШИМ-ом не дружу :(
Не смотря на литературу, что накачал в просторах, все-равно - это для меня пока дремучий лес :shock:
Реклама
Аватара пользователя
Fasterpast
Мучитель микросхем
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение Fasterpast »

Почитайте хотя бы 123avr, на самом деле там всё очень просто!
Реклама
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение YS »

Почитайте хотя бы 123avr
Что угодно, только не это! :)))

Здешнюю Обучалку почитайте, там все подробно разжевано.

И, кстати, даташит на контроллер. Там тоже все расписано. Вообще, пользу даташита сложно переоценить...
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение KOTик »

YS писал(а):
Почитайте хотя бы 123avr
Что угодно, только не это! :)))

Здешнюю Обучалку почитайте, там все подробно разжевано.

И, кстати, даташит на контроллер. Там тоже все расписано. Вообще, пользу даташита сложно переоценить...

Что ж, пойду грызть камень :)
Чувствую, вопросов будет уйму :)

Так что, держитесь, мудрецы ;)
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение KOTик »

KOTик писал(а):
YS писал(а): Что угодно, только не это! :)))

Здешнюю Обучалку почитайте, там все подробно разжевано.

И, кстати, даташит на контроллер. Там тоже все расписано. Вообще, пользу даташита сложно переоценить...

Что ж, пойду грызть камень :)
Чувствую, вопросов будет уйму :)

Так что, держитесь, мудрецы ;)


Мдяя... нашел кое-что
http://radiokot.ru/start/mcu_fpga/avr/11/

вот только все на АСМ :(
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение YS »

Если чего, могу выложить пример организации ШИМа под AVR-GCC...

На самом деле там все просто. Для генерации ШИМа конфигурируется аппаратный таймер (как - подробно написано в даташите), а далее в регистр(-ы) (какой(-ие) - написано в даташите) кладем число (чаще всего от 0 до 255), которое отражает коэффициент заполнения. Чем больше число - тем он больше.
вот только все на АСМ
Так на каком языке писать данные в регистры никакой разницы нет. Главное принцип.

А уж что такое ldi и out, я думаю и так любому понятно. Хотя бы из списка операндов.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение YS »

Вот, простой пример на С (AVR-GCC). Плавно включает/выключает светодиод.

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

#include <avr/io.h>
#include <util/delay.h>

volatile unsigned char PWM_value=0,dec_flag=0;

void main(void)
{
  //Startup configuration

  //Configuring ports for output

  DDRB=0xFF;
  DDRC=0xFF;
  DDRD=0xFF;

  //Setting TIMER0 to fast PWM non-inverting mode

  TCCR0A=(1<<WGM00) | (1<<WGM01) | (1<<COM0B1) | (1<<COM0A1);

  //Initializing PWM value

  OCR0A=PWM_value;

  //Starting PWM timer at CPU clock (w/o prescaler)

  TCCR0B=(1<<CS00);

  //Now fading LED in and out sequentally

  while (1)
  {
    if (dec_flag)
      PWM_value-=1;
    else
      PWM_value+=1;

	if (PWM_value==255)
	  dec_flag=1;

	if (PWM_value==0)
	  dec_flag=0;

    OCR0A=PWM_value;

	if ((PWM_value==0) || (PWM_value==255))
	  _delay_ms(2000);
    else
	  _delay_ms(10);
  }
}

ШИМ генерируется на ножке OC0A.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение KOTик »

YS писал(а):Вот, простой пример на С (AVR-GCC). Плавно включает/выключает светодиод.

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

#include <avr/io.h>
#include <util/delay.h>

volatile unsigned char PWM_value=0,dec_flag=0;

void main(void)
{
  //Startup configuration

  //Configuring ports for output

  DDRB=0xFF;
  DDRC=0xFF;
  DDRD=0xFF;

  //Setting TIMER0 to fast PWM non-inverting mode

  TCCR0A=(1<<WGM00) | (1<<WGM01) | (1<<COM0B1) | (1<<COM0A1);

  //Initializing PWM value

  OCR0A=PWM_value;

  //Starting PWM timer at CPU clock (w/o prescaler)

  TCCR0B=(1<<CS00);

  //Now fading LED in and out sequentally

  while (1)
  {
    if (dec_flag)
      PWM_value-=1;
    else
      PWM_value+=1;

	if (PWM_value==255)
	  dec_flag=1;

	if (PWM_value==0)
	  dec_flag=0;

    OCR0A=PWM_value;

	if ((PWM_value==0) || (PWM_value==255))
	  _delay_ms(2000);
    else
	  _delay_ms(10);
  }
}

ШИМ генерируется на ножке OC0A.


сделал схему на аттини2313, подцепил ЛЕД к OC0A (14 ножка).
кинул исходник в CVAVR, выдает ошибку -

_delay_ms(10); - Error: C:\cvavreval\bin\New Folder\radiokot_sample.c(61): undefined symbol '_delay_ms'

удалил "_" перед delay_ms - и заработало! :)

Вопрос: для чего нужен "_" перед delay_ms и почему ругаеЦа CVAVR?
Аватара пользователя
adrenocrome
Потрогал лапой паяльник
Сообщения: 365
Зарегистрирован: Вт окт 21, 2008 15:03:06
Откуда: moscow
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение adrenocrome »

KOTик писал(а):
Вопрос: для чего нужен "_" перед delay_ms и почему ругаеЦа CVAVR?

Потому что тебе дали код для GCC-AVR. Это другой компилятор и либа задержки у него другая.
День прошёл, а ты всё жив
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение KOTик »

adrenocrome писал(а):
KOTик писал(а):
Вопрос: для чего нужен "_" перед delay_ms и почему ругаеЦа CVAVR?

Потому что тебе дали код для GCC-AVR. Это другой компилятор и либа задержки у него другая.

спасибо! :)
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение YS »

Я же прямо указывал - код для AVR-GCC, а Вы его компилировали в CodeVision. Ну да, соглашения о наименовании функций разные. Есть и еще некоторые различия, которые могут всплыть в немного более серьезных проектах. Потому портирование с одного компилятора на другой порой требует усилий.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Hовичок
Нашел транзистор. Понюхал.
Сообщения: 189
Зарегистрирован: Вс окт 16, 2011 20:46:03
Откуда: Сделано в Украине

Re: Мега девайс для авто на Attiny2313

Сообщение Hовичок »

получилочь доделать?
поделитесь?
Hовичок
Нашел транзистор. Понюхал.
Сообщения: 189
Зарегистрирован: Вс окт 16, 2011 20:46:03
Откуда: Сделано в Украине

Re: Мега девайс для авто на Attiny2313

Сообщение Hовичок »

получилось доделать?
поделитесь?
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение KOTик »

Hовичок писал(а):получилось доделать?
поделитесь?
Месяца 2 (если не больше), как получилось :)
Правда времени нет все это дело до ума довести и в тачку установить.

Набор функций тот же, но без света в салоне + при блокировании дверей наружное освещение выключается автоматом.
Вот видео.
http://youtu.be/J35XA0Jekow

Вот, выкрою время, размещу уже готовый девайс.
s64
Потрогал лапой паяльник
Сообщения: 321
Зарегистрирован: Пн окт 18, 2010 21:18:21

Re: Мега девайс для авто на Attiny2313

Сообщение s64 »

делал что то похожее, достали меня вопросами - а можно так...? , а можно эдак... ?. Про скорость и количество морганий. Поэтому
сделал 3 варианта моргания ( одновременно, по очереди, и по 2 раза) и изменяемую скорость, 8 градаций с шагом 50mSec. Управляется
одной кнопкой - короткое нажатие переключает программы по кругу, при длительном нажатии начинает меняться скорость моргания с шагом 3 Sec, при достижении необходимой, кнопка отпускается, скорость и номер текущей программы сохраняется в EEPROM.
Аватара пользователя
KOTик
Встал на лапы
Сообщения: 148
Зарегистрирован: Пн июн 07, 2010 16:16:57
Контактная информация:

Re: Мега девайс для авто на Attiny2313

Сообщение KOTик »

[quote="s64"]8 градаций с шагом 50mSec.[quote]
можно как угодно :)
Но в моем случае этого не надо. Для фар градации ни к чему.
Вот, доведу это дело до ума, оформлю статью и выложу тут.

Я уже подумываю перейти на мегу8 и добавить еще 2 функции: автосвет для авто + drl lights
времени катастрофически не хватает :(
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»