Страница 3 из 3
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Вт авг 05, 2014 07:11:06
WiseLord
Вопрос не по теме: кое-где в коде "комментарии" у Вас начинаются с \\, а не с //. Компилятор проглатывает это?
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Вт авг 05, 2014 07:18:37
edj90
WiseLord писал(а):Вопрос не по теме: кое-где в коде "комментарии" у Вас начинаются с \\, а не с //. Компилятор проглатывает это?
Даж не заметил, но компилятор проглотил, вот скрин
А реально МК подключить к такому
пульту вместо кнопок, и передавать на такой
приемник, каждый канал передает свою переменную?
И как организовать в МК передачу data на кнопку....
З.Ы. Думаю дально у этого пульта не дальше 50м ((((
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Вт авг 05, 2014 09:30:35
Vanes
вот почитай, думаю прояснишь для себе систему радио связи двух МК
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Ср авг 06, 2014 01:15:03
edj90
Vanes писал(а):вот почитай, думаю прояснишь для себе систему радио связи двух МК
Да читал эту темку, даже хотелось собрать...
я не хочу заморачиваться с приемником и передатчиком, нет оборудования для отладки, легче на первый раз купить, потестить что к чему а там и можно подумать о своем передатчике......
Мне вот щас интересно как передать на ножку МК значение data, таймером? типа ШИМ.
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Ср авг 06, 2014 07:02:26
Vanes
Твои переменные data на первом МК когда ты их передашь на второй МК будут выводится ШИМом либо если это будет серво-привод но там другой уже алгоритм.

Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Ср авг 06, 2014 07:31:07
edj90
АГА, примерно так я предполагал.
Вот
радиомодуль который хочу использовать. Работает с МК по SPI, Щас поищу что нить для скрещивания....
Тут нашел что то, ща поглазеем...., кроме даташита не чего не понятно(
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Ср авг 06, 2014 08:59:35
Vanes
Если SPI, то тебе просто его нужно изучить, тут ни чего сложного ты по SPI отправляешь данные на радио модуль тот в свою преобразует их в радио сигнал а на той стороне такой же модуль принимает его и отправляет по SPI в МК а тот уже разбирает полученные данные и работает с ними.
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Ср авг 06, 2014 15:17:47
edj90
Vanes писал(а):Если SPI, то тебе просто его нужно изучить, тут ни чего сложного ты по SPI отправляешь данные на радио модуль тот в свою преобразует их в радио сигнал а на той стороне такой же модуль принимает его и отправляет по SPI в МК а тот уже разбирает полученные данные и работает с ними.
Вот нашел урок, где подробно рассказывается, прошивки там придется немного изменить, под мои переменные.
Единственное непонятно как вместо одного бита передать 8 (data3) и более (data1 и 2), и надо прошивать этот модуль или нет????
spi('1'); //Отсылаем ему 1, чтобы он включил светодиод
пробывал так:
spi(data1);
spi(data2);
spi(data3);
вроде что то происходит, подключаю паралельно осцил, и все осцил не чего не выдает, и красные квадраты перестают моргать возле контактов.....
Может нужно 2 МК между собой соединить, но как сказать второй МК что и куда принимать????
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Вт авг 12, 2014 05:34:42
edj90
Подсказали что для того модуля нужна обвязка и он не совсем подходит, лучше по UARTу соединить, а проверить работаспособность, а потом разорвать RX и TX и подключить передатчик.
ЗЫ Есть тут кто, я понимаю что сложно все показывать новичку и тыкать его но носом, но увы, просто людей которых я знаю пишут на асме или вин авр, а там отличия есть с СВавр???
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Ср авг 13, 2014 15:35:47
edj90
Ребят а подскажите как сделать програмный ШИМ, что для этого нужно? Пересмотрел кучу форумов, но так и не нашел нормального объяснения.... схема простая 12 светодиодов, 1 на 100% , затем второй на 100%, 1й уже на 80%, затем 3-100%, 2-80%, 1-60% и т.д.
Подскажите как быть???
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Чт авг 14, 2014 08:21:30
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 и т.д.
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Сб авг 16, 2014 14:09:00
edj90
1 на 100% , затем второй на 100%, 1й уже на 80%, затем 3-100%, 2-80%, 1-60% и т.д. --- это уровень яркости каждого.... немного пока времени не хватает разобраться(((((
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Чт авг 21, 2014 11:01:00
edj90
А на такой вопросик не ответите?)))
Что если в 2х мк настроить УАРТ и передавать и принимать способом:
приемник
Спойлер

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

выход TX на вход PPM
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Пн дек 08, 2014 02:28:58
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]
}
З.Ы. указавать посмотри там сям, не желательно, только еще больше запутаюсь, или конкретно объясните почему там смотреть и как сделать, мне важно понять как работает, а не скопирывать от туда и вставить к себе!!!
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Пн дек 08, 2014 07:03:40
COKPOWEHEU
А в чем проблема использовать rx_buffer[0], rx_buffer[1], rx_buffer[2], считывая их по условию rx_rw_index==3. Иначе для чего этот буфер вообще сделан?
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Пн дек 08, 2014 10:19:15
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, смотрите сами, мое дело - идею подать

Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Вт дек 09, 2014 01:39:14
edj90
Спасибо сделал, погонял в протеусе (начинаю потихоньку ненавидеть его) все работает, код скину чуть попозже (он на другом компе)
Re: Нужна комплексная помощь в освоении АВРок
Добавлено: Ср дек 10, 2014 06:18:53
zero648
Если бы все было на одном компе, то можно было бы в протеусе код отслеживать, а так походу только хекс файл ему суёте.