Part Number: LAUNCHXL-CC2640R2
Other Parts Discussed in Thread: SYSBIOS
Hello everyone,
I have a LaunchXL-CC2640R2 here that I need to attach to an unknown 4-mux segmented display. To test that I'm going to control one segment at a time so I can make a list which segment belongs to which backplane and segment drive. However I have some problems configuring the output pins:
/*---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);
This code runs fine and without problems, the interrupts registered to the BUTTON0 (IOID_13) and BUTTON1 (IOID_14) pins work well. The following code runs also, but only until PIN_SEG11 is written:
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);*/
Afterwards my interrupts don't trigger anymore. As you can see, the problem occurs when PIN_SEG11 aka IOID_23 aka A0 pin is written. But as I saw in other codes, it is possible to use those analog pins as a digital output. Do I have to remove some code somewhere to disable the analog features first? My program is based on the "empty_CC2640R2_LAUNCHXL_tirtos_ccs" example. Below my empty.cfg-file to enable System_printf() output:
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;
}
Thanks a lot in advance for helping me out here! (:
best wishes from Germany,
Nico