Перейти к содержанию

ochkarik_

Участник
  • Публикаций

    22
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о ochkarik_

  • Звание
    Участник
  1. Еще раз о switch-технологии

    Сколько всего вкусного )))) Спасибо всем за отзывчивость. Информации не на одну неделю. Нужно все это переосмыслить. Пока более всего заинтересовал вариант, на который дал ссылку Dima_G. (Кто-нибудь пользовал? В IAR откомпилится?) Ладно, буду думать.
  2. Еще раз о switch-технологии

    Добрый день. Хотелось бы еще раз более подробно поговорить о switch-технологии. Ввиду наличия свободного времени начал разрабатывать библиотеку классов для этого дела, хотелось бы узнать мнение специалистов о правильности самого подхода. В целом, идея такова. Создать набор виртуальных классов, реализующих базовую функциональность. Сами автоматы создаются в виде наследников. Требование - должна быть реализована виртуальная функция переходов. Функция может быть написана как вручную, так и сгенерирована автоматически из dot файла (формата GraphViz) (в этом случае имеем дополнительно картинку, соответствующую функции переходов). Такая библиотека кажется довольно удобной, особенно в случае программирования логических контроллеров (управление различными задвижками, пневмоцилиндрами, контакторами и т.д.), так как допускает множественное использование единожды написанного автомата сразу для нескольких объектов (для этого используются шаблоны). Единственная проблема - недостаток опыта. Хочется создать не просто одиночный проект, а именно библиотеку, а здесь все зависит от того, по тому ли пути пошел в самом начале. В общем, подскажите, стоит ли игра свеч, и в каком направлении двигаться. В прикрепленных файлах - самое начало. Может, у кого есть подобные вещи - прошу поделиться, в целях, так сказать, повышения образованности.
  3. Командная строка IAR

    Когда-то тоже интересовался этой темой, но бросил - не хватило терпения. Для себя решил следующее: Как правило, приходится работать с одним-двумя контроллерами, опции проекта зачастую похожи. Поэтому можно иметь пару-тройку шаблонных проектов, из которых и создавать новый (просто скопировав в нужную директорию, например, из репозитория). Утилита iarbuild намного лучше меня разберется, как это скомпилить. Самый главный напряг при работе с проектом - необходимость запуска IDE для добавления файлов. В то же время, для такой нечастой операции, как изменение, например, числа залоченных регистров, IDE имхо удобнее. Пришлось искать компромисс. В кратце, принцип такой - при добавлении файлов в проект автоматически изменяется файл ewp (вырезается список включенных в проект файлов, генерится новый и заносится в проект). У меня это делает sed. Если нужно менять опции - использую IDE. Может, получилось криво и идеологически неправильно, но пока это работает, и меня устраивает.
  4. CLIP для SIEMENS S150

    То есть, если смотреть осциллографом в телефонной линии, то должно получиться так? [attachment=26329:attachment]
  5. CLIP для SIEMENS S150

    Вот это: 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 вольт? А не у кого нет осциллограмм?
  6. CLIP для SIEMENS S150

    А кто может сказать - сигнал FSK обязательно должет идти после первого сигнала вызова? Я это к тому, что желательно бы протестировать, нужно соорудить железку. А в схемотехнике не очень силен. Как усилить сигнал, я еще понимаю, но как согласовать это все с телефонной линией, догадываюсь смутно. Может, пока без линии попробовать? А если с линией, то как? У меня питание, скорее всего, будет отдельное, +5В. Выходно сигнал - синусоида 0 - 5 В. От линии - диодный мост, от плюса - pnp транзистор, дальше резистор,общая точка, минус моста, назад в линию. Так? Или как? Кто делал что-то подобное - поделитесь, плз. Что вообще представляет собой телефонная линия с точки зрения моего устройства (в режиме покоя)? Это источник напряжения с немаленьким (сколько?..) внутренним сопротивлением?
  7. CLIP для SIEMENS S150

    А если так посмотреть? [attachment=26170:attachment] (Скорость передачи - 1200 бод, Fl = 1300, Fh = 2200)? На графике красная линия - моменты перехода частоты.
  8. CLIP для SIEMENS S150

    Набросал тестовую программку с выводом FSK на ЦАП. Просьба знающих глянуть графики и исходники. Что-то похожее должно быть, или я все неправильно понимаю? [attachment=26161:attachment]
  9. CLIP для SIEMENS S150

    Ну ладно, похоже, прямоугольники не прокатят. А как такой вариант - DAC MCP4921 (12-ти разрядный с SPI интерфейсом, почему этот - просто есть в наличии). Микросхема 5-ти вольтовая. Алгоритм - синусоида в памяти, выводим на ЦАП, меняя частоту выборки для МARK и SPACE. На какое минимально количество интервалов можно разбить синусоиду, чтобы было плавненько? И еще - кто поможет согласовать выход DAC-а с телефонной линией?
  10. CLIP для SIEMENS S150

    Ну а если не усложнять? Неужели телефону так важно, чтобы там была синусоида? Прямоугольные импульсы той же частоты его не устроят? Там на плате из серьезных микросхем - только процессор, я думаю, что для него важна просто частота, и не важно, какая там форма сигнала. Если так, то просто попробовать сгенерить импульсы заданной частоты шимом, и все дела. Или я все таки ошибаюсь?
  11. CLIP для SIEMENS S150

    Цитата(SasaVitebsk @ Oct 23 2008, 00:54) Легче купить таку фишку ... ГДЕ??? Хочу... (Украина, Кривой Рог) 2ALL А что тогда здесь? http://www.araxinfo.com/~bacvic/conv_dtmf_fsk.htm Я не думаю, что человек разводом занимается. Как ему на пике с 4 мегагерцами удалось сделать такое устройство? Что за FSK в телефонной линии? Может, там не все так страшно? Может, ему обычный ШИМ кормить, чуть сгладив( не жирно ли будет чистую синусоиду)? ЦитатаВ стандарте FSK данные передаются со скоростью 1200 бит/сек. Логическая 1 (MARK) кодируется частотой 1300 Гц, логический 0 (SPACE) – 2100 Гц. Информация передается побайтно, каждый байт начинается стартовым битом SPACE и заканчивается стоповым битом MARK.
  12. CLIP для SIEMENS S150

    Добрый день. Суть проблемы. Телефон 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 - ткните носом.
  13. А как вам такой принцип реализации меню? [attachment=18252:attachment] В приложенном файле реализация для обычного консольного приложения Windows, с целью показать принцип. Реализация для атмеги есть на работе, почти полная версия, вкупе с обработкой клавиатуры. Функция main для атмеги выглядит примерно так: Кодwhile(1) {    .......    if(MAIN_NOT_BUSY) //условие, дающие разрешение на работу терминала в этом цикле      next_terminal_task(); } Ф функции next_terminal_task выполняется только один шаг из текущей задачи - или вывод одного символа на дисплей или один скан клавиатуры или обработка нажатой клавиши, или еще чего-то. Но это уже другая история. А идея само меню реализовать в виде стека, в котором хранятся указатели на активное меню, оказалась довольно удачной. Попробуйте.
  14. WinAVR C++ && Proteus

    Цитата(Tracer @ Jul 13 2007, 17:43) А нафига? Если он просит HEX или COFF? Отредактируй мейк файл, сделай COFF и дай ему. В COFF вся отладочная информация есть. Есть-то она есть. Но косячят вроде кофы сильно... По крайней мере, на форумах об этом пишут. Да и разработчики Протеуса рекомендуют использовать dwarf-2, т. е. нужен ельф. Если компилить с опцией -gdwarf-2 и делать из этого coff, то ничего хорошего не получается. coff, показывающий отладочную информацию, у меня получается тогда, когда компилю с опцией -gstabs и делаю extcoff. Но в этом случае не видно глобальных переменных. Да и насчет видимости всех локальных сомнения у меня... Плюс, как мне помнится, в некоторых случаях с кофом модель начинает вести себя, мягко говоря, нелогично. Причем если даешь hex из той же компиляции, то все нормально. С эльфами при использовании чистого С проблем не было, все работает как надо. А теперь вдруг с удивлением обнаружил, что С++ его не устраивает. С иаровским ubrof-8 вроде такого не замечал. Может, кто еще чего присоветует?
  15. WinAVR C++ && Proteus

    Извините, если уже об этом писалось, но не смог найти. Как запихнуть elf с С++ в Proteus? Proteus 7.1 SP2: [ELF] DWARF file corrupt or loader error at location 1890 Пример простейшего проекта в файле ниже. Вроде везде пишут, что нету проблем с С++. Возможно, где-то в Makefile косяк? [attachment=12423:attachment]