Thread 中讨论的其他器件: SYSBIOS
大家好、
我在这里有一个 LaunchXL-CC2640R2、我需要将其连接到未知的4路复用分段式显示屏。 为了测试我将一次控制一个段、以便我可以列出哪个段属于哪个背板和段驱动。 但是、配置输出引脚时遇到一些问题:
/*---PIN DEFINITIONS---*/ #define PIN_COM0 IOID_0 #define PIN_COM1 IOID_1 #define PIN_COM2 IOID_2 #define PIN_COM3 IOID_3 #define PIN_SEG0 IOID_4 #define PIN_SEG1 IOID_5 #define PIN_SEG2 IOID_6 #define PIN_SEG3 IOID_11 #define PIN_SEG4 IOID_12 #define PIN_SEG5 IOID_15 #define PIN_SEG6 IOID_18 #define PIN_SEG7 IOID_19 #define PIN_SEG8 IOID_20 #define PIN_SEG9 IOID_21 #define PIN_SEG10 IOID_22 #define PIN_SEG11 IOID_23 #define PIN_SEG12 IOID_24 #define PIN_SEG13 IOID_25 #define PIN_SEG14 IOID_26 #define PIN_SEG15 IOID_27 #define PIN_SEG16 IOID_28 #define PIN_SEG17 IOID_29 #define PIN_SEG18 IOID_30 #define PIN_SEG19 IOID_7 GPIO_setConfig(PIN_COM0, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_COM1, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_COM2, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_COM3, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG0, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG1, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG2, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG3, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG4, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG5, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG6, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG7, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG8, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG9, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG10, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG11, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG12, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG13, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG14, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG15, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG16, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG17, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG18, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW); GPIO_setConfig(PIN_SEG19, GPIO_CFG_OUT_STD | GPIO_CFG_OUT_LOW);
此代码运行正常且没有问题、注册到 BUTTON0 (IOID_13)和 BUTTON1 (IOID_14)引脚的中断运行良好。 以下代码也会运行、但仅在 PIN_SEG11被写入前运行:
GPIO_write(PIN_COM0, true); GPIO_write(PIN_COM1, true); GPIO_write(PIN_COM2, true); GPIO_write(PIN_COM3, true); GPIO_write(PIN_SEG0, true); GPIO_write(PIN_SEG1, true); GPIO_write(PIN_SEG2, true); GPIO_write(PIN_SEG3, true); GPIO_write(PIN_SEG4, true); GPIO_write(PIN_SEG5, true); GPIO_write(PIN_SEG6, true); GPIO_write(PIN_SEG7, true); GPIO_write(PIN_SEG8, true); GPIO_write(PIN_SEG9, true); GPIO_write(PIN_SEG10, true); //still running GPIO_write(PIN_SEG11, true); //here lies my problem GPIO_write(PIN_SEG12, true); GPIO_write(PIN_SEG13, true); GPIO_write(PIN_SEG14, true); GPIO_write(PIN_SEG15, true); GPIO_write(PIN_SEG16, true); GPIO_write(PIN_SEG17, true); GPIO_write(PIN_SEG18, true); GPIO_write(PIN_SEG19, true);*/
之后、我的中断不再触发。 如您所见、当 PIN_SEG11也称为 IOID_23又称为 A0引脚被写入时、就会出现此问题。 但是、正如我在其他代码中看到的、可以将这些模拟引脚用作数字输出。 我是否必须删除某个位置的一些代码才能首先禁用模拟功能? 我的程序基于"empty_CC2640R2_LAUNCHXL_tirtos_ccs"示例。 在我的 empty.cfg-file 下启用 System_printf()输出:
utils.importFile("C:/ti/simplelink_cc2640r2_sdk_5_10_00_02/source/ti/ble5stack/common/cc26xx/kernel/cc2640/config/cc2640_r2_csdk.cfg");
/*
* Extend the cc2640 configuration
*/
var SysStd = xdc.useModule("xdc.runtime.SysStd");
var System = xdc.useModule("xdc.runtime.System");
System.SupportProxy = SysStd;
System.extendedFormats = '%$L%$S%$F%f';
/* ================ POSIX configuration ================ */
var Settings = xdc.useModule('ti.sysbios.posix.Settings');
if (Program.build.target.$name.match(/iar/)) {
var MultithreadSupport = xdc.useModule('ti.sysbios.rts.iar.MultithreadSupport');
MultithreadSupport.enableMultithreadSupport = false;
}
提前非常感谢您的帮助! (:
德国的最佳祝愿
Nico