RA3MAH
Участник-
Постов
11 -
Зарегистрирован
-
Посещение
Репутация
0 Обычный-
Помогите откомпилировать исходник
RA3MAH ответил RA3MAH тема в Cредства разработки для МК
В общем, я так понял, что исходник на специфическом софте написан. Нашел другую статью, но опять не знаю, в чем откомпилировать. Похоже на С. Выкладываю статью и ссылку. делал я подобное устройство, летало, скорость передачи 1200, FSK соотношение частот 3/2 на AVR канал звука больше подвержен помехам, поэтому отказался от использования. кстати увеличивать уровень звукового сигнала не надо, наоборот требуется делитель. модулятор собран на ATmega8. для генерации несущей используется таймер то есть при выводе 0 или 1 в таймер просто записывается соответствующее значение. вывод через порт D, в tx_buffer выводимая последовательность байт. код модулятора: // Timer 2 output compare interrupt service routine interrupt [TIM2_COMP] void timer2_comp_isr(void) { //OCR2=0x33+0x1A; PORTD=PORTD^0b00100000; // Place your code here if (count_tact) count_tact--; // если счетчик тактов не ноль, уменьшаем else { if ((!bit_count)&&tx_data_size) // нет бит на вывод - инициализация { tx_word.data_byte[0]=tx_buffer[tx_count++]; if (tx_count==tx_data_size) { tx_count=0; tx_data_size=0; } tx_word.data_byte[1]=0xFF; // стоповый бит tx_word.data_word=tx_word.data_word*2; // сдвиг влево tx_word.data_byte[0]=tx_word.data_byte[0]&0xFE; // стартовый бит bit_count=11; //1 стартовый, 8-данные, 2- стоповых } if (bit_count) // есть биты на вывод { OCR2=0x33+(0x1A*(!(tx_word.data_byte[0]&0x01))); // установка таймера count_tact=1+(tx_word.data_byte[0]&0x01); // установка счетчика тактов /**/ PORTD=PORTD&0b11011111; PORTD=PORTD|(0b00100000*(tx_word.data_byte[0]&0x01)); tx_word.data_word=tx_word.data_word/2; // сдвиг вправо bit_count--; } } } демодулятор на ATtiny13 просто переводит частоту в последовательность 0 и 1, которую я подавал на COM порт компьютера (ТТЛ) используется прерывание по компаратору и таймер для расчета периода несущей. код: #include <tiny13.h> unsigned char count_capt; // захват значения счетчика unsigned char count_tact; // счетчик тактов частоты unsigned char bit_flag; // флаг частоты бита unsigned char bit_capt; // захваченный бит по частоте // External Interrupt 0 service routine interrupt [EXT_INT0] void ext_int0_isr(void) { // Place your code here count_capt=TCNT0; // захват счетчика TCNT0=0x00; // сброс счетчика if ((count_capt>0x48)&&(count_capt<0x16)) count_tact=0; // ошибка приема сброс else { bit_capt=(count_capt<0x33); // оценка принимаемого бита по длительности if (bit_capt==bit_flag) // если сохраненный и захваченный такт совпадают { count_tact++; if (count_tact==(1+bit_flag)) // счетчик достиг предела для значения бита { PORTB.2=bit_flag; // вывод бита count_tact=0; // сброс счетчика } } else { count_tact=0; // сброс счетчика тактов bit_flag=bit_capt; // сохранение значения такта } } } Кстати, в приемнике перед контроллером, необходимо установить ФНЧ. я ставил активный, на операционнике. это позволит немного улучшить помехоустойчивость, а следовательно и дальность http://forum.rcdesign.ru/f8/thread300546.html#post3910216 -
Помогите откомпилировать исходник
RA3MAH ответил RA3MAH тема в Cредства разработки для МК
Спасибо! Буду искать что-нибудь другое. -
Помогите откомпилировать исходник
RA3MAH ответил RA3MAH тема в Cредства разработки для МК
В чем и дело, что автор не выкладывает прошивки. Только исходники. Тини 10 не обязательно, так автор решил. -
Помогите откомпилировать исходник
RA3MAH ответил RA3MAH тема в Cредства разработки для МК
Вопрос в том, что с микроконтроллерами я никак, и уж тем более с асм. Нашел устройство с исходным кодом, но увы, не знаю в чем ошибка. -
Помогите откомпилировать исходник
RA3MAH опубликовал тема в Cредства разработки для МК
Добрый день. Не нашел подобной темы. Не могу откомпилировать исходник на асм для тини 10. Может кто сможет помочь или подсказать компилятор? пробовал avrasm2 - пишет Warning: AVRASM 1.x compatibility is ON - some errors will appear as warnings Modulate.asm(1): warning: '.device ATtiny10' only sets device name Modulate.asm(16): error: syntax error, unexpected '\n', expecting MNEMONIC or REGISTER or SYMBOL or FUNCTION file.zip -
FSK на AVR
RA3MAH ответил RA3MAH тема в Программирование
А не подскажите аналоги микросхемы? -
FSK на AVR
RA3MAH ответил RA3MAH тема в Программирование
Все же ассемблер я не потяну... Подскажите, пожалуйста, ссылочки по БПФ на си. Более разумно получится. -
FSK на AVR
RA3MAH ответил RA3MAH тема в Программирование
Большое спасибо, тем кто откликнулся помочь) Преамбулу хотел вводить, просто забыл про неё написать. При исследовании посылки заводского оборудования было выявлено, что во всех устройствах она имеется. Где-то риализована тоном отдельной частоты, где то методом FSK, но определённым началом посылки. Пакет будет иметь фиксированную длинну 9 байт. Байт состоит только из цифр от 0 до 9, поэтому и было принято решение о кодировании байта 4-мая битами. Но вопрос по прежнему актуален в разборе посылки, то есть алгоритме или примере кода. То есть, что бы при тоне 1000 гц в переменную записывался 0, а при тоне 2200 - 1. Преамбулу уже додумаю сам, в случае необходимости введу бит синхронизации и окончания пакета. Я пробовал вычислять частоту тона измерением перехода через 0, но этот метод не практичен. Хотелось бы методом цос реализовать БПФ, что бы тон был корректно распознан, но на баскоме не нашёл примеров. Может есть у кого на Си? На асме будет тяжко, но тоже не откажусь. Спасибо. -
FSK на AVR
RA3MAH ответил RA3MAH тема в Программирование
Не понятен вообще смысл вашего ответа в теме, если, к сожалению, никаким советом вы помочь не можете. Зачем писать пустые посты, если вы не в теме происходящего. Без обид. zltigo, судя по ваши постам, вы в теме происходящего, но вот почему-то дать подсказку - вы сразу шлете. -
FSK на AVR
RA3MAH ответил RA3MAH тема в Программирование
1)Реализовать стартовый бит не проблема 2)Что-то непонятное и ненужное 3)Зачем кодировать телеметрию? 4)Я и занимаюсь. Было бы намного полезнее, если бы, Вы, объяснили, показали, собственно для чего и нужен форум, а не рассуждали кому и чем заняться. -
FSK на AVR
RA3MAH опубликовал тема в Программирование
Добрый день! Есть задача передать телеметрические данные по радиоканалу. Стандартные радиомодули не подходят, так как с ними удалось перекрыть только 1000 метров, требуется несколько км. В качестве устройств передачи будут использоваться радиостанции. Передача в спектре голосовых частот. Передатчик излучает либо 1000 гц это логический 0, либо 2200 это 1. Частоты манипуляции могут быт любыми. Оптимальное решение - baycom модем, но к сожалению не могу найти исходный код, дабы дописать под свои нужды. С передатчиком проблем не возникло. Передаваемое событие будет содержать либо 5, либо 9 байт, если получится нормально реализовать. Байт состоит из 4 бит. Например, событие 123456789 будет кодировано и передано, как 0001 0010 0011 0100 0101 0110 0111 1000 1001. 0 - тон 1000 Гц, 1 - 2200 Гц. Проблема возникла с демодулятором. Понимаю, что нужно реализовать алгоритм Герцелля или Быстрое преобразование Фурье. Но в математике не очень. Пишу на BASCOM-AVR. Может кто-то делал подобное? и не обязательно на AVR и готов поделиться кодом или показать пример. Считать импульсы переходом через 0 корректно не получилось. Так как, если выключить у радиостанции шумоподавитель - появится эфирный шум (пшшшшш), и из-за этого микроконтроллер выдает ересь. DTMF оставил на крайний случай, так как скорость передачи очень мала. Передача будет односторонняя, достоверность доставки сообщения будет обеспечена избыточностью, т.е. сообщение будет передано много-много раз в течении, например 10 минут. Спасибо.