ochkarik_
Участник-
Постов
21 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о ochkarik_
-
Звание
Участник
Посетители профиля
823 просмотра профиля
-
Сколько всего вкусного )))) Спасибо всем за отзывчивость. Информации не на одну неделю. Нужно все это переосмыслить. Пока более всего заинтересовал вариант, на который дал ссылку Dima_G. (Кто-нибудь пользовал? В IAR откомпилится?) Ладно, буду думать.
-
Добрый день. Хотелось бы еще раз более подробно поговорить о switch-технологии. Ввиду наличия свободного времени начал разрабатывать библиотеку классов для этого дела, хотелось бы узнать мнение специалистов о правильности самого подхода. В целом, идея такова. Создать набор виртуальных классов, реализующих базовую функциональность. Сами автоматы создаются в виде наследников. Требование - должна быть реализована виртуальная функция переходов. Функция может быть написана как вручную, так и сгенерирована автоматически из dot файла (формата GraphViz) (в этом случае имеем дополнительно картинку, соответствующую функции переходов). Такая библиотека кажется довольно удобной, особенно в случае программирования логических контроллеров (управление различными задвижками, пневмоцилиндрами, контакторами и т.д.), так как допускает множественное использование единожды написанного автомата сразу для нескольких объектов (для этого используются шаблоны). Единственная проблема - недостаток опыта. Хочется создать не просто одиночный проект, а именно библиотеку, а здесь все зависит от того, по тому ли пути пошел в самом начале. В общем, подскажите, стоит ли игра свеч, и в каком направлении двигаться. В прикрепленных файлах - самое начало. Может, у кого есть подобные вещи - прошу поделиться, в целях, так сказать, повышения образованности. StateMachines.zip
-
Когда-то тоже интересовался этой темой, но бросил - не хватило терпения. Для себя решил следующее: Как правило, приходится работать с одним-двумя контроллерами, опции проекта зачастую похожи. Поэтому можно иметь пару-тройку шаблонных проектов, из которых и создавать новый (просто скопировав в нужную директорию, например, из репозитория). Утилита iarbuild намного лучше меня разберется, как это скомпилить. Самый главный напряг при работе с проектом - необходимость запуска IDE для добавления файлов. В то же время, для такой нечастой операции, как изменение, например, числа залоченных регистров, IDE имхо удобнее. Пришлось искать компромисс. В кратце, принцип такой - при добавлении файлов в проект автоматически изменяется файл ewp (вырезается список включенных в проект файлов, генерится новый и заносится в проект). У меня это делает sed. Если нужно менять опции - использую IDE. Может, получилось криво и идеологически неправильно, но пока это работает, и меня устраивает. tmp.zip
-
То есть, если смотреть осциллографом в телефонной линии, то должно получиться так? fsk.zip
-
Вот это: Signal Level: -13,5 dBm ± 1,5 dB (When the line is looped on an impedance equivalent to the source impedance) то же самое, что и это: Mark level -40dBV -14 dBV Space level -36 dBV -8 dBV ??? Сколько это в вольтах? От этих децибел скоро с ума сойду... По моим подсчетам, это должно быть около 0.5 вольт (во втором случае даже ниже). Я правильно посчитал? То есть, получается, что на 60 В в состоянии покоя накладываются колебания амплитудой 0.5 вольт? А не у кого нет осциллограмм?
-
А кто может сказать - сигнал FSK обязательно должет идти после первого сигнала вызова? Я это к тому, что желательно бы протестировать, нужно соорудить железку. А в схемотехнике не очень силен. Как усилить сигнал, я еще понимаю, но как согласовать это все с телефонной линией, догадываюсь смутно. Может, пока без линии попробовать? А если с линией, то как? У меня питание, скорее всего, будет отдельное, +5В. Выходно сигнал - синусоида 0 - 5 В. От линии - диодный мост, от плюса - pnp транзистор, дальше резистор,общая точка, минус моста, назад в линию. Так? Или как? Кто делал что-то подобное - поделитесь, плз. Что вообще представляет собой телефонная линия с точки зрения моего устройства (в режиме покоя)? Это источник напряжения с немаленьким (сколько?..) внутренним сопротивлением?
-
А если так посмотреть? NEW.ZIP (Скорость передачи - 1200 бод, Fl = 1300, Fh = 2200)? На графике красная линия - моменты перехода частоты.
-
Набросал тестовую программку с выводом FSK на ЦАП. Просьба знающих глянуть графики и исходники. Что-то похожее должно быть, или я все неправильно понимаю? s150.zip
-
Ну ладно, похоже, прямоугольники не прокатят. А как такой вариант - DAC MCP4921 (12-ти разрядный с SPI интерфейсом, почему этот - просто есть в наличии). Микросхема 5-ти вольтовая. Алгоритм - синусоида в памяти, выводим на ЦАП, меняя частоту выборки для МARK и SPACE. На какое минимально количество интервалов можно разбить синусоиду, чтобы было плавненько? И еще - кто поможет согласовать выход DAC-а с телефонной линией?
-
Ну а если не усложнять? Неужели телефону так важно, чтобы там была синусоида? Прямоугольные импульсы той же частоты его не устроят? Там на плате из серьезных микросхем - только процессор, я думаю, что для него важна просто частота, и не важно, какая там форма сигнала. Если так, то просто попробовать сгенерить импульсы заданной частоты шимом, и все дела. Или я все таки ошибаюсь?
-
ГДЕ??? Хочу... (Украина, Кривой Рог) 2ALL А что тогда здесь? http://www.araxinfo.com/~bacvic/conv_dtmf_fsk.htm Я не думаю, что человек разводом занимается. Как ему на пике с 4 мегагерцами удалось сделать такое устройство? Что за FSK в телефонной линии? Может, там не все так страшно? Может, ему обычный ШИМ кормить, чуть сгладив( не жирно ли будет чистую синусоиду)?
-
Добрый день. Суть проблемы. Телефон Siemens Gigaset S150. Цифровая АТС (какого конкретно типа - не скажу). По утверждению инженеров, АТС передает Caller ID в формате DTMF. Труба поддерживает Caller ID в формате FSK. Для этих телефонов проблема должна бы решаться перепрошивкой : (изменением одного байта в EEPROM) Но есть проблема: по всей вероятности, из-за другого типа процессора (PCD8016) епромки на плате нет. Определитель же поиметь хочется. Хотелось бы услышать мнение знающих - как можно на атмеге реализовать конвертор DTMF-> FSK, и стоит ли игра свеч? Читал здесь: http://www.araxinfo.com/~bacvic/conv_dtmf_fsk.htm И здесь: http://www.picbasic.nl/frameload_uk.htm?ht...ermelder_uk.htm Что думаю. В качестве декодера DTMF взять микросхему MT8870 или CM8870 (как во втором варианте) и выдать сигнал FSK (как в варианте с araxinfo.com). Но пока не понятно, как схематически реализовать выдачу FSK в линию. Так же ничего не знаю про формат FSK. Пока только представляю общий алгоритм - дождаться сигнала DTMF, определить номер телефона, после первого гудка выдать FSK. Поскольку на araxinfo.com исходников не лежит, мне пока тяжело сообразить, что там и куда. Может, кто поможет со схемотехникой? Еще просьба - может где есть на понятном языке инфа по FSK - ткните носом.
-
А как вам такой принцип реализации меню? menu.rar В приложенном файле реализация для обычного консольного приложения Windows, с целью показать принцип. Реализация для атмеги есть на работе, почти полная версия, вкупе с обработкой клавиатуры. Функция main для атмеги выглядит примерно так: while(1) { ....... if(MAIN_NOT_BUSY) //условие, дающие разрешение на работу терминала в этом цикле next_terminal_task(); } Ф функции next_terminal_task выполняется только один шаг из текущей задачи - или вывод одного символа на дисплей или один скан клавиатуры или обработка нажатой клавиши, или еще чего-то. Но это уже другая история. А идея само меню реализовать в виде стека, в котором хранятся указатели на активное меню, оказалась довольно удачной. Попробуйте.
-
Есть-то она есть. Но косячят вроде кофы сильно... По крайней мере, на форумах об этом пишут. Да и разработчики Протеуса рекомендуют использовать dwarf-2, т. е. нужен ельф. Если компилить с опцией -gdwarf-2 и делать из этого coff, то ничего хорошего не получается. coff, показывающий отладочную информацию, у меня получается тогда, когда компилю с опцией -gstabs и делаю extcoff. Но в этом случае не видно глобальных переменных. Да и насчет видимости всех локальных сомнения у меня... Плюс, как мне помнится, в некоторых случаях с кофом модель начинает вести себя, мягко говоря, нелогично. Причем если даешь hex из той же компиляции, то все нормально. С эльфами при использовании чистого С проблем не было, все работает как надо. А теперь вдруг с удивлением обнаружил, что С++ его не устраивает. С иаровским ubrof-8 вроде такого не замечал. Может, кто еще чего присоветует?
-
Извините, если уже об этом писалось, но не смог найти. Как запихнуть elf с С++ в Proteus? Proteus 7.1 SP2: [ELF] DWARF file corrupt or loader error at location 1890 Пример простейшего проекта в файле ниже. Вроде везде пишут, что нету проблем с С++. Возможно, где-то в Makefile косяк? cpp.zip