/* * ======== EK_TM4C123GXL_initGPIO ======== */ void EK_TM4C123GXL_initGPIO(void) { /* Setup the LED GPIO pins used */ GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1); /* EK_TM4C123GXL_LED_RED */ GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_2); /* EK_TM4C123GXL_LED_GREEN */ GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_3); /* EK_TM4C123GXL_LED_BLUE */ /* Setup the button GPIO pins used */ GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4); /* EK_TM4C123GXL_GPIO_SW1 */ GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_4, GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD_WPU); /* PF0 requires unlocking before configuration */ HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; HWREG(GPIO_PORTF_BASE + GPIO_O_CR) |= GPIO_PIN_0; GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_0); /* EK_TM4C123GXL_GPIO_SW2 */ GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_0, GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD_WPU); HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_M; /* Once GPIO_init is called, GPIO_config cannot be changed */ GPIO_init(); GPIO_write(EK_TM4C123GXL_LED_RED, EK_TM4C123GXL_LED_OFF); GPIO_write(EK_TM4C123GXL_LED_GREEN, EK_TM4C123GXL_LED_OFF); GPIO_write(EK_TM4C123GXL_LED_BLUE, EK_TM4C123GXL_LED_OFF); }
void setup(void){ //Enable the driver layer SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); //Pinout connections: // GPIOPinTypeGPIOInput(GPIO_PORTA_BASE,GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); GPIOIntTypeSet(GPIO_PORTA_BASE, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,GPIO_FALLING_EDGE); GPIOPinTypeGPIOInput(GPIO_PORTB_BASE,GPIO_PIN_4); GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_4, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); GPIOIntTypeSet(GPIO_PORTB_BASE,GPIO_PIN_4,GPIO_FALLING_EDGE); GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE,GPIO_PIN_5|GPIO_PIN_4); GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE,GPIO_PIN_1|GPIO_PIN_0); GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE,GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_3); GPIOPinIntEnable(GPIO_PORTA_BASE, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); GPIOPinIntEnable(GPIO_PORTB_BASE,GPIO_PIN_4); IntMasterEnable(); IntEnable(INT_GPIOA); IntEnable(INT_GPIOB); GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_0, 0); GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_1, 0); GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_4, 0); GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_5, 0); }
/* * ======== EK_TM4C123GXL_initI2C ======== */ void EK_TM4C123GXL_initI2C(void) { /* I2C1 Init */ /* Enable the peripheral */ SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C1); /* Configure the appropriate pins to be I2C instead of GPIO. */ GPIOPinConfigure(GPIO_PA6_I2C1SCL); GPIOPinConfigure(GPIO_PA7_I2C1SDA); GPIOPinTypeI2CSCL(GPIO_PORTA_BASE, GPIO_PIN_6); GPIOPinTypeI2C(GPIO_PORTA_BASE, GPIO_PIN_7); /* I2C3 Init */ /* Enable the peripheral */ SysCtlPeripheralEnable(SYSCTL_PERIPH_I2C3); /* Configure the appropriate pins to be I2C instead of GPIO. */ GPIOPinConfigure(GPIO_PD0_I2C3SCL); GPIOPinConfigure(GPIO_PD1_I2C3SDA); GPIOPinTypeI2CSCL(GPIO_PORTD_BASE, GPIO_PIN_0); GPIOPinTypeI2C(GPIO_PORTD_BASE, GPIO_PIN_1); /* * These GPIOs are connected to PD0 and PD1 and need to be brought into a * GPIO input state so they don't interfere with I2C communications. */ GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_6); GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_7); I2C_init(); }
void main(void) { SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_1); GPIOPinTypeGPIOInput(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3); GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_0); /* led */ GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); GPIOPadConfigSet(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); GPIOIntTypeSet(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3, GPIO_RISING_EDGE); GPIOIntTypeSet(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_RISING_EDGE); GPIOPinIntEnable(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3); GPIOPinIntEnable(GPIO_PORTF_BASE, GPIO_PIN_1); IntMasterEnable(); IntEnable(INT_GPIOE); IntEnable(INT_GPIOF); GPIOPinIntClear(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3); GPIOPinIntClear(GPIO_PORTF_BASE, GPIO_PIN_1); while(1) { } }
/* * ======== EK_TM4C123GXL_initSDSPI ======== */ void EK_TM4C123GXL_initSDSPI(void) { /* Enable the peripherals used by the SD Card */ SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2); /* Configure pad settings */ GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_4 | GPIO_PIN_7, GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD); GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_6, GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD_WPU); GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_5, GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD); GPIOPinConfigure(GPIO_PB4_SSI2CLK); GPIOPinConfigure(GPIO_PB6_SSI2RX); GPIOPinConfigure(GPIO_PB7_SSI2TX); /* * These GPIOs are connected to PB6 and PB7 and need to be brought into a * GPIO input state so they don't interfere with SPI communications. */ GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_0); GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_1); SDSPI_init(); }
/** Sets module IOs to be INPUTs so an external programmer can communicate with the module * PC4 = Chip Select * PD5 = MRST * PA2,4,5 = SPI Signals * */ void halDisableModuleInterface() { printf("NOTE: DISABLING MODULE INTERFACE\r\nRESET GATEWAY TO RESTORE\r\n"); GPIOPinTypeGPIOInput(GPIO_PORTC_BASE, GPIO_PIN_4); GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_5); GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, (GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5)); }
void UART_Disable(tUART* uart) { // Disable UART UARTDisable(uart -> base); // Set GPIO Pin Mux GPIOPinTypeGPIOInput(pins[uart -> tx_pin].port.base, pins[uart -> tx_pin].offset); GPIOPinTypeGPIOInput(pins[uart -> rx_pin].port.base, pins[uart -> rx_pin].offset); }
void sense_init() { //// chiller, door, (power) GPIOPinTypeGPIOInput(SENSE_PORT, SENSE_MASK); GPIOPadConfigSet(SENSE_PORT, SENSE_MASK, GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD_WPU); //// x1_lmit, x2_limit, y1_limit, y2_limit, z1_limit, z2_limit GPIOPinTypeGPIOInput(LIMIT_PORT, LIMIT_MASK); GPIOPadConfigSet(LIMIT_PORT, LIMIT_MASK, GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD_WPU); }
void IoPortInit(void) { // // Enable the GPIO block. // SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); //SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); //SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); //SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); //SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG); //SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ); // 要解锁只需要在配置GPIO前加入下面代码就可以了: // Unlock GPIO Commit GPIOAFSEL HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = 0x4C4F434B; // Manually Write CR Register for PB7 HWREG(GPIO_PORTB_BASE + GPIO_O_CR) |= (1 << 7); // HWREG(GPIO_PORTB_BASE + GPIO_O_LOCK) = 0x1; // // Set GPIO D7 as an output. This drives an LED on the board that will // toggle when a watchdog interrupt is processed. // GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, PIN_AD7705_RST|PIN_AD7705_CS|PIN_AD7705_DIN|PIN_AD7705_SCLK);// GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, PIN_AD7367_ADDR|PIN_AD7367_CNVST|PIN_AD7367_CS|PIN_AD7367_SCLK); //GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, PIN_200X|PIN_2KX | PIN_20KX |PIN_3X); GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, PIN_JUN|PIN_JUX|PIN_JRTG|PIN_JUNX); //GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, PIN_20N | PIN_200N | PIN_2KN ); //GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE, PIN_20KN |PIN_NX | PIN_filterPASS|PIN_3N |PIN_ADC_ADDR|PIN_ADC_RANGE0); //GPIOPinTypeGPIOOutput(GPIO_PORTH_BASE, PIN_CE6963|PIN_CD6963|PIN_RD6963|PIN_WR6963); GPIOPinTypeGPIOOutput(GPIO_PORTJ_BASE, PIN_JR); GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, PIN_AD7705_DRDY|PIN_AD7705_DOUT);// GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, PIN_AD7367_DOUTB|PIN_AD7367_BUSY); // GPIOPinTypeGPIOInput(GPIO_PORTC_BASE,PIN_ADC_BUSY); // GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, PIN_KEY1 | PIN_KEY2 | PIN_KEY3 | PIN_KEY4); // GPIOPinTypeGPIOInput(GPIO_PORTE_BASE, PIN_keyback| PIN_keydown|PIN_keyprint|PIN_keyset|PIN_keystart|PIN_keyup); // GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, PIN_ISP2); // GPIOPinTypeGPIOInput(GPIO_PORTG_BASE, PIN_ADC_DOUTA ); // GPIOPinTypeGPIOInput(GPIO_PORTH_BASE, ); // GpioIntInit(); // Led1Write(0); // Led2Write(0); }
void GPIO_Init() { //INPUTS: PB2 - ENABLE READ / PD1 - COUNT SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_2); GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_1); //CONFIGURE GPIO INTERRUPT (PD1 RISE AND DOWN) GPIOIntTypeSet(GPIO_PORTD_BASE,GPIO_PIN_1,GPIO_BOTH_EDGES); GPIOIntRegister(GPIO_PORTD_BASE,GPIODIntHandler); GPIOIntEnable(GPIO_PORTD_BASE, GPIO_INT_PIN_1); }
void KEYPAD_init(){ SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); GPIOPinTypeGPIOInput( GPIO_PORTE_BASE, GPIO_PIN_0); /*pin 0*/ GPIOPadConfigSet( GPIO_PORTE_BASE, GPIO_PIN_0 , GPIO_STRENGTH_2MA , GPIO_PIN_TYPE_STD_WPU); GPIOPinTypeGPIOInput( GPIO_PORTE_BASE, GPIO_PIN_1); /*pin 1*/ GPIOPadConfigSet( GPIO_PORTE_BASE, GPIO_PIN_1 , GPIO_STRENGTH_2MA , GPIO_PIN_TYPE_STD_WPU); GPIOPinTypeGPIOInput( GPIO_PORTE_BASE, GPIO_PIN_2); /*pin 2*/ GPIOPadConfigSet( GPIO_PORTE_BASE, GPIO_PIN_2 , GPIO_STRENGTH_2MA , GPIO_PIN_TYPE_STD_WPU); GPIOPinTypeGPIOInput( GPIO_PORTE_BASE, GPIO_PIN_3); /*pin 3*/ GPIOPadConfigSet( GPIO_PORTE_BASE, GPIO_PIN_3 , GPIO_STRENGTH_2MA , GPIO_PIN_TYPE_STD_WPU); }
void Init_GPIO() { SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG); GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_6); GPIOPinTypeGPIOInput(GPIO_PORTD_BASE, GPIO_PIN_7); GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_4); GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_5); GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_4); GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE, GPIO_PIN_0); }
void switchPinConfig(void) { // Following two line removes the lock from SW2 interfaced on PORTF Pin0 -- leave this unchanged LOCK_F=0x4C4F434BU; CR_F=GPIO_PIN_0|GPIO_PIN_4; // GPIO PORTF Pin 0 and Pin4 GPIODirModeSet(GPIO_PORTF_BASE,GPIO_PIN_4,GPIO_DIR_MODE_IN); // Set Pin-4 of PORT F as Input. Modifiy this to use another switch GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4); GPIOPadConfigSet(GPIO_PORTF_BASE,GPIO_PIN_4,GPIO_STRENGTH_12MA,GPIO_PIN_TYPE_STD_WPU); GPIODirModeSet(GPIO_PORTF_BASE,GPIO_PIN_0,GPIO_DIR_MODE_IN); // Set Pin-4 of PORT F as Input. Modifiy this to use another switch GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_0); GPIOPadConfigSet(GPIO_PORTF_BASE,GPIO_PIN_0,GPIO_STRENGTH_12MA,GPIO_PIN_TYPE_STD_WPU); }
/*0->output 1->input*/ void mdc_gpio_set_dir(mdc_slot_t slot, uint8 dir) { switch(slot){ case SLOT_1: if(dir == 0){ GPIOPinTypeGPIOOutput(GPIO1M0_PORT, GPIO1M0_PIN); GPIOPinTypeGPIOOutput(GPIO2M0_PORT, GPIO2M0_PIN); GPIOPinTypeGPIOOutput(GPIO3M0_PORT, GPIO3M0_PIN); GPIOPinTypeGPIOOutput(GPIO4M0_PORT, GPIO4M0_PIN); }else{ GPIOPinTypeGPIOInput(GPIO1M0_PORT, GPIO1M0_PIN); GPIOPinTypeGPIOInput(GPIO2M0_PORT, GPIO2M0_PIN); GPIOPinTypeGPIOInput(GPIO3M0_PORT, GPIO3M0_PIN); GPIOPinTypeGPIOInput(GPIO4M0_PORT, GPIO4M0_PIN); } break; case SLOT_2: if(dir == 0){ GPIOPinTypeGPIOOutput(GPIO1M1_PORT, GPIO1M1_PIN); GPIOPinTypeGPIOOutput(GPIO2M1_PORT, GPIO2M1_PIN); GPIOPinTypeGPIOOutput(GPIO3M1_PORT, GPIO3M1_PIN); GPIOPinTypeGPIOOutput(GPIO4M1_PORT, GPIO4M1_PIN); }else{ GPIOPinTypeGPIOInput(GPIO1M1_PORT, GPIO1M1_PIN); GPIOPinTypeGPIOInput(GPIO2M1_PORT, GPIO2M1_PIN); GPIOPinTypeGPIOInput(GPIO3M1_PORT, GPIO3M1_PIN); GPIOPinTypeGPIOInput(GPIO4M1_PORT, GPIO4M1_PIN); } break; default: break; } }
void confGPIO(){ //Inicializa el puerto F (LEDs) --> No hace falta si usamos la libreria RGB // ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); // ROM_GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); //ROM_GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, 0); //LEDS APAGADOS ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); GPIOPinTypeGPIOInput(GPIO_PORTE_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_GPIOE); //Inicializa los LEDs usando libreria RGB RGBInit(1); SysCtlPeripheralSleepEnable(GREEN_TIMER_PERIPH); SysCtlPeripheralSleepEnable(BLUE_TIMER_PERIPH); RGBEnable(); //Inicializamos los botones y su interrupción SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); ButtonsInit(); GPIOIntClear(GPIO_PORTF_BASE, GPIO_INT_PIN_0|GPIO_INT_PIN_4); GPIOIntRegister(GPIO_PORTF_BASE,ButtonHandler); GPIOIntTypeSet(GPIO_PORTF_BASE,GPIO_INT_PIN_0|GPIO_INT_PIN_4, GPIO_BOTH_EDGES); GPIOIntEnable(GPIO_PORTF_BASE, GPIO_INT_PIN_0|GPIO_INT_PIN_4); SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_GPIOF); }
/***************************************************** * Function: init_BtnHandler * Description: Initializes button interrupt * Initializes timer for button counter * Input: NONE * Output: NONE *****************************************************/ void init_BtnHandler(void) { // Unlock un-maskable pin HWREG(BTN_OVERRIDE_REG + GPIO_O_LOCK) = GPIO_LOCK_KEY; // Set up our interrupt for button presses IntMasterDisable(); // Disable all interrupts GPIOIntDisable(BTN_OVERRIDE_REG, BTN_OVERRIDE); GPIOPinTypeGPIOInput(BTN_OVERRIDE_REG, BTN_OVERRIDE); GPIOPadConfigSet(BTN_OVERRIDE_REG, BTN_OVERRIDE, GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD_WPU); // Set Pull-up GPIOIntTypeSet(BTN_OVERRIDE_REG, BTN_OVERRIDE, GPIO_BOTH_EDGES); // Set edge to trigger on GPIOIntClear(BTN_OVERRIDE_REG, BTN_OVERRIDE); // Clear the interrupt bit GPIOIntEnable(BTN_OVERRIDE_REG, BTN_OVERRIDE); // Enable the interrupt IntEnable(INT_GPIOE); // Lock un-maskable pin HWREG(BTN_OVERRIDE_REG + GPIO_O_LOCK) = 0; // Setup timer interrupt for button pressing // This timer will run up and when it is released we will check how long it was running SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0); TimerConfigure(BTN_OVERRIDE_TIM_BASE, TIMER_CFG_PERIODIC); // Setup interrupt as 32 bit timer counting up TimerLoadSet(BTN_OVERRIDE_TIM_BASE, BTN_OVERRIDE_TIM, clockTime/1000); // Load Timer IntEnable(INT_TIMER0A); TimerIntEnable(BTN_OVERRIDE_TIM_BASE, TIMER_TIMA_TIMEOUT); // Turn the input pin to the button high GPIOPinTypeGPIOOutput(BTN_OVERRIDE_CONTROL_REG, BTN_OVERRIDE_CONTROL); GPIOPinWrite(BTN_OVERRIDE_CONTROL_REG, BTN_OVERRIDE_CONTROL, BTN_OVERRIDE_CONTROL); }
void i2c_init() { // Trying to get around this damn I2C lockup issue GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE, GPIO_PIN_0); GPIOPinTypeGPIOInput(GPIO_PORTG_BASE, GPIO_PIN_1); while(!GPIOPinRead(GPIO_PORTG_BASE, GPIO_PIN_1)) { // Toggle the clock at 100kHz until the slave releases SDA GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_0, GPIO_PIN_0); cheapDelay(400); GPIOPinWrite(GPIO_PORTG_BASE, GPIO_PIN_0, ~GPIO_PIN_0); cheapDelay(400); } // Initialize the I2C channel the sensor is connected to SysCtlPeripheralEnable( SYSCTL_PERIPH_I2C1 ); GPIOPinConfigure( GPIO_PG0_I2C1SCL ); GPIOPinConfigure( GPIO_PG1_I2C1SDA ); GPIOPinTypeI2C( GPIO_PORTG_BASE, GPIO_PIN_0 | GPIO_PIN_1 ); // Set the clock (false = "slow" = 100kbps) I2CMasterInitExpClk( I2C1_MASTER_BASE, SysCtlClockGet(), false ); I2CMasterEnable( I2C1_MASTER_BASE ); }
int main(void) { SysCtlClockSet(SYSCTL_SYSDIV_5 | SYSCTL_USE_PLL | SYSCTL_XTAL_16MHZ | SYSCTL_OSC_MAIN); IntMasterEnable(); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5); GPIOPinTypeGPIOInput(GPIO_PORTC_BASE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); GPIOPadConfigSet(GPIO_PORTC_BASE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7, 0, GPIO_PIN_TYPE_STD_WPU); GPIOIntRegister(GPIO_PORTC_BASE, decodeMatrixInput); GPIOIntTypeSet(GPIO_PORTC_BASE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7, GPIO_FALLING_EDGE); GPIOIntEnable(GPIO_PORTC_BASE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5, 0); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_0); srand(time(NULL)); initLEDStrip(); activePattern = 15; // init active pattern to blank while (1) activatePattern(activePattern); }
//***************************************************************************** void PortFunctionInit(void) { // // Enable Peripheral Clocks // SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION); // // Enable pin PJ0 for GPIOInput (SW2) // GPIOPinTypeGPIOInput(GPIO_PORTJ_AHB_BASE, GPIO_PIN_1); // // Enable pin PN1 and PN2 for GPIOOutput (LED's) // GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_1); GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_0); //************************************************************* // The code above is automatically generated by PinMux // The code below should be manually added by the programmer //************************************************************* //Enable pull-up on PJ0 GPIO_PORTJ_AHB_PUR_R |= 0x02; }
//--------------------------------------------------------------------------- // hardware_init() // // inits GPIO pins for toggling the LED //--------------------------------------------------------------------------- void hardware_init(void) { //Set CPU Clock to 40MHz. 400MHz PLL/2 = 200 DIV 5 = 40MHz SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN); // ADD Tiva-C GPIO setup - enables port, sets pins 1-3 (RGB) pins for output SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); /* PF0 requires unlocking before configuration */ HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_KEY; HWREG(GPIO_PORTF_BASE + GPIO_O_CR) |= GPIO_PIN_0; //GPIODirModeSet(GPIO_PORTF_BASE, GPIO_PIN_4|GPIO_PIN_5,GPIO_DIR_MODE_IN); GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_4|GPIO_PIN_0); GPIOPadConfigSet(GPIO_PORTF_BASE,(GPIO_PIN_4|GPIO_PIN_0),GPIO_STRENGTH_12MA,GPIO_PIN_TYPE_STD_WPU); HWREG(GPIO_PORTF_BASE + GPIO_O_LOCK) = GPIO_LOCK_M; // Turn on the LED GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, 4); }
/* ******************************************************************** */ void InitializeSwitches ( void ) { /* Set pin type */ SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); /* PA bus */ GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, FRONT_LEFT_SWITCH); GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, FRONT_RIGHT_SWITCH); GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, SIDE_RIGHT_SWITCH); /* Set pull-up resistor. Must use so that input doesn't float */ GPIOPadConfigSet(GPIO_PORTA_BASE, FRONT_LEFT_SWITCH, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD); GPIOPadConfigSet(GPIO_PORTA_BASE, FRONT_RIGHT_SWITCH, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD); GPIOPadConfigSet(GPIO_PORTA_BASE, SIDE_RIGHT_SWITCH, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD); }
/* * ======== EK_TM4C123GXL_initWiFi ======== */ void EK_TM4C123GXL_initWiFi(void) { /* Configure EN & CS pins to disable CC3100 */ GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_4); GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_0, GPIO_PIN_0); GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_4, 0); /* Configure SSI2 for CC3100 */ SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2); GPIOPinConfigure(GPIO_PB4_SSI2CLK); GPIOPinConfigure(GPIO_PB6_SSI2RX); GPIOPinConfigure(GPIO_PB7_SSI2TX); GPIOPinTypeSSI(GPIO_PORTB_BASE, GPIO_PIN_4 | GPIO_PIN_6 | GPIO_PIN_7); /* Configure IRQ pin */ GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_2); GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_PIN_2, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPD); GPIOIntTypeSet(GPIO_PORTB_BASE, GPIO_PIN_2, GPIO_RISING_EDGE); SPI_init(); EK_TM4C123GXL_initDMA(); WiFi_init(); }
/* * ======== EK_TM4C123GXL_initWiFi ======== */ void EK_TM4C123GXL_initWiFi(void) { /* Configure SSI2 */ SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI2); GPIOPinConfigure(GPIO_PB4_SSI2CLK); GPIOPinConfigure(GPIO_PB6_SSI2RX); GPIOPinConfigure(GPIO_PB7_SSI2TX); GPIOPinTypeSSI(GPIO_PORTB_BASE, GPIO_PIN_4 | GPIO_PIN_6 | GPIO_PIN_7); /* Configure IRQ pin */ GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_2); GPIOIntTypeSet(GPIO_PORTB_BASE, GPIO_PIN_2, GPIO_FALLING_EDGE); /* Configure EN pin */ GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_5); GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_5, 0); /* Configure CS pin */ GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, GPIO_PIN_0); GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_0, 0); /* Call necessary SPI init functions */ SPI_init(); EK_TM4C123GXL_initDMA(); /* Initialize WiFi driver */ WiFi_init(); }
int main() { //Enable Peripherals SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); //Start specific Pin Ports GPIOPinTypeGPIOOutput(port_A, GPIO_PIN_5 |GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4); GPIOPinTypeGPIOOutput(port_C, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7); GPIOPinTypeGPIOOutput(port_D,GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_6 | GPIO_PIN_5); GPIOPinTypeGPIOOutput(port_E, GPIO_PIN_0); GPIOPinTypeGPIOOutput(port_F, GPIO_PIN_4); //Input Pins GPIOPinTypeGPIOInput(port_F, GPIO_PIN_2 | GPIO_PIN_3); //Initialize the display initializeDisplay(); //Write phrases write_phrases(); }
void hw_init(void){ SysCtlClockSet(SYSCTL_SYSDIV_2_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN); f_cpu = SysCtlClockGet(); SysTickPeriodSet(0xffffffff); SysTickEnable(); // UARTStdioInit(); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); GPIODirModeSet(SONAR_PORT, TRIG_PIN, GPIO_DIR_MODE_OUT); GPIODirModeSet(SONAR_PORT, SERVO_PIN, GPIO_DIR_MODE_OUT); GPIOPinTypeGPIOInput(SONAR_PORT, ECHO_PIN); GPIOIntTypeSet(SONAR_PORT, ECHO_PIN, GPIO_RISING_EDGE); GPIOPinIntEnable(SONAR_PORT,ECHO_PIN); IntEnable(INT_GPIOD); //Timer configuration SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0); TimerConfigure(TIMER0_BASE, TIMER_CFG_A_PERIODIC); const long timer_match = (f_cpu/1000000)*10; const long timer_out = (f_cpu/1000)*80; TimerLoadSet(TIMER0_BASE, TIMER_A, timer_out); TimerMatchSet(TIMER0_BASE, TIMER_A, timer_match); TimerEnable(TIMER0_BASE, TIMER_A); TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT); TimerIntClear(TIMER0_BASE,TIMER_A); IntEnable(INT_TIMER0A); IntMasterEnable(); }
//***************************************************************************** // // Initializes the hardware's system clock and the SysTick Interrupt // //***************************************************************************** void SysTickInit() { // // Set the clocking to run directly from the crystal. // SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ); // // Get the system clock speed. // systemClock = SysCtlClockGet(); // // Configure SysTick interrupts // SysTickPeriodSet(systemClock / SYSTICK_FREQUENCY); SysTickIntEnable(); SysTickEnable(); // // Code to cause a wait for a "Select Button" press // SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG); GPIOPinTypeGPIOInput(GPIO_PORTG_BASE, GPIO_PIN_7); RIT128x96x4Init(1000000); RIT128x96x4StringDraw("Press \"Select\" Button", 0, 24, 15); RIT128x96x4StringDraw("To Continue", 32, 32, 15); while(GPIOPinRead(GPIO_PORTG_BASE, GPIO_PIN_7)); SysCtlPeripheralDisable(SYSCTL_PERIPH_GPIOG); SysCtlPeripheralReset(SYSCTL_PERIPH_GPIOG); }
void bsp_gpio_init(void) { SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOC); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOJ); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOK); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOL); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOM); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOP); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOQ); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOR); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOS); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOT); GPIO_PORTF_LOCK_R = 0x4C4F434B; GPIO_PORTD_LOCK_R = 0x4C4F434B; GPIO_PORTF_CR_R = 0x1; GPIO_PORTD_CR_R = (1<<7); /*eeprom releated gpio init*/ GPIOPinTypeGPIOOutput(EPROM_SDA_PORT, EPROM_SDA_PIN); GPIOPinTypeGPIOOutput(EPROM_SCL_PORT, EPROM_SCL_PIN); /*init lcd related gpio*/ GPIOPinTypeGPIOOutput(LCD_RS_PORT, LCD_RS_PIN); GPIOPinTypeGPIOOutput(LCD_RW_PORT, LCD_RW_PIN); GPIOPinTypeGPIOOutput(LCD_EN_PORT, LCD_EN_PIN); GPIOPinTypeGPIOOutput(LCD_DB4_PORT, LCD_DB4_PIN); GPIOPinTypeGPIOOutput(LCD_DB5_PORT, LCD_DB5_PIN); GPIOPinTypeGPIOOutput(LCD_DB6_PORT, LCD_DB6_PIN); GPIOPinTypeGPIOOutput(LCD_DB7_PORT, LCD_DB7_PIN); GPIOPinTypeGPIOOutput(LCD_PWM_PORT, LCD_PWM_PIN); GPIO_PIN_SET(LCD_PWM_PORT, LCD_PWM_PIN, 1); /*power management gpio*/ GPIOPinTypeGPIOOutput(AC_STANDBY_PORT, AC_STANDBY_PIN); GPIOPinTypeGPIOOutput(DC5V_EN_PORT, DC5V_EN_PIN); GPIOPinTypeGPIOOutput(DC3V_EN_PORT, DC3V_EN_PIN); GPIOPinTypeGPIOOutput(PS_EN_PORT, PS_EN_PIN); //GPIO_PIN_SET(DC3V_EN_PORT, DC3V_EN_PIN, 1); GPIOPinTypeGPIOOutput(POWER_EN01_PORT, POWER_EN01_PIN); GPIOPinTypeGPIOInput(AC_DETECT_PORT, AC_DETECT_PIN); /*usb*/ GPIOPinTypeGPIOOutput(USB_EN_PORT, USB_EN_PIN); GPIO_PIN_SET(USB_EN_PORT, USB_EN_PIN, 1); GPIOPinTypeGPIOOutput(USB_SELECT_PORT, USB_SELECT_PIN); }
/** * Configures the used button as input source * Registers gpio_c interrupt.. */ void button_init(){ GPIOPinTypeGPIOInput(BSP_BUTTON_BASE, BSP_USER_BUTTON); GPIOIntTypeSet(BSP_BUTTON_BASE,BSP_USER_BUTTON,GPIO_FALLING_EDGE); GPIOPortIntRegister(BSP_BUTTON_BASE,GPIO_C_Isr_Handler); GPIOPinIntClear(BSP_BUTTON_BASE, BSP_USER_BUTTON); GPIOPinIntEnable(BSP_BUTTON_BASE, BSP_USER_BUTTON); }
void setup_buttonInterrupts(){ SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_4); GPIOPinTypeGPIOInput(GPIO_PORTB_BASE, GPIO_PIN_0); GPIOIntEnable(GPIO_PORTF_BASE, (GPIO_INT_PIN_1 | GPIO_INT_PIN_2 | GPIO_INT_PIN_4)); GPIOIntRegister(GPIO_PORTF_BASE, bHandler); GPIOIntTypeSet(GPIO_PORTF_BASE, (GPIO_PIN_1 | GPIO_PIN_2 | GPIO_INT_PIN_4) , GPIO_FALLING_EDGE); GPIOIntEnable(GPIO_PORTB_BASE, GPIO_INT_PIN_0); GPIOIntRegister(GPIO_PORTB_BASE, brakeHandler); GPIOIntTypeSet(GPIO_PORTB_BASE, GPIO_PIN_0, GPIO_FALLING_EDGE); }
void GPIOSetInput(unsigned long port, unsigned char pins) { GPIOPinTypeGPIOInput(port, pins); //input GPIOPadConfigSet(port, pins, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); //pullup return; }