/* XDCtools Header files */ #include #include /* BIOS Header files */ #include #include /* TI-RTOS Header files */ #include /* Example/Board Header files */ #include "Board.h" #include #include #include #include #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "driverlib/debug.h" #include "driverlib/fpu.h" #include "driverlib/gpio.h" #include "driverlib/pin_map.h" #include "driverlib/rom.h" #include "driverlib/sysctl.c" #include "driverlib/sysctl.h" #include "driverlib/adc.c" #include "driverlib/uart.c" #include "utils/uartstdio.h" #include "driverlib/interrupt.c" #include "driverlib/pwm.c" #include "inc/hw_ints.h" #include "driverlib/timer.c" #include "driverlib/udma.h" #include "inc/hw_udma.h" #include "inc/hw_uart.h" #include "driverlib/systick.h" //declare functions void lightSensorTest(void); void ConfigureUART(void); void lightSensorCalculation(void); /* variable to be read by GUI Composer */ int count = 0; void ConfigureUART(void) { /* Enable the clocks to PortB and UART1 */ SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); SysCtlPeripheralEnable(SYSCTL_PERIPH_UART1); /* Configure PortB pins 0 & 1 for UART1 RX & TX, respectively */ GPIOPinConfigure(GPIO_PB0_U1RX); GPIOPinConfigure(GPIO_PB1_U1TX); GPIOPinTypeUART(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1); /* Set the UART1 module's clock source */ UARTClockSourceSet(UART1_BASE, UART_CLOCK_PIOSC); UARTConfigSetExpClk(UART1_BASE, SysCtlClockGet(), 115200, (UART_CONFIG_WLEN_8 | UART_CONFIG_STOP_ONE | UART_CONFIG_PAR_NONE)); /* Configure UART1 */ // UART module: 1 // Baud rate: 115200 // UART clock speed: 16 [MHz] UARTStdioConfig(1, 115200, 16000000); UARTIntEnable(UART1_BASE, UART_INT_RX | UART_INT_TX); } /* * ======== gpioButtonFxn0 ======== * Callback function for the GPIO interrupt on Board_BUTTON0. */ void gpioButtonFxn0(unsigned int index) { /* Clear the GPIO interrupt and toggle an LED */ GPIO_toggle(Board_LED0); if (count++ == 100) { count = 0; } } void lightSensorTest(void) { GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_4); GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_4, 0x00000010); SysTickPeriodSet(1000); SysTickEnable(); SysCtlDelay(100); GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4); } void lightSensorCalculation(void) { uint32_t lightSensorValue = 0; lightSensorValue = SysTickValueGet(); UARTprintf("%d\n", lightSensorValue); HWREG(NVIC_ST_CURRENT) = 1; SysTickDisable(); } /* * ======== main ======== */ int main(void) { /* Call board init functions */ Board_initGeneral(); Board_initGPIO(); Board_initUART(); ConfigureUART(); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); /* Turn on user LED */ GPIO_write(Board_LED0, Board_LED_ON); UARTprintf("Beginning program\n"); GPIOIntTypeSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_LOW_LEVEL); /* install Button callback */ GPIO_setCallback(GPIO_PIN_4, lightSensorCalculation); /* Enable interrupts */ GPIO_enableInt(GPIO_PIN_4); /* Start BIOS */ BIOS_start(); return (0); }