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

Sergei Frolov

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

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

  • Посещение

Весь контент Sergei Frolov


  1. Для отслеживания одной снежинки достаточно двух компараторов и одного регистра типа HC374. Первый компаратор детектирует приход единицы на сегментной ноге. Второй компаратор отслеживает приход нуля на общем выводе (ниже порога промежуточных) и защелкивает HC374. После этого выход HC374 идет куда угодно. Питаться эти два элемента могут от внешнего устройства. Только земли соединить. Самое сложное там - снежинку найти (общий и сегментный).
  2. Подскажите, в какой момент надо сбрасывать VSYNC относительно HSYNC? Этот момент как-то смутно описан в доках. Я подразумеваю, что VSYNC должен опускаться сразу (одновременно) после сброса HSYNC. Или это не так? Или после Back porch?
  3. Ищу назначение кнопки "Таймер" в КА1035ХЛ1. В схемах, которые гуляют в интернете про эту функцию вообще ничего не написано. Хотелось бы прочитать подробную документацию к ней.
  4. Конечно в одном, так удобнее с точки зрения навигации. (шутка) Штук 20.
  5. Около 40000-50000 по листингу.
  6. Комментировать метки и перекомпилировать быстрее, чтобы компилятор ругался или нет. Но мне хочется получить сразу список.
  7. Это всё понятно. Это частный случай. Для начала мне нужно убрать неиспользуемые метки.
  8. Спасибо. Но это долго, когда количество подпрограмм за сотню. Мне хочется видеть сразу списком.
  9. Было бы несложно, я бы сам и написал. Но меня интересует, есть ли способы узнать, какие метки не использованы напрямую при компиляции? Есть ли какие-нибудь программы по этому поводу, утилиты и пр.?
  10. Неиспользуемые метки

    Есть большой исходник на ассемблере. Там имеется куча подпрограмм, и не все они используются в программе. Есть ли способы узнать, какие метки не использованы напрямую при компиляции? Есть ли какие-нибудь программы по этому поводу, утилиты и пр.?
  11. Да я уже понял, что как всегда, придется все делать самому. :)
  12. Придется, наверно. Но вряд ли это будет "смешная программка" или надежная, потому для гарантии придется делать свой ассемблер, иначе он будет пропускать, например, использованные части от меток или закомментированные команды label1: .byte 1 ... lds r16, label101 ; lds r16, label1 , считая, что они используются.
  13. Я сейчас так и делаю. Но у меня более четырехсот переменных. Очень напрягает.
  14. С косвенными обращениями без явного использования имени - понятно. Но если у меня метки стоят в .DSEG и обозначены как label: .byte 1 то мне хочется видеть, использую ли я это имя дальше или нет.
  15. Есть ли какой-нибудь анализатор исходного кода для AVR? Меня интересуют засечь неиспользуемые переменные (метки) в асме.
  16. Сейчас 0.4 (миллиметры) запятую ставить не дает. Ставил разные значения - не помогает.
  17. Спасибо за ответ. У меня получается так, что в "Strategy->RouteSweep" я могу изменить параметр, а мышкой по букве "B" - не могу. Даже при уменьшении пишет, что Rounting box too large.
  18. Routing box too large

    Появилась странность в моем Orcad 9.2 DRC box очень маленький и не хочет изменяться в размерах. Пишет "Routing box too large". Игрался с различными параметрами Worspace settings, не помогает. Переустановка, чистка реестра не помогла. Может, у него есть какой-нибудь файл с параметрами? Где еще копать?
  19. (* Вычисление дня недели в приложениях автоматического вычисления дня недели в датах от 1996 года и старше. Copyright (C) Sergei Frolov, 1998. v1.0 Jan, 4, 1998. Программа ориентирована на применение в приложениях, написанных на языке ассемблера без использования аппаратного умножения/деления и операций с плавающей запятой. *) program denned; const YEARS : array[0.. 3] of byte = (0, 2, 3, 4); MONTHS : array[1..12] of byte = (0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5); DAYOFWEEKS : array[0..6] of string = ('Воскресенье', 'Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота'); var a, b, c, d, e, f, tmp : byte; day, month, year : word; begin repeat write('Число XX -> '); readln(day); if day = 0 then break; { выход } write('Месяц XX -> '); readln(month); write('Год XXXX -> '); readln(year); tmp := year - 1996; a := tmp and 3; b := (tmp shr 2) + (tmp and $FC); c := MONTHS[month]; if (a = 0) and (month > 2) then inc(c); a := YEARS[a]; e := (a + b + c + day) mod 7; writeln('Результат: ', DAYOFWEEKS[e]); writeln; until false; end.
  20. Вы просто не умеете их готовить. :) Посмотрите мой проектик: вроде то, что надо. Исходники внутри. http://www.rk86.com/frolov/vi_frs.htm
×
×
  • Создать...