Поняно! Спасибо что помогаете. Ситуация такая. Вышки не угоняют, местоположение всех передатчиков известно. Проблема в следующем радио модемы частенько зависают на передаче и остаются в этом режиме."Заглушают" эфирное пространство на этой частоте. Остальные объекты (в радиусе 5-10 км, а то и больше) при этом остаются без связи. Что бы быстро устранить не "исправность" в системе телемеханике.Определить направление местоположения " зависшего" Р/М - для этого хотел применить пеленгатор.
поставьте таймер, ограничивающий режим ТХ принудительно - это чтоб не зависали. Аналогичный, но на более короткое время воткните в приемник. Модем, как я понимаю свой код сообщает. Если передача превысила таймер приемника - знаем кого ремонтировать.
Да некоторые так и делаем. Просто их более 400 (У нашего участка). Но пеленгатор я все равно хочу доделать. Такой случай может и редкий, но очень вредный. Радио модем принимает на своей частоте , а передает на соседней (165.2225 МГц прием передает 165.2100)(обычно после перегрева) Тогда связь с объектами по соседнему каналу, то есть, то нет. Частоты(165.200 165,225 157.4625 и еще 3(не помню) ) Бывают и от соседних организаций к нам лезут.
USER777 писал(а):вопрос по USART. Данные в моем случае нужно передавать без ожидания освобождения while ( !( UCSR0A & (1<<UDRE0)) ); т.е через прерывания: байт ушел прерывание следующий байт ит.д . Не хотелось изобретать велосипед. Этот while сильно тормозит программу. Скорость 57600. 8 байт передать всего то.
Может примеры есть или ссылки?? Спасибо за ранее!
пример и ссылка - это задача-упражнение 5 курса оп AVR - http://avr123.nm.ru/z5.htm Вам надо мастером настроить передачу с прерываниями и можно создать буфер для передачи матером CVAVR. Куидаете в буфер, а он сам на прерываниях "рулит" чтоб максимально быстро передать. Скриншот ниже.
Ну можно и ПРИНТФ выводить ваши 8 байт оформив их в строку наверно.
#pragma interrupt_handler uart0_tx_isr:iv_USART0_TXC void uart0_tx_isr(void) {// byte_count - количество переданных байт, номер передаваемого // col - кол.байт которые необходимо передать //buff[] буфер хранения передаваемых байт if (byte_count>=col) byte_count=0;else UDR0=buff[byte_count],byte_count++; }
Вопрос по усреднению и про графический дисплей. Как обычно усредняют значения (градусы) скачущие в районе 350-0-10 градусов.??? Какой графический дисплей(желательно монохромный) посоветуете для вывода азимута, уровня сигнала и прочей инф.??? И для дисплея лучше поставить отдельный контроллер, подключив через I2C, или использовать все ту же Атмега128?? Опыт работы с графическим дисплеями нулевой, и хорошо если есть возможность проверки данного дисплея с контроллером в Proteus. Спасибо.. Вот проект на Proteus с выводом на терминал
LCD графический MT12864 - 128x64 точки. Исходники для CVAVR и симуляция в PROTEUS - Прекрасно компилируется и симулируется. Можно симулировать в PROTEUS без компиляции - все файлы в архиве есть. http://kazus.ru/forum/topic_10496-0-asc-30.html
Добавлено спустя 2 часа 33 минуты 14 секунд: Вот еще граф дисплей поменьше http://kazus.ru/forum/topic_10063-0-asc-660.html есть пример в PROTEUS - Proteus 7\SAMPLES\VSM for AVR\AVR and SED1520\
Проект пока в стадии(очень начальной). Но проблемы со связью(р/модемами) дают о себе знать. Вот уже 2 месяца на частоте 150,225 МГц один из (р/м) глючит . т.е Периодический раз в неделю ,а то и чаще начинает вытворять следующее переходит в не штатный (даже не предусмотренный заводом изготовителем) режим безадресный ретрансляции принятых пакетов. Т.е создает ЭХО. тем самым значительно затрудняет связь с остальными р/м. Пакеты накладываются друг на друга. Местоположение "глючного" р/м вычислить пока не удалось. Спустя какое время (4-16 часов) эта не исправность исчезает сама по себе . И пеленговать такой модем очень сложно необходимо отправлять в эфир пакет и пеленговать его эхо.. Может кто- то сталкивался с пеленгацией таких коротких радиопакетов. Заставить "глючный" р/м постоять подольше на передаче можно если отправить длинный пакет Его эхо будет примерно (1,5 сек). Если есть советы любые(по поиску "р/м") или личный опыт. Вообще с чего начинается охота. Ссылки на другие виды пеленгаторов буду признателен. Заранее спасибо..
Хотелось бы продолжить тему..Кое что конечно уже есть.. Вывел на комп уровень несущей, уровень НЧ, сумму синусов и косинусов. Арктангенс рассчитывается на компе т.к для этого мк слишком сложная операция.
contr писал(а):Переключая антенны имеем 4 отклонения от частоты несущей, т.е четыре отсчета. Любой чип FM приемника выдаст их в виде 4x уровней. Откуда взялись синусоиды, 500Гц на входе АЦП и пр.? Сделали один цикл измерений - вычислили направление, запомнили. Сотня измерений - усреднили и вывели на какой-нибудь графический индикатор.
И был прав, зря только я спорил. Просто измерения проводить нужно без нч фильтра(500 Гц). сразу же на выходе. В литературе пишется что переключения антенн должны быть не мгновенным а с переменными по времени множителями (например меняющимся по линейному закону).. Имеет ли это какое-то влияние на работу пеленгатора..?? Может быть даже лучше использовать 4 отсчета как предложил contr , и работать с ними(на практике не совсем понятно как)..??