Jump to content

    

DpInRock

Участник
  • Content Count

    2291
  • Joined

  • Last visited

Everything posted by DpInRock


  1. Горизонт в самолете показывает гироскоп. А перпендикулярный оному вполне покажет крен вверх-вниз. :05:
  2. А если скажут, то сядут. имхо люди давно плюнули на магнитное поле. оно разное везде. да еще и на север не везде показывает.GPS - решение проблем. А всякие изменения местоположения платформы относительно гравитационного поля - это относительно простая задача. Есть такая штука - гироскоп. Вообще. Пара гироскопов и вы о самолете знаете все.
  3. В одно действие чего именно? (микропроцессора, языка С...)?
  4. Чего тут мудрить - нихт понятно. Тут магазинная схема. Работай - не хочу.
  5. Это справедливо для любой схемы. Ибо товарищ не объяснил дальнейшее использование этого кода.
  6. Вас ожидает еще столько удивительных и фееричных вещей для отправки СМС...:)
  7. Проще ПЗУ не придумать. А раз человек не в курсе про схемотехнику, то подключать альтеру какую-нибудь чисто умается. -- Есть еще один извратный способ, но очень простой. Все выходы АЦП объединяются через резисторы, к примеру, 10 килоом. С точки объединения - на землю какой-нибудь резистор, килоом 100, например. Тогда напряжение на выходе будет прямопропорционально числу единиц. ставим крутой стрелочный прибор и градуируем его. Точность будет очень хорошей. Ибо всего 8 градаций. Это примерно 0.6 вольта на единицу при питании 5 вольт. Очень круто будет. Hi-end измеритель чила единиц. Почти ламповый. К тому же препод отвергнет идею с альтерой. Это не есть рассыпуха. А вот ПЗУ под это дело подходит лучше. Формально - это рассыпуха.
  8. Специалист, который не умеет делать на рассыпухе - никто. Это радиолюбитель. Для дома, для семьи. Сделай сам. И пр. Надо учиться. Надо.
  9. Очень просто. Поставить на выход АЦП ПЗУ. Минимум 256х3. Каждое значение АЦП в диапазоне 0-255 будет адресом ПЗУ. Ну а запрограммировать ПЗУ так, чтобы в соот. адресе было число, которое показывает число единиц в этом адресе. Тут хватит всего три бита. Это самая простая схема. А если вы не знакому с методами построения логических схем, то на более простых элементах вам это не сделать. Но идея такова. Записываете логическое выражение зависимость конкретного разряда выхода от состояния всях входов. Минимизируете ее. Оставшееся - реализуете на элементах И-НЕ или ИЛИ-НЕ. Но чтобы вам тут все это рассказать нужно примерно 1 семестр времени и сотня килобайт текста.
  10. Вообще-то АЦП везде ОДИН. Входы - мультиплексируются. Номер входа никак не связан с завершением преобразования. АЦП глубоко наплевать по какому входу пришла аналоговая информация.
  11. Про цвет люди спрашивают, чтобы узнать падение напряжение на диоде. У синих оно существенно больше.
  12. Вы лучше программу попробуйте написать для начала без вызовов подпрограмм. Сомнения сильные охватывают. Что удастся. По поводу хальта - вам экономия не нужна. По хальту можно сделать завершение алгоритма, по ресету (кнопка готовности) - начало. Заодно избавитесь от необходимости всякие дребезки убирать. Хотя их и не сильно нужно убирать.
  13. Насколько я припоминаю контроллер прерываний выставляет на шину данных адрес обработчика (или вектор). Или номер. Уже не помню. Но то, что что-то высталяет на шину - точно помню. Если адрес - то тогда да, ничего не забъешь. Вроде вспомнил. Он выставляет код CD (вызов подпрограммы CALL), а потом 2 байта адреса. Значит, если резюками создать слабые подтяжки вверх и вниз, то можно симитировать обработчик прерывания по адресу CDCD. Вот так примерно.
  14. Контроллер прерывания необязателен. Просто все вектора надо забить одинаковым значением. Какой-нибудь да сработает.
  15. Проще завести эту кнопку на РЕСЕТ. Тем более, что прерывания требуют ОЗУ. Которого у вас нет.
  16. http://ww1.microchip.com/downloads/en/AppNotes/01064A.pdf Вот тут все описано. Максимальная длительно стабильного интервала у вас буде 1.7 мс. Это для RC5. У Сони битовый интервал тоже где-то в этих пределах. Вот сделайте так, чтобы таймер заполнялся (пока) за 2 миллисекунды. Т.е. на вход ему надо дать частоту 500 ГЦ*256=128 Кгц примерно.
  17. Не путайте человека. Окончание интервала со стабильным значением бита определяется сменой этого самого значения. Таймер вообще не причем. А, бит, конечно не имеет размерности времени, пока лежит в памяти. А вот при передаче уже имеет размерность времени. Объясняю еще раз. Сначала накапливаем интервал, а потом режем его на один или несколько бит, в зависимости от длины. Таким образом мы всего лишь скокращаем необходимую память для хранения принятой посылки. Но заодно и решае проблему сравнения интервалов, если бы мы не превращали эти интервалы в биты. Ибо тогда пришлось бы как-то округлять эти интервалы при сравнении. Ибо раз от раза они будут все равно разными.
  18. БИТ, Клим, характеризуется не только ЗНАЧЕНИЕМ, но и ДЛИТЕЛЬНОСТЬЮ!!!! Вы описываете меандр. Настроить таймер на максимальную частоту. Но так, чтобы дительность самого большого интервала с постоянным уровнем укладывалась в 255 единиц инкремента таймер. Никаких прерываний от таймера. Таймер просто считывается в нужные моменты и обнуляется. Если есть возможность, то вход с приемника сделать прерыванием по изменению уровня. Тогда на каждое прерывание такого рода вы будете считывать число из таймера и потом обнулять таймер. Дальше по алгоритму.
  19. Отличается степенью доходчивости до клиента. Ибо если так непонятно, то надо объяснять сяк. Или эдак. До получения результата. 10101010101 - не такая. Против этого я возражал и возражаю.
  20. Вы что-то имеет против документации? 3.4 вольта минимум, 4.5 максимум. Гарантирую, что это условие товарищ не соблюл.
  21. НЕТТТ!!! Еще раз. 1. Засекаете переход, например в ноль. 2. Включаете таймер. 3. Ждем переход в 1 4. Записываем длительность посылки и обнуляем таймер 5. Ждем переход в ноль 6. Записываем длительность посылки, обнуляем таймер. Гоу то пункт 3. Каждое число полученное в ПРОЦЕССЕ будет говорить о КОЛИЧЕСТВЕ 0 или 1 на конкретном участке. А не ОБ ОДНОМ НУЛЕ ИЛИ ЕДИНИЦЕ. Зная длительность минимального импулься можно расчитать, сколько нулей или единиц содержится в КАЖДОМ ИЗ ПОЛУЧЕННЫХ ЧИСЕЛ!!! Ясно? -- Пример. Длительность нуля 150 Длительность 1 - 200 Длительность 0 -30 Длительность 1 60 .... Из этого делаем вывод что сначала пришло 5 нулей потом 7 единиц потом один НОЛЬ потом 2 единицы. Понятно???? Кода у меня нет. Убил давно.
  22. Нормальный паскаль. Попробовал. Очень нормально. Токо не понял, в каком месте начнет таблетку просить...
  23. 1. Нам неизвестна природа посылки. 2. Нам неизвестна скорость передачи 3. Единственное, что мы знаем наверняка, это то, что из приемника выходит некая последовательность уровней. Эти последовательности обычно разделены паузой. Все. Записывая же напрямую битовую последовательность, мы можем напороться (и скорее всего напоремся) на ЛИШНИЕ или недостающие биты (из-за незнания точной скорости и из-за неумение ее точно поддерживать, как нами так и передатчиком). То, как я описал - я лично делал. Работало со всеми пультами, которые видел приемник. Т.е. обучаемость была очень высокая. С полтыка.
  24. У вашего ПРИЕМНИКА определение 0 и 1 соответсвующее ИМЕННО ЭТОМУ приемнику. Приемник просто демодулирует посылку. А вы превращаете эту посылку в список длительностей. Скажем, в посылке 30 бит. Значит длина массива с длительностями будет где-нибудь 60 байт. (Первую длинную можно не учитывать, а использовать как признак начала посылки). Если столько места нет, то превращать эти длительности тупо в биты. Например, замерили вы следущее: 100, 30, 47, 210, 150 каких нибудь единиц времени. Видим, что минимальная длительность бита - 30. значит превращаем эти числа в биты: 11101000000011111 - уже намного короче. И делать это можно по ходу действия. Только заранее забить минимальную длительность бита. Можно брать реальную (будет точнее), а можно и от балды.