Нужна комплексная помощь в освоении АВРок
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Нужна комплексная помощь в освоении АВРок
Вопрос не по теме: кое-где в коде "комментарии" у Вас начинаются с \\, а не с //. Компилятор проглатывает это?
- Реклама
Re: Нужна комплексная помощь в освоении АВРок
Даж не заметил, но компилятор проглотил, вот скринWiseLord писал(а):Вопрос не по теме: кое-где в коде "комментарии" у Вас начинаются с \\, а не с //. Компилятор проглатывает это?
А реально МК подключить к такому пульту вместо кнопок, и передавать на такой приемник, каждый канал передает свою переменную?
И как организовать в МК передачу data на кнопку....
З.Ы. Думаю дально у этого пульта не дальше 50м ((((
- Вложения
-
- Corel.jpg
- (233.22 КБ) 341 скачивание
Последний раз редактировалось ibiza11 Вт авг 05, 2014 09:06:43, всего редактировалось 1 раз.
Причина: 2.2 Запрещается создание нескольких сообщений подряд в одной теме. Если вы хотите что-то добавить к своему, уже написанному сообщению, воспользуйтесь кнопкой "Правка".
Причина: 2.2 Запрещается создание нескольких сообщений подряд в одной теме. Если вы хотите что-то добавить к своему, уже написанному сообщению, воспользуйтесь кнопкой "Правка".
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
- Vanes
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Вт июл 08, 2014 14:27:38
- Откуда: Славянск-на-Кубани
Re: Нужна комплексная помощь в освоении АВРок
вот почитай, думаю прояснишь для себе систему радио связи двух МК
Re: Нужна комплексная помощь в освоении АВРок
Да читал эту темку, даже хотелось собрать...Vanes писал(а):вот почитай, думаю прояснишь для себе систему радио связи двух МК
я не хочу заморачиваться с приемником и передатчиком, нет оборудования для отладки, легче на первый раз купить, потестить что к чему а там и можно подумать о своем передатчике......
Мне вот щас интересно как передать на ножку МК значение data, таймером? типа ШИМ.
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
- Vanes
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Вт июл 08, 2014 14:27:38
- Откуда: Славянск-на-Кубани
Re: Нужна комплексная помощь в освоении АВРок
Твои переменные data на первом МК когда ты их передашь на второй МК будут выводится ШИМом либо если это будет серво-привод но там другой уже алгоритм. 
- Реклама
Re: Нужна комплексная помощь в освоении АВРок
АГА, примерно так я предполагал.
Вот радиомодуль который хочу использовать. Работает с МК по SPI, Щас поищу что нить для скрещивания....
Тут нашел что то, ща поглазеем...., кроме даташита не чего не понятно(
Вот радиомодуль который хочу использовать. Работает с МК по SPI, Щас поищу что нить для скрещивания....
Тут нашел что то, ща поглазеем...., кроме даташита не чего не понятно(
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
- Vanes
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Вт июл 08, 2014 14:27:38
- Откуда: Славянск-на-Кубани
Re: Нужна комплексная помощь в освоении АВРок
Если SPI, то тебе просто его нужно изучить, тут ни чего сложного ты по SPI отправляешь данные на радио модуль тот в свою преобразует их в радио сигнал а на той стороне такой же модуль принимает его и отправляет по SPI в МК а тот уже разбирает полученные данные и работает с ними.
Re: Нужна комплексная помощь в освоении АВРок
Вот нашел урок, где подробно рассказывается, прошивки там придется немного изменить, под мои переменные.Vanes писал(а):Если SPI, то тебе просто его нужно изучить, тут ни чего сложного ты по SPI отправляешь данные на радио модуль тот в свою преобразует их в радио сигнал а на той стороне такой же модуль принимает его и отправляет по SPI в МК а тот уже разбирает полученные данные и работает с ними.
Единственное непонятно как вместо одного бита передать 8 (data3) и более (data1 и 2), и надо прошивать этот модуль или нет????
spi('1'); //Отсылаем ему 1, чтобы он включил светодиод
пробывал так:
spi(data1);
spi(data2);
spi(data3);
вроде что то происходит, подключаю паралельно осцил, и все осцил не чего не выдает, и красные квадраты перестают моргать возле контактов.....
Может нужно 2 МК между собой соединить, но как сказать второй МК что и куда принимать????
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
Re: Нужна комплексная помощь в освоении АВРок
Подсказали что для того модуля нужна обвязка и он не совсем подходит, лучше по UARTу соединить, а проверить работаспособность, а потом разорвать RX и TX и подключить передатчик.
ЗЫ Есть тут кто, я понимаю что сложно все показывать новичку и тыкать его но носом, но увы, просто людей которых я знаю пишут на асме или вин авр, а там отличия есть с СВавр???
ЗЫ Есть тут кто, я понимаю что сложно все показывать новичку и тыкать его но носом, но увы, просто людей которых я знаю пишут на асме или вин авр, а там отличия есть с СВавр???
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
Re: Нужна комплексная помощь в освоении АВРок
Ребят а подскажите как сделать програмный ШИМ, что для этого нужно? Пересмотрел кучу форумов, но так и не нашел нормального объяснения.... схема простая 12 светодиодов, 1 на 100% , затем второй на 100%, 1й уже на 80%, затем 3-100%, 2-80%, 1-60% и т.д.
Подскажите как быть???
Подскажите как быть???
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: Нужна комплексная помощь в освоении АВРок
Общий принцип может быть таким:Но это лишь общий принцип.
Лучше - завести какой-нибудь таймер, с прерыванием по переполнению на значении 100. При переполнении в обработчике прерывания включать все светодиоды, а в основном коде - аналогично вышеприведённому коду проверять для каждого порта со светодиодом, не достигло ли значение этого таймера соответствующего значения, и выключать соответствующий порт.
В любом случае, принцип останется тот же, только в условии проверки if (i > 100) вместо константы будет переменная, которая в коде меняется раз в несколько секунд (сотен миллисекунд? десятков?) - с 100 на 80, потом на 60 и т.д.
Спойлер
Код: Выделить всё
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 и т.д.
Re: Нужна комплексная помощь в освоении АВРок
1 на 100% , затем второй на 100%, 1й уже на 80%, затем 3-100%, 2-80%, 1-60% и т.д. --- это уровень яркости каждого.... немного пока времени не хватает разобраться(((((
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
Re: Нужна комплексная помощь в освоении АВРок
А на такой вопросик не ответите?)))
Что если в 2х мк настроить УАРТ и передавать и принимать способом:
приемник
МК судя по описанию схемы можно на ножку 3 CD4017
Передатчик

выход TX на вход PPM
Что если в 2х мк настроить УАРТ и передавать и принимать способом:
приемник
Спойлер

МК судя по описанию схемы можно на ножку 3 CD4017
Спойлер

выход TX на вход PPM
Re: Нужна комплексная помощь в освоении АВРок
Всем доброго дня...
подскажите как принять по USARTU 3 переменные, 4 дня уже соображаю как организовать все это:
переменные dat1, dat2, dat3 = от 0 до 255, по очереди передаются на другую мк, с этим разобрался отправляются без проблем по очереди.
Прием происходит в прерывании, но МК записывает одинаковые значения в эти три переменные:
З.Ы. указавать посмотри там сям, не желательно, только еще больше запутаюсь, или конкретно объясните почему там смотреть и как сделать, мне важно понять как работает, а не скопирывать от туда и вставить к себе!!!
подскажите как принять по 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: Нужна комплексная помощь в освоении АВРок
А в чем проблема использовать rx_buffer[0], rx_buffer[1], rx_buffer[2], считывая их по условию rx_rw_index==3. Иначе для чего этот буфер вообще сделан?
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18546
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: Нужна комплексная помощь в освоении АВРок
понаделают прерываний, а потом не знают, что с ними делать 
как-то так... ну или без while - если понимаете, как пользоваться результатом функции... возможно, правильнее использовать не rx_counter, а rx_wr_index, смотрите сами, мое дело - идею подать 
Код: Выделить всё
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)){
// тут можно что-то делать, пока данные ожидаются
}
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: Нужна комплексная помощь в освоении АВРок
Спасибо сделал, погонял в протеусе (начинаю потихоньку ненавидеть его) все работает, код скину чуть попозже (он на другом компе)
Когда дойдет до ума, так и перестану задавать глупые вопросы!!!
- zero648
- Вымогатель припоя
- Сообщения: 650
- Зарегистрирован: Пн июн 18, 2012 12:01:04
- Откуда: Челябинская область, Копейск
Re: Нужна комплексная помощь в освоении АВРок
Если бы все было на одном компе, то можно было бы в протеусе код отслеживать, а так походу только хекс файл ему суёте.


