Sei sulla pagina 1di 4

//---------------------------------------------------------------------------

// Project: Blink TM4C - CCS Lab - STARTER


//
// Author: Eric Wilbur
//
// Date: June 2014
//
//---------------------------------------------------------------------------

//------------------------------------------
// TivaWare Header Files
//------------------------------------------
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include "inc/hw_ints.h"
#include "driverlib/interrupt.h"
#include "driverlib/timer.h"
#include <time.h>
#include "driverlib/sysctl.h"
#define LOCK_F (*((volatile unsigned long *)0x40025520))
#define CR_F (*((volatile unsigned long *)0x40025524))
//#define c;
//#define d 0x00;
//----------------------------------------
// Prototypes
//----------------------------------------
void hardware_init(void);
void ledToggle(void);
void delay(void);

//---------------------------------------
// Globals
//---------------------------------------
volatile int16_t i16ToggleCount = 1; int8_t c,d=0;
//---------------------------------------------------------------------------
// main()
//---------------------------------------------------------------------------
void main(void)
{
uint8_t a,b,c,x,y,z;
hardware_init(); // init
hardware via Xware
while(1)
// forever loop
{
a = GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_7 | GPIO_PIN_6);
b = GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3);
c = GPIOPinRead(GPIO_PORTB_BASE, GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3);
GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_4 | GPIO_PIN_3, a/8);
GPIOPinWrite(GPIO_PORTD_BASE, GPIO_PIN_2 | GPIO_PIN_1 | GPIO_PIN_0, b/8
);
GPIOPinWrite(GPIO_PORTE_BASE, GPIO_PIN_2 | GPIO_PIN_1 | GPIO_PIN_0, c/8
);

}
}
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_O
SC_MAIN);
// ADD Tiva-C GPIO setup - enables port, sets pins 1-3 (RGB) pins for ou
tput
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
//LOCK_F=0x4C4F434BU;
//CR_F=GPIO_PIN_0|GPIO_PIN_4;
//GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE,);
//GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE);
//GPIOPinTypeGPIOInput(GPIO_PORTA_BASE);
GPIOPinTypeGPIOInput(GPIO_PORTB_BASE,0xFF);
GPIOPinTypeGPIOInput(GPIO_PORTA_BASE,0xFF);
GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE,0xFF);
GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE,0xFF);
//GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_0|GPIO_PIN_4);
// Turn on the LED
//GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD
_WPU);
//GPIOPadConfigSet(GPIO_PORTB_BASE, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD
_WPU);
// GPIOPadConfigSet(GPIO_PORTE_BASE, GPIO_PIN_0|GPIO_PIN_4, GPIO_ST
RENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);
//GPIOPinWrite(GPIO_PORTE_BASE, 0);
//GPIOPinWrite(GPIO_PORTD_BASE, 0);
}

//---------------------------------------------------------------------------
// ledToggle()
//
// toggles LED on Tiva-C LaunchPad
//---------------------------------------------------------------------------
void ledToggle(void)
{
// LED values - 2=RED, 4=BLUE, 8=GREEN
if( i16ToggleCount==1)
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 2);
delay();
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);
delay();
return;
}
if( i16ToggleCount==2)
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 2);
delay();
delay();
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);
delay();
delay();
return;
}
if( i16ToggleCount==3)
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 2);
delay();
delay();
delay();
delay();
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);
delay();
delay();
delay();
delay();
// i16ToggleCount=0;
return;
}
/*
if(GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_1))
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, 8);
return;
}
else if(GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_3))
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, 0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 4);
return;
}
else if(GPIOPinRead(GPIO_PORTF_BASE, GPIO_PIN_2))
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 2);
return;
}
else
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 2);
}*/
/*
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 2);
delay();
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1, 0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, 8);
delay();
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, 0);
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 4);
delay();
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_2, 0);

else
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,
0);
}
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_3, 8);
*/
}

//---------------------------------------------------------------------------
// delay()
//
// Creates a 500ms delay via TivaWare fxn
//---------------------------------------------------------------------------
void delay(void)
{
SysCtlDelay(6700000); // creates ~500ms delay - TivaWare fxn
}

Potrebbero piacerti anche