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

Evgeny

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

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

  • Посещение

Репутация

0 Обычный

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

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

Информация

  • Город
    Array

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

577 просмотров профиля
  1. Хм, только сейчас меня посетила мысль, что нужно использовать инверторы 74HC14. По цоколовке они такие же, а на входе есть триггер Шмитта. Это здорово должно помочь.
  2. Это чисто домашний любительский проект. Да и кодинг для меня - хобби, т.е. уровень соответствующий. Потому мне и выгоднее немного уложнить схемотехнику, упростив при этом программу.
  3. Нет, полностью устраивает. Всего-то три копеечных микры и несколько квадратных см тектолита.
  4. Спасибо, конечно, за ответ, то мне такой метод не подходит. Во-первых, я уже изготовил печатку, а во-вторых - мне удобнее и проще сразу считать BCD-код через порт. 🙂
  5. Здравствуйте. 😀 Мне нужно с помощью МК определять замкнутый контакт галетника. Решил применить микросхему-шифратор. Набросал схемку, спаял. Если что - резистивные делители и инверторы нужны для согласования, т.к. с галетника в моем случае приходит +12В, а активный вход 555ИВ3 выбирается нулем. Выходы шифратора читаю по прерыванию таймера, отбрасывая при этом состояния, когда они все в 1, т.е. ни один из входов не активен. Такой метод работает, ложных срабатываний не получаю. Но у меня сомнения - а не нужно ли здесь применять еще и софтовое подавление дребезга? На первый дилетантский взгляд, мне кажется, что не нужно, т.к. дребезг уже фильтруется проверкой на 0x0F, а по-другому он здесь не проявляется. Что скажут уважаемые профессионалы? Я правильно думаю?
  6. Благодарю ответивших! Наверное, так и придется пробовать опытным путем замерять скорость вычислений по разным методам.
  7. Всех приветствую! Я делаю (во всяком случае, пытаюсь) генератор + ГКЧ на связке Silabs Si570 и МК C8051F310. Методику расчета делителей для вывода частоты я освоил, читать-писать регистры сишки научился. Сейчас у меня возник вопрос по конкретной реализации кода для 8051. Господа из Силабса дают вот такой образец программы для демонстрации работы генератора. Переменные для хранения частот и значения множителя опорника RFREQ у них использованы типа float (т.к. double вообще не поддерживается этим МК). В итоге получается некоторая потеря точности. У меня лично есть идея взять за основу линуксовый драйвер https://github.com/torvalds/linux/blob/master/drivers/clk/clk-si570.c Там все типы данных целочисленные, но нужно будет делить числа типа u64 друг на друга. Скажите, пожалуйста, - такую математику есть смысл применять на 8051 или же вычисления будут слишком медленные? Мне ведь частоту нужно будет "на лету" перестраивать. Или же метод вычислений от производителя правильнее?
  8. Да, с английским дружу. Изучу материал. Правда, мне попадался подобный, только более "дубовый" метод от Cypress. https://www.infineon.com/dgdl/Infineon-AN2034_PSoC_1_Reading_Matrix_and_Common_Bus_Keypads-ApplicationNotes-v07_00-EN.pdf?fileId=8ac78c8c7cdc391c017d073254b85689
  9. Проект находится на ранней-ранней стадии. У меня чисто хоббийный уровень. Я многого не знаю и изучаю параллельно возникающим проблемам. Пока сделана только индикация переменной, энкодер и опрос клавиш. В основном цикле main проверка флагов нажатия новой клавиши и переключения энкодера. Сами процедуры опроса именно в обработчике. "Синтезаторную" часть вообще еще не трогал. Да, кажется, я понял свою ошибку. Буду переделывать. Попробую вынести функции в основной цикл. Спасибо еще раз. И извиняюсь за глупые вопросы.
  10. У меня изначально почти так и сделано, см. первое сообщение. Наверное, нужно подробно описать что за девайс я делаю. Это генератор с функцией качания частоты на микре Si570, МК я уже писал какой используется - C8051F310. Ввод частоты я хочу сделать прямой (с клавиатуры) + механический энкодер. Вывод на семисегментный индикатор. Переключение частот при качании + управление ЦАПом для генерации пилы явно нужно делать по прерыванию таймера. Вот я и думаю, что запихивать динамическую индикацию + опрос кнопок + управление синтезатором в обработчик прерывания по таймеру будет не совсем правильно. Наверняка временнЫе интервалы тогда не будут выдерживаться. Вот мне и нужна помощь с алгоритмом - как грамотно распределить управление всем этих хозяйством.
  11. Я планирую сразу же запрещать внешнее прерывание и запускать счетчик. А уж после того, как дребезг пройдет и опрос клавиш проведен, разрешать его вновь. Так тоже некорректно будет?
  12. Спасибо за разъяснения. Тогда, пожалуй, переделаю под опрос по INT0, а по прерыванию таймера у меня будет выполняться только динамическая индикация.
  13. Благодарю всех ответивших! Не совсем ясно про опрос клавиатуры в основном цикле. Получается, просто бесконечно выполняем сканирование? И еще вопрос - а на сколько жизнеспособен метод опроса с внешними прерываниями? Взять элемент 4И-НЕ, подключить к столбцам клавиатуры, выход на INT0. При изменении состояния любой кнопки генерируется прерывание. Отключаем INT0, запускаем счетчик, чтобы переждать дребезг, потом опрашиваем клавиатуру. Делают так на практике в реальных конструкциях? Мне достаточно лишь различать короткое и длительное нажатие, не более того.
  14. У меня Silabs C8051F310 используется. Так что РТОС здесь отпадает. ))) А за пример кода спасибо, попробую разобраться.
×
×
  • Создать...