Está en la página 1de 1

#include "tm4c123gh6pm.

h"
#include "stdint.h"

// Funcin que tiene como parmetro de entrada el indice de la tabla de tiempos.


// y configura el Systick para iniciar el decremento de la cuenta en ese valor.
void configSystick(int valor) {
// Deshabilita el Systick para proceder a la configuracin
NVIC_ST_CTRL_R &= ~NVIC_ST_CTRL_ENABLE;
// Carga el tiempo entre encendido y apagado del led.
NVIC_ST_RELOAD_R = valor;
NVIC_ST_CURRENT_R = 0; // Renicia la cuenta actual
//Habilitar el Systickasi como la seal de reloj
NVIC_ST_CTRL_R |= NVIC_ST_CTRL_ENABLE + NVIC_ST_CTRL_CLK_SRC;
}

void Config_puertoF (void)


{
long temp ;
SYSCTL_RCGC2_R |= SYSCTL_RCGC2_GPIOF; // (0x10) reloj activo para el puerto E
temp= SYSCTL_RCGC2_R; // esperar algunos ciclos de reloj
GPIO_PORTF_AMSEL_R &= ~0x2; // Se desactivan funciones analgicas de pines
los
// PF0/4 y se habilitan funciones digitales
GPIO_PORTF_PCTL_R &= ~0xF0; // Los pines PF0 y PF4 se usarn como GPIO
GPIO_PORTF_DIR_R |= 0x2; // Configura PF0/4 como pines de entrada
GPIO_PORTF_AFSEL_R &= ~0x2; // configura pines como GPIO
GPIO_PORTF_DEN_R |=0x2; // activar PF0/4 pines para acceso digital
}

void delay_625us(void)
{
NVIC_ST_CURRENT_R = 0;
while( (NVIC_ST_CTRL_R & NVIC_ST_CTRL_COUNT)== 0);
}

int main(void) {
uint8_t cuenta = 0;
Config_puertoF();
configSystick(9999); // Inicia con el parpadeo en 0.5 seg
while (1)
{
// Se espera que la cuenta del Systick llegue a cero y se sondea
// durante la espera el pulsador SW1.
delay_625us();
GPIO_PORTF_DATA_R ^= 0x2; // Configura PF0/4 como pines de entrada

}
}

También podría gustarte