Современная электроника №2/2022
ИНЖЕНЕРНЫЕ РЕШЕНИЯ 38 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 2 2022 че (на рис. 15а она показана условно). После этого входы EXTCLK, CLU2_A_IN, CLU1_A_IN и PCA0_ECI настроить как цифровые входы (Digital OpenDrain I/O), а выходы CLU1_ASINC_OUT, CLU3_ ASINC_OUT и порт P1.6, по которо- му осуществляется вывод количества импульсов N в частотомер, настроить как цифровые выходы (Digital Push-Pull Output). Пример – на рис. 16. На этом настройка всех устройств закончена. Далее необходимо все настройки записать, для чего нажать кнопку с двойной дискетой в левом верхнем углу меню. При этом все настройки запишутся, и автоматически сгенери- руется файл InitDevice.c уже на языке C51. Далее в верхнем меню необходи- мо выбрать опцию Project, а в нём – подопцию Build Project и нажать на неё. Тогда произойдёт трансляция всей программы и сгенерируется файл загрузочного формата EFM8LB1_ Configurable_Logic_AND_3.hex, кото- рый уже можно запрограммировать в МК. Текст основной программы EFM8LB1_Configurable_Logic_AND.c и оттранслированная программа EFM8LB1_Configurable_Logic_AND_3. hex приведены в дополнительных материалах к статье на сайте жур- нала. Настройка устройств для второй программы, предназначенной для измерения частоты, более простая. Она отличается от первой только настройкой CLU2 и CLU3 (рис. 17), таймеров T3 и T4 (рис. 18) и пор- тов (рис. 19). Подробно описывать эти настройки, на взгляд автора, нет смысла, поскольку на рис. 17–19 всё уже указано. Необходимо обратить внимание в настройке таймеров (рис. 18) на то, что таймеры запускаются уже в режи- ме инициализации (Run Control – Start). Это означает, что при включении пита- ния программа сразу начинает рабо- тать и выдавать сигналы с частотами, которые требуется измерить (1 МГц и 100 КГц). В настройке портов (рис. 19) выхо- ды CLU (CLU2_ASINC_OUT, CLU3_ ASINC_OUT) необходимо настроить как цифровые выходы (Digital Push- Pull Output), а вход внешнего генерато- ра EXTCLK – как цифровой вход (Digital OpenDrain I/O). Основная программа для этого слу- чая – вообще «никакая»: void main (void) { enter_DefaultMode_from_RESET(); while (1) {} } Первым оператором она вызывает программу инициализации устройства InitDevice.c (enter_DefaultMode_from_ RESET();), а второй оператор (while (1) {}) бесконечно обращается к само- му себе. Это означает, что процессор МК участие в программе не принимает, Рис. 16. Примеры установки входных и выходных свойств портов: а) вход с открытым стоком (Digital OpenDrain I/O); б) пушпульный выход (Digital Push-Pull Output) Рис. 17. Настройка CLU2 (a) и CLU3 (б) Рис. 18. Настройка таймеров Т3 (а) и Т4 (б) а а а б б б
RkJQdWJsaXNoZXIy MTQ4NjUy