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

ochkarik_

Участник
  • Постов

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Участник
    Участник

Посетители профиля

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

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

    То есть, если смотреть осциллографом в телефонной линии, то должно получиться так? fsk.zip
  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

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

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

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

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

    ГДЕ??? Хочу... (Украина, Кривой Рог) 2ALL А что тогда здесь? http://www.araxinfo.com/~bacvic/conv_dtmf_fsk.htm Я не думаю, что человек разводом занимается. Как ему на пике с 4 мегагерцами удалось сделать такое устройство? Что за FSK в телефонной линии? Может, там не все так страшно? Может, ему обычный ШИМ кормить, чуть сгладив( не жирно ли будет чистую синусоиду)?
  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. А как вам такой принцип реализации меню? menu.rar В приложенном файле реализация для обычного консольного приложения Windows, с целью показать принцип. Реализация для атмеги есть на работе, почти полная версия, вкупе с обработкой клавиатуры. Функция main для атмеги выглядит примерно так: while(1) { ....... if(MAIN_NOT_BUSY) //условие, дающие разрешение на работу терминала в этом цикле next_terminal_task(); } Ф функции next_terminal_task выполняется только один шаг из текущей задачи - или вывод одного символа на дисплей или один скан клавиатуры или обработка нажатой клавиши, или еще чего-то. Но это уже другая история. А идея само меню реализовать в виде стека, в котором хранятся указатели на активное меню, оказалась довольно удачной. Попробуйте.
  14. WinAVR C++ && Proteus

    Есть-то она есть. Но косячят вроде кофы сильно... По крайней мере, на форумах об этом пишут. Да и разработчики Протеуса рекомендуют использовать 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 косяк? cpp.zip
×
×
  • Создать...