Esempio n. 1
0
__interrupt void Timer_A (void)
{
  if (TACCR1 <= 40) {
    i++;
    if (i > 500) {
      set_PWM_duty_cycle(TACCR1 + 1);
      P1IFG = 0x00;
      i = 0x00;
//      CCR0 += 50;                            // Add Offset to CCR0

    }
  }
    if (TACCR1 == 41) {
      set_PWM_duty_cycle(0);
      P1IFG = 0x00;
      i = 0x00;
          
  }
}
Esempio n. 2
0
/** Initializes PWM signal on PE4 in order to control backlight of LCD
**/
void PWM_init(void)
{
	SYSCTL->RCGC0 |= (1UL << 20);
	//SYSCTL->RCGC2 |= (1UL << 4);
	
	GPIOE->AFSEL |= (1UL << 4);			// Alternate function
	GPIOE->PCTL |= (0x4 << 16);			// Select M0PWM4
	SYSCTL->RCC |= (0x0 << 17);			// Divide system clock by 2 for PWM (8MHz)
	
	// Configure PWM Module 0, Generator 2, Generator A: PWM0->_2_...
	PWM0->_2_CTL = 0x0;					// No global sync
	PWM0->_2_GENA = 0x8C;				// Drive PWM high when counter matches LOAD, drive PWM low when counter matches CMPA
	PWM0->_2_LOAD = PWM_LOAD;		//Set the load to be 399 (400)
	set_PWM_duty_cycle(100);		// Set 100% duty cycle
	PWM0->_2_CTL = 0x1;					// Enable PWM Module 0, Generator 2
	PWM0->ENABLE |= (1UL << 4);		// Enabled			
}
Esempio n. 3
0
int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
//  timerA_start(timing, OUTMOD_SET_RESET); // starte PWM
  INIT_PORTS();
//  INIT_ADC();
//  init_XT2();
  init_PWM_TimerA();
  set_PWM_duty_cycle(0);
  P1OUT |= LED_PWR_ON;
  P1OUT |= LED2;
  //_BIS_SR(LPM3_bits);
  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt

//      while(1)                      // warte bis sich was tut
//    {
//    }
//  return 0;
}
Esempio n. 4
0
/** Handler for GPIOF pins (push buttons)
* 	Increment/decrement scroll speed
*		Increment/decrement backlight brightness
**/
void GPIOF_Handler(void)
{
	// If Interrupt caused by PF4
	if(GPIOF->RIS & (1UL << 4))
	{
		GPIOF->DATA ^= (1UL << 3);	// Toggle LED for debugging
		increment_scroll_delay();
		decrement_brightness();		
		GPIOF->ICR |= (1UL << 4);	// Clear Interrupt
	}
	// Else if Interrupt caused by PF0
	else if (GPIOF->RIS & (1UL << 0))
	{
		GPIOF->DATA ^= (1UL << 3);	// Toggle LED for debugging
		decrement_scroll_delay();
		increment_brightness();
		GPIOF->ICR |= (1UL << 0);	// Clear Interrupt
	}
	interrupt_timer(scroll_delay);
	set_PWM_duty_cycle(duty_cycle);
}