Перейти к содержанию

AtMega8 + Bluetooth HC-05 + MIT App Inventor 2


-=FISHER=-

Рекомендуемые сообщения

Всех приветствую!

 

Сейчас разбираюсь с управлением МК через Bluetooth с помощью самодельного приложения для Android, которое создано при помощи бесплатной среды разработки  MIT App Inventor 2.

Для начала хочу научиться управлять двухканальным ШИМ через интерфейс из двух "Бегунков". Вот такой простейший интерфейс.

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

5c6faa49a32b2_.thumb.jpg.0e30b6b41cb1ab82bbc48e6e0dee4661.jpg

Отправляются данные на МК с помощью вот такой простейшей программы. Обрабатывается событие, которое происходит после изменения положения "бегунка", на МК (к которому через HC-05 ранее было осуществленно подключение) отправляется байт данных, который содержит значение регистра OCR1A или OCR1B. А также для наглядности значение выводится в текстовое поле.

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

5c6fac4a01683_1.JPG.875c64b76e7ac99ab67f8631ed72d76f.JPG

МК в свою очередь обрабатывает эти данные в прерывании по приёму USART следующим образом:

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

ISR(USART_RXC_vect)
{
	OCR1A=UDR;
}

 

В целом всё работает, но когда добавляется второй канал ШИМ, возникает проблема, для решения которой я и обратился к Вам, как мне грамотнее разделить данные от первого и второго бегунка и распределить их по регистрам OCR1A и OCR1B ?

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

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

2 часа назад, -=FISHER=- сказал:

отправляется байт данных, который содержит значение регистра OCR1A или OCR1B

так отправьте 2-байта в первом номер регистра А или В, а во втором значение регистра.

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

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

46 минут назад, ruhi сказал:

так отправьте 2-байта

Ну а как это будет выглядеть? Сначала отправляю байт с номером регистра, в прерывании становится понятно что это регистр A например, следом отправляю байт со значением регистра, мы заходим в прерывание снова и.... первый байт ведь уже потерян? я не понимаю сам механизм, сможете набросать код для примера пожалуйста?

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

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

18 минут назад, -=FISHER=- сказал:

сможете набросать код для примера пожалуйста?

это ж охириниеть как сложно :) 

static uchar stage = 0;
static uchar regNum = 0;
ISR(USART_RXC_vect)
{
	if(stage == 0)
	{
		stage =  1;
		regNum =UDR;		
	}
	else if(stage == 1)
	{
		stage =  0;
		if(regNum == 0) OCR1A=UDR;
		else if(regNum == 1) OCR1B=UDR;

	}
	
}

 

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

Ссылка на комментарий
Поделиться на другие сайты

10 минут назад, ruhi сказал:

это ж охириниеть

А что переменная не скинется в ноль автоматически при новом входе в прерывание??

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

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, -=FISHER=- сказал:

А что переменная не скинется в ноль автоматически при новом входе в прерывание??

Ну вы блин даЁте :) !

НЕТ! это то же у вас С-язык?

Изменено пользователем ruhi

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

Ссылка на комментарий
Поделиться на другие сайты

2 часа назад, ruhi сказал:

это ж охириниеть

В общем использовал Ваш пример, всё в целом заработало, только вот работает немного глючно. Чтобы не читать много букв, посмотрите пожалуйста короткое видео на Youtube, на не видно что яркость меняется скачками, а хотелось бы плавно...Интересно, может быть дело в том что что не желательно менять содержимое регистров OCR1A и B из прерывания или ещё в чем?..  .Видео

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

Ссылка на комментарий
Поделиться на другие сайты

  • 2 года спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...