#define SYSCTL_RCGCGPIO_R *(( volatile unsigned long *)0x400FE608 ) #define SYSCTL_RCGCADC_R ( *( ( volatile unsigned long *) 0x400FE638 ) ) #define NVIC_EN0_Rf ( *(( volatile unsigned long * ) 0xE000E100 )) #define NVIC_PRI7_R ( *(( volatile unsigned long * ) 0xE000E41C )) #define GPIO_PORTA_PUR_R ( *(( volatile unsigned long * ) 0x40004510 )) #define GPIO_PORTA_DATA_R ( *(( volatile unsigned long * ) 0x400043FC )) #define GPIO_PORTA_DIR_R ( *(( volatile unsigned long * ) 0x40004400 )) #define GPIO_PORTA_DEN_R ( *(( volatile unsigned long * ) 0x4000451C )) #define GPIO_PORTD_PUR_R ( *(( volatile unsigned long * ) 0x40007510)) #define GPIO_PORTD_DATA_R ( *(( volatile unsigned long * ) 0x400073FC )) #define GPIO_PORTD_DIR_R ( *(( volatile unsigned long * ) 0x40007400 )) #define GPIO_PORTD_DEN_R ( *(( volatile unsigned long * ) 0x4000751C )) #define GPIO_PORTD_AFSEL_R ( *(( volatile unsigned long * ) 0x40007420 )) #define GPIO_PORTD_AMSEL_R ( *(( volatile unsigned long * ) 0x40004528 )) #define GPIO_PORTC_DATA_R *(( volatile unsigned long *)0x400063FC ) #define GPIO_PORTC_DIR_R *(( volatile unsigned long *)0x40006400 ) #define GPIO_PORTC_DEN_R *(( volatile unsigned long *)0x4000651C ) # define GPIO_PORTF_DATA_R *(( volatile unsigned long *)0x400253FC ) # define GPIO_PORTF_DIR_R *(( volatile unsigned long *)0x40025400 ) # define GPIO_PORTF_DEN_R *(( volatile unsigned long *)0x4002551C ) #define SYSCTL_RCGCTIMER_R (*(( volatile unsigned long * ) 0x400FE65C )) #define TIMER0S_CTL_R (*(( volatile unsigned long * ) 0x4004C00C )) #define TIMER0S_CFG_R (*(( volatile unsigned long * ) 0x4004C000 )) #define TIMER0S_TAMR_R (*(( volatile unsigned long * ) 0x4004C004 )) #define TIMER0S_TAILR_R (*(( volatile unsigned long * ) 0x4004C028 )) #define TIMER0S_ICR_R (*(( volatile unsigned long * ) 0x4004C024 )) #define TIMER0S_IMR_R (*(( volatile unsigned long * ) 0x4004C018 )) #define TIMER0S_RIS_R (*(( volatile unsigned long * ) 0x4004C01C )) // register definitions for Port B, which is used as LCD data bus # define GPIO_PORTB_DATA_R *(( volatile unsigned long *)0x400053FC ) # define GPIO_PORTB_DIR_R *(( volatile unsigned long *)0x40005400 ) # define GPIO_PORTB_DEN_R *(( volatile unsigned long *)0x4000551C ) # define GPIO_PORTB_AFSEL_R *(( volatile unsigned long *)0x40005420 ) /* register definitions for Port E ( pins 3, 4 and 5) , which is used as LCD control bus */ # define GPIO_PORTE_PUR_R *(( volatile unsigned long *)0x400240E0 ) # define GPIO_PORTE_DATA_R *(( volatile unsigned long *)0x400240E0 ) # define GPIO_PORTE_DIR_R *(( volatile unsigned long *)0x40024400 ) # define GPIO_PORTE_DEN_R *(( volatile unsigned long *)0x4002451C ) # define GPIO_PORTE_AFSEL_R *(( volatile unsigned long *)0x40024420 ) # define GPIO_PORTE_AMSEL_R *(( volatile unsigned long *)0x40024528 ) // LCD module control pins and data bus definitions # define LCD_E_PIN 0x08 # define LCR_RW_PIN 0x10 # define LCD_RS_PIN 0x20 # define LCD_DATA_BUS GPIO_PORTB_DATA_R # define LCD_CONTROL_BUS GPIO_PORTE_DATA_R #define TIM0S_CLK_EN 0x04 #define PORTC_Clk_ENABLE 0x4 // LCD module control pins and data bus definitions #define LCD_E_PIN 0x08 #define LCR_RW_PIN 0x10 #define LCD_RS_PIN 0x20 #define LCD_DATA_BUS GPIO_PORTB_DATA_R #define LCD_CONTROL_BUS GPIO_PORTE_DATA_R //ENABLNG BIT 4,5,6,7 FOR CONTROLLING VCC FOR R-METER #define PORTC_DEN 0xF0 #define PORTF_CLK_EN 0x20 #define PORTD_CLK_EN 0x8 #define SW1 0x10 #define INT_PF4 0xE #define portF_dir 0x0E #define portD_dir 0x0 #define D_Enable 0x7 #define R 1 #define adc 1 #define PORTE_CLK_EN 0x10 #define PORTE_DEN_EN 0x07 #define PORTE_DIR_EN 0x07 //Register definition for ADC0 and Sample Sequencer 3 #define ADC0_PC_R ( *( ( volatile unsigned long *) 0x40038FC4 ) ) #define ADC0_SSPRI_R ( *( ( volatile unsigned long *) 0x40038020 ) ) #define ADC0_ACTSS_R ( *( ( volatile unsigned long *) 0x40038000 ) ) #define ADC0_IM_R ( *( ( volatile unsigned long *) 0x40038008 ) ) #define ADC0_RIS_R ( *( ( volatile unsigned long *) 0x40038004 ) ) #define ADC0_ISC_R ( *( ( volatile unsigned long *) 0x4003800C ) ) #define ADC0_SAC_R ( *( ( volatile unsigned long *) 0x40038030 ) ) #define ADC0_PSSI_R ( *( ( volatile unsigned long *) 0x40038028 ) ) #define ADC0_SSCTL3_R ( *( ( volatile unsigned long *) 0x400380A4 ) ) #define ADC0_SSFIFO3_R ( *( ( volatile unsigned long *) 0x400380A8 ) ) #define ADC_EMUX ( *( ( volatile unsigned long *) 0x40038014 ) ) #define ADC_SSMUX3 ( *( ( volatile unsigned long *) 0x400380A0 ) ) //extra #define ADC0_SSCTL1_R ( *( ( volatile unsigned long *) 0x40038064 ) ) #define ADC_SSMUX1 ( *( ( volatile unsigned long *) 0x40038060 ) ) #define ADC0_SSFIFO1_R ( *( ( volatile unsigned long *) 0x40038068 ) ) // timer // GPIO registers # define SYSCTL_RCGCGPIO_R (*(( volatile unsigned long *)0x400FE608 ) ) # define GPIO_PORTF_DATA_R (*(( volatile unsigned long *)0x400253FC ) ) # define GPIO_PORTF_DIR_R (*(( volatile unsigned long *)0x40025400 ) ) # define GPIO_PORTF_DEN_R (*(( volatile unsigned long *)0x4002551C ) ) // Timer registers # define SYSCTL_RCGCTIMER_R (*(( volatile unsigned long *)0x400FE604 ) ) # define TIMER0_CTL_R (*(( volatile unsigned long *)0x4003000C ) ) # define TIMER0_CFG_R (*(( volatile unsigned long *)0x40030000 ) ) # define TIMER0_TAMR_R (*(( volatile unsigned long *)0x40030004 ) ) # define TIMER0_TAILR_R (*(( volatile unsigned long *)0x40030028 ) ) # define TIMER0_TAPR_R (*(( volatile unsigned long *)0x40030038 ) ) # define TIMER0_ICR_R (*(( volatile unsigned long *)0x40030024 ) ) # define TIMER0_IMR_R (*(( volatile unsigned long *)0x40030018 ) ) # define TIMER0_TAR_R (*(( volatile unsigned long *)0x40030048 ) ) # define TIMER0_TAV_R (*(( volatile unsigned long *)0x40030050 ) ) // NVIC registers # define NVIC_EN0_R (*(( volatile unsigned long *)0xE000E100 ) ) # define NVIC_PRI4_R (*(( volatile unsigned long *)0xE000E410 ) ) // constant values # define TIM0_CLK_EN 0x1 // enable clock for Timer0 # define TIM0_EN 0x1 // disable Timer0 before setup # define TIM_16_BIT_EN 0x04 // configure 16-bit timer mode # define TIM_TAMR_PERIODIC_EN 0x2 // configure periodic mode # define TIM_FREQ_10usec 0x9F // select prescalaer for // desired frequency 100 kHz # define TIM0_INT_CLR 0x1 // clear time out interrupt # define EN0_INT19 0x80000 // enable interrupt 19 # define PORTF_CLK_EN 0x20 // enable clock for port F # define TOGGLE_PF1 0x2 // toggle red led (PF1) # define LED_RED 0x2 // configure red led (PF1) // function headers typedef unsigned char uint8; void GPIO_Port_Init ( void ); void Delay (volatile unsigned int delay ); void LCD_Init ( void ); void LCD_Clear ( void ); void LCD_Send_Command ( unsigned char command ); void LCD_Send_Integer(int number); void LCD_Send_Data ( unsigned char data ); void LCD_Send_String ( char * ptr ); void Welcome_Screen(void); void LCD_Send_Character(uint8 character); void LCD_Send_Float(float f); void LCD_Goto_XY ( unsigned char x, unsigned char y); void GPIO_Init ( void ) ; void Timer_Init ( unsigned long period ) ; void DisableInterrupts ( void ) ; void EnableInterrupts ( void ) ; void WaitForInterrupt ( void ) ;