示例#1
0
// initialize ADC0 with an interrupt
// initialize GPIOD.3 for ADC0
// initialize GPTM to trigger ADC at 2ms
void initRangeSensor(void)
{
	// enable interrupts for ADC0 in the NVIC
	readModWrite_word(CORE_PERIPHERALS, 0x100, 0x00004000,ENABLE); 
	
	// enable TIMER0A sysclk
	readModWrite_byte(SYSTEM_CONTROL, RCGCTIMER, 0x08,ENABLE); 
	// enable GPIOD sysclk
	readModWrite_byte(SYSTEM_CONTROL, RCGCGPIO, 0x08,ENABLE); 
	// enable ADC0 sysclk
	readModWrite_byte(SYSTEM_CONTROL, RCGCADC, 0x01,ENABLE); 
	// configure GPIOF for ADC
	readModWrite_byte(GPIOD, 0x420, 0x08,ENABLE);
	readModWrite_byte(GPIOD, 0x51C, 0x08,DISABLE);
	readModWrite_byte(GPIOD, 0x528, 0x08,ENABLE);
	
	// configure TIMER#A for 50ms TAOTE enabled
	// disable TIMER3A
	write_word(TIMER3, 0x00C, 0); // disable timer
	write_word(TIMER3, 0x000, 0); // set to 32bit mode
	write_word(TIMER3, 0x004, 0x02);	// set to periodic mode
	write_word(TIMER3, 0x028, 4000000);	// set timer to 50ms
	write_word(TIMER3, 0x00C, 0x0021); // enable timer with output enable for adc
		
	// configure ADC0
	write_word(ADC0, 0x000, 0);	// disable ADC SS
	write_word(ADC0, 0x014, 0x0005);	// select timer as trigger source
	write_word(ADC0, 0x040, 4);	// select the ADC sample sequence
	write_word(ADC0, 0x044, 0x06);	// select the ADC sample sequence to end on first sample and generate an interrupt
	write_word(ADC0, 0x008, 0x01);	// enable interrupts to get adc data
	write_word(ADC0, 0x000, 0x01);	// enable ADC SS
	
}
示例#2
0
void initTimerForDacOutput(void)
{
	
	// enable interrupts for TIMER1A in the NVIC
	readModWrite_word(CORE_PERIPHERALS, 0x100, 0x00200000,ENABLE); 
	
	// enable TIMER1A sysclk
	readModWrite_byte(SYSTEM_CONTROL, RCGCTIMER, 0x02,ENABLE); 
	
	
	// configure TIMER1A 	
	write_word(TIMER1, 0x000, 0); // disable timer
	write_word(TIMER1, 0x004, 0x02);	// set to periodic mode
	write_word(TIMER1, 0x028, 20000);	// set timer to 250uSec
	write_word(TIMER1, 0x018, 0x01);	// enable interrupts
	write_word(TIMER1, 0x00C, 0x0001); // enable timer
}