Нужна комплексная помощь в освоении АВРок

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Нужна комплексная помощь в освоении АВРок

Сообщение WiseLord »

Вопрос не по теме: кое-где в коде "комментарии" у Вас начинаются с \\, а не с //. Компилятор проглатывает это?
Реклама
edj90
Открыл глаза
Сообщения: 70
Зарегистрирован: Ср апр 09, 2014 13:53:14
Откуда: Владивосток

Re: Нужна комплексная помощь в освоении АВРок

Сообщение edj90 »

WiseLord писал(а):Вопрос не по теме: кое-где в коде "комментарии" у Вас начинаются с \\, а не с //. Компилятор проглатывает это?
Даж не заметил, но компилятор проглотил, вот скрин


А реально МК подключить к такому пульту вместо кнопок, и передавать на такой приемник, каждый канал передает свою переменную?
И как организовать в МК передачу data на кнопку....

З.Ы. Думаю дально у этого пульта не дальше 50м ((((
Вложения
Corel.jpg
(233.22 КБ) 341 скачивание
Последний раз редактировалось ibiza11 Вт авг 05, 2014 09:06:43, всего редактировалось 1 раз.
Причина: 2.2 Запрещается создание нескольких сообщений подряд в одной теме. Если вы хотите что-то добавить к своему, уже написанному сообщению, воспользуйтесь кнопкой "Правка".
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
Реклама
Аватара пользователя
Vanes
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Вт июл 08, 2014 14:27:38
Откуда: Славянск-на-Кубани

Re: Нужна комплексная помощь в освоении АВРок

Сообщение Vanes »

вот почитай, думаю прояснишь для себе систему радио связи двух МК
Изображение Истина где то рядом :-)
edj90
Открыл глаза
Сообщения: 70
Зарегистрирован: Ср апр 09, 2014 13:53:14
Откуда: Владивосток

Re: Нужна комплексная помощь в освоении АВРок

Сообщение edj90 »

Vanes писал(а):вот почитай, думаю прояснишь для себе систему радио связи двух МК
Да читал эту темку, даже хотелось собрать...
я не хочу заморачиваться с приемником и передатчиком, нет оборудования для отладки, легче на первый раз купить, потестить что к чему а там и можно подумать о своем передатчике......

Мне вот щас интересно как передать на ножку МК значение data, таймером? типа ШИМ.
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Vanes
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Вт июл 08, 2014 14:27:38
Откуда: Славянск-на-Кубани

Re: Нужна комплексная помощь в освоении АВРок

Сообщение Vanes »

Твои переменные data на первом МК когда ты их передашь на второй МК будут выводится ШИМом либо если это будет серво-привод но там другой уже алгоритм. :solder:
Изображение Истина где то рядом :-)
Реклама
edj90
Открыл глаза
Сообщения: 70
Зарегистрирован: Ср апр 09, 2014 13:53:14
Откуда: Владивосток

Re: Нужна комплексная помощь в освоении АВРок

Сообщение edj90 »

АГА, примерно так я предполагал.
Вот радиомодуль который хочу использовать. Работает с МК по SPI, Щас поищу что нить для скрещивания....
Тут нашел что то, ща поглазеем...., кроме даташита не чего не понятно(
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
Реклама
Аватара пользователя
Vanes
Первый раз сказал Мяу!
Сообщения: 27
Зарегистрирован: Вт июл 08, 2014 14:27:38
Откуда: Славянск-на-Кубани

Re: Нужна комплексная помощь в освоении АВРок

Сообщение Vanes »

Если SPI, то тебе просто его нужно изучить, тут ни чего сложного ты по SPI отправляешь данные на радио модуль тот в свою преобразует их в радио сигнал а на той стороне такой же модуль принимает его и отправляет по SPI в МК а тот уже разбирает полученные данные и работает с ними.
Изображение Истина где то рядом :-)
edj90
Открыл глаза
Сообщения: 70
Зарегистрирован: Ср апр 09, 2014 13:53:14
Откуда: Владивосток

Re: Нужна комплексная помощь в освоении АВРок

Сообщение edj90 »

Vanes писал(а):Если SPI, то тебе просто его нужно изучить, тут ни чего сложного ты по SPI отправляешь данные на радио модуль тот в свою преобразует их в радио сигнал а на той стороне такой же модуль принимает его и отправляет по SPI в МК а тот уже разбирает полученные данные и работает с ними.
Вот нашел урок, где подробно рассказывается, прошивки там придется немного изменить, под мои переменные.
Единственное непонятно как вместо одного бита передать 8 (data3) и более (data1 и 2), и надо прошивать этот модуль или нет????
spi('1'); //Отсылаем ему 1, чтобы он включил светодиод
пробывал так:
spi(data1);
spi(data2);
spi(data3);
вроде что то происходит, подключаю паралельно осцил, и все осцил не чего не выдает, и красные квадраты перестают моргать возле контактов.....
Может нужно 2 МК между собой соединить, но как сказать второй МК что и куда принимать????
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
edj90
Открыл глаза
Сообщения: 70
Зарегистрирован: Ср апр 09, 2014 13:53:14
Откуда: Владивосток

Re: Нужна комплексная помощь в освоении АВРок

Сообщение edj90 »

Подсказали что для того модуля нужна обвязка и он не совсем подходит, лучше по UARTу соединить, а проверить работаспособность, а потом разорвать RX и TX и подключить передатчик.


ЗЫ Есть тут кто, я понимаю что сложно все показывать новичку и тыкать его но носом, но увы, просто людей которых я знаю пишут на асме или вин авр, а там отличия есть с СВавр???
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
edj90
Открыл глаза
Сообщения: 70
Зарегистрирован: Ср апр 09, 2014 13:53:14
Откуда: Владивосток

Re: Нужна комплексная помощь в освоении АВРок

Сообщение edj90 »

Ребят а подскажите как сделать програмный ШИМ, что для этого нужно? Пересмотрел кучу форумов, но так и не нашел нормального объяснения.... схема простая 12 светодиодов, 1 на 100% , затем второй на 100%, 1й уже на 80%, затем 3-100%, 2-80%, 1-60% и т.д.

Подскажите как быть???
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Нужна комплексная помощь в освоении АВРок

Сообщение WiseLord »

Общий принцип может быть таким:
Спойлер

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

uint8_t i;

while (1) {
	// Зажигаем все светодиоды
	PORTB |= (1<<0); // 1-й
	PORTB |= (1<<1); // 2-й
	//...
	PORTB |= (1<<7); // 8-й
	PORTD |= (1<<0); // 9-й
	//...
	PORTD |= (1<<3); //	12-й
	// Гасим соответствующие светодиоды по достижении счётчиком цикла нужного значения
	for (i = 0; i < 100; i++) {
		if (i >= 100)
			PORTB &= ~(1<<0);
		if (i >= 100)
			PORTB &= ~(1<<1);
		if (i >= 80)
			PORTB &= ~(1<<2);
		if (i >= 60)
			PORTB &= ~(1<<3);
		//...
		_delay_us(10);
	}
}
Но это лишь общий принцип.

Лучше - завести какой-нибудь таймер, с прерыванием по переполнению на значении 100. При переполнении в обработчике прерывания включать все светодиоды, а в основном коде - аналогично вышеприведённому коду проверять для каждого порта со светодиодом, не достигло ли значение этого таймера соответствующего значения, и выключать соответствующий порт.
1 на 100% , затем второй на 100%, 1й уже на 80%, затем 3-100%, 2-80%, 1-60%
А эту фразу я не совсем понял. Как часто меняется скважность?
В любом случае, принцип останется тот же, только в условии проверки if (i > 100) вместо константы будет переменная, которая в коде меняется раз в несколько секунд (сотен миллисекунд? десятков?) - с 100 на 80, потом на 60 и т.д.
edj90
Открыл глаза
Сообщения: 70
Зарегистрирован: Ср апр 09, 2014 13:53:14
Откуда: Владивосток

Re: Нужна комплексная помощь в освоении АВРок

Сообщение edj90 »

1 на 100% , затем второй на 100%, 1й уже на 80%, затем 3-100%, 2-80%, 1-60% и т.д. --- это уровень яркости каждого.... немного пока времени не хватает разобраться(((((
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
edj90
Открыл глаза
Сообщения: 70
Зарегистрирован: Ср апр 09, 2014 13:53:14
Откуда: Владивосток

Re: Нужна комплексная помощь в освоении АВРок

Сообщение edj90 »

А на такой вопросик не ответите?)))
Что если в 2х мк настроить УАРТ и передавать и принимать способом:
приемник
СпойлерИзображение
МК судя по описанию схемы можно на ножку 3 CD4017
Передатчик
СпойлерИзображение
выход TX на вход PPM
edj90
Открыл глаза
Сообщения: 70
Зарегистрирован: Ср апр 09, 2014 13:53:14
Откуда: Владивосток

Re: Нужна комплексная помощь в освоении АВРок

Сообщение edj90 »

Всем доброго дня...
подскажите как принять по USARTU 3 переменные, 4 дня уже соображаю как организовать все это:
переменные dat1, dat2, dat3 = от 0 до 255, по очереди передаются на другую мк, с этим разобрался отправляются без проблем по очереди.
Прием происходит в прерывании, но МК записывает одинаковые значения в эти три переменные:

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

interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
   {
   rx_buffer[rx_wr_index]=data;
   if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
   if (++rx_counter == RX_BUFFER_SIZE)
      {
      rx_counter=0;
      rx_buffer_overflow=1;
      };
   };
ЗНАЮ ЧТО ТУТ НЕ ПРАВИЛЬНО НАПИСАЛ:  
[color=#FF0000]  dat1=data;
  dat2=data;
  dat3=data;[/color]
}
З.Ы. указавать посмотри там сям, не желательно, только еще больше запутаюсь, или конкретно объясните почему там смотреть и как сделать, мне важно понять как работает, а не скопирывать от туда и вставить к себе!!!
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Нужна комплексная помощь в освоении АВРок

Сообщение COKPOWEHEU »

А в чем проблема использовать rx_buffer[0], rx_buffer[1], rx_buffer[2], считывая их по условию rx_rw_index==3. Иначе для чего этот буфер вообще сделан?
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Нужна комплексная помощь в освоении АВРок

Сообщение ARV »

понаделают прерываний, а потом не знают, что с ними делать :)))

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

static char get_resieved_variable(char *var){
   if(rx_counter == 0) return 0; // не приняты данные
   return rx_buffer[--rx_counter];
}

// где надо - загружаете свои переменные так:
while(!get_resieved_variable(&dat1)){
   // тут можно что-то делать, пока данные ожидаются
}
while(!get_resieved_variable(&dat2)){
   // тут можно что-то делать, пока данные ожидаются
}
while(!get_resieved_variable(&dat3)){
   // тут можно что-то делать, пока данные ожидаются
}
как-то так... ну или без while - если понимаете, как пользоваться результатом функции... возможно, правильнее использовать не rx_counter, а rx_wr_index, смотрите сами, мое дело - идею подать :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
edj90
Открыл глаза
Сообщения: 70
Зарегистрирован: Ср апр 09, 2014 13:53:14
Откуда: Владивосток

Re: Нужна комплексная помощь в освоении АВРок

Сообщение edj90 »

Спасибо сделал, погонял в протеусе (начинаю потихоньку ненавидеть его) все работает, код скину чуть попозже (он на другом компе)
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
Аватара пользователя
zero648
Вымогатель припоя
Сообщения: 650
Зарегистрирован: Пн июн 18, 2012 12:01:04
Откуда: Челябинская область, Копейск

Re: Нужна комплексная помощь в освоении АВРок

Сообщение zero648 »

Если бы все было на одном компе, то можно было бы в протеусе код отслеживать, а так походу только хекс файл ему суёте.
Ответить

Вернуться в «AVR»