28. lpc17xx_timer Module

Timer client library functions. Find implementation details in LPC17xx CMSIS-Compliant Standard Peripheral Firmware Driver Library documentation.

class robovero.lpc17xx_timer.TIM_CAPTURECFG_Type(**kwargs)

Bases: robovero.internals.cstruct

Capture Input configuration structure.

  • CaptureChannel: Capture channel, should be in range from 0 to 1
  • RisingEdge: caption rising edge, should be:
    • ENABLE: Enable rising edge.
    • DISABLE: Disable this function.
  • FallingEdge: caption falling edge, should be:
    • ENABLE: Enable falling edge.
    • DISABLE: Disable this function.
  • IntOnCaption: Interrupt On caption, should be:
    • ENABLE: Enable interrupt function.
    • DISABLE: Disable this function.
  • ptr: LPC1769 memory address where structure is stored. Use this in place of the C reference operator (&).
class robovero.lpc17xx_timer.TIM_CAP_MODE_OPT

Timer/counter capture mode options.

  • TIM_CAPTURE_NONE: No Capture
    • TIM_CAPTURE_RISING: Rising capture mode
    • TIM_CAPTURE_FALLING: Falling capture mode
    • TIM_CAPTURE_ANY: On both edges
TIM_CAPTURE_ANY = 3
TIM_CAPTURE_FALLING = 2
TIM_CAPTURE_NONE = 0
TIM_CAPTURE_RISING = 1
class robovero.lpc17xx_timer.TIM_COUNTERCFG_Type(**kwargs)

Bases: robovero.internals.cstruct

Configuration structure in COUNTER mode.

  • CounterOption: Counter Option, should be:
    • TIM_COUNTER_INCAP0: CAPn.0 input pin for TIMERn
    • TIM_COUNTER_INCAP1: CAPn.1 input pin for TIMERn
  • CountInputSelect
  • ptr: LPC1769 memory address where structure is stored. Use this in place of the C reference operator (&).
class robovero.lpc17xx_timer.TIM_COUNTER_INPUT_OPT

Counter input option.

  • TIM_COUNTER_INCAP0: CAPn.0 input pin for TIMERn
  • TIM_COUNTER_INCAP1: CAPn.1 input pin for TIMERn
TIM_COUNTER_INCAP0 = 0
TIM_COUNTER_INCAP1 = 1
robovero.lpc17xx_timer.TIM_ClearIntCapturePending(TIMx, IntFlag)

Clear Capture Interrupt pending.

Args:

  • TIMx: Timer selection, should be:
    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
  • IntFlag: interrupt type, should be:
    • TIM_MR0_INT: Interrupt for Match channel 0
    • TIM_MR1_INT: Interrupt for Match channel 1
    • TIM_MR2_INT: Interrupt for Match channel 2
    • TIM_MR3_INT: Interrupt for Match channel 3
    • TIM_CR0_INT: Interrupt for Capture channel 0
    • TIM_CR1_INT: Interrupt for Capture channel 1
robovero.lpc17xx_timer.TIM_ClearIntPending(TIMx, IntFlag)

Clear Interrupt pending.

Args:

  • TIMx: Timer selection, should be:
    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
  • IntFlag: interrupt type, should be:
    • TIM_MR0_INT: Interrupt for Match channel 0
    • TIM_MR1_INT: Interrupt for Match channel 1
    • TIM_MR2_INT: Interrupt for Match channel 2
    • TIM_MR3_INT: Interrupt for Match channel 3
    • TIM_CR0_INT: Interrupt for Capture channel 0
    • TIM_CR1_INT: Interrupt for Capture channel 1
robovero.lpc17xx_timer.TIM_Cmd(TIMx, NewState)

Start/Stop Timer/Counter device.

Args:

  • TIMx: Timer selection, should be:
    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
  • NewState:
    • ENABLE : set timer enable
    • DISABLE : disable timer
robovero.lpc17xx_timer.TIM_ConfigCapture(TIMx, TIM_CaptureConfigStruct)

Configuration for Capture register.

Args:

  • TIMx: Timer selection, should be:
    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
  • TIM_CaptureConfigStruct: Pointer to TIM_CAPTURECFG_Type
robovero.lpc17xx_timer.TIM_ConfigMatch(TIMx, TIM_MatchConfigStruct)

Configuration for Match register.

Args:

  • TIMx: Timer selection, should be:

    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
  • TIM_MatchConfigStruct: Pointer to TIM_MATCHCFG_Type

    • MatchChannel: choose channel 0 or 1

    • IntOnMatch: if SET, interrupt will be generated when MRxx match the value in TC

    • StopOnMatch: if SET, TC and PC will be stopped

      whenM Rxx match the value in TC

    • ResetOnMatch: if SET, Reset on MR0 when MRxx match

      the value in TC

    • ExtMatchOutputType: Select output for external match - 0: Do nothing for external output pin if match - 1: Force external output pin to low if match - 2: Force external output pin to high if match - 3: Toggle external output pin if match - MatchValue: Set the value to be compared with TC value

robovero.lpc17xx_timer.TIM_ConfigStructInit(TimerCounterMode, TIM_ConfigStruct)

Configuration for Timer at initial time.

Args:

  • TIMx: Timer selection, should be:
    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
  • TIM_ConfigStruct: pointer to TIM_TIMERCFG_Type or TIM_COUNTERCFG_Type
robovero.lpc17xx_timer.TIM_DeInit(TIMx)

Close Timer/Counter device.

Args:

  • TIMx: Timer selection, should be:
    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
class robovero.lpc17xx_timer.TIM_EXTMATCH_OPT

Timer/Counter external match option.

  • TIM_EXTMATCH_NOTHING: Do nothing for external output pin if match
  • TIM_EXTMATCH_LOW: Force external output pin to low if match
  • TIM_EXTMATCH_HIGH: Force external output pin to high if match
  • TIM_EXTMATCH_TOGGLE: Toggle external output pin if match
TIM_EXTMATCH_HIGH = 2
TIM_EXTMATCH_NOTHING = 0
TIM_EXTMATCH_TOGGLE = 3
robovero.lpc17xx_timer.TIM_GetCaptureValue(TIMx, CaptureChannel)

Read value of capture register in timer/counter device.

Args:

  • TIMx: Timer selection, should be:
    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
  • CaptureChannel: capture channel number, should be:
    • TIM_COUNTER_INCAP0: CAPn.0 input pin for TIMERn
    • TIM_COUNTER_INCAP1: CAPn.1 input pin for TIMERn

Return:

  • Value of capture register
robovero.lpc17xx_timer.TIM_GetIntCaptureStatus(TIMx, IntFlag)

Get Capture Interrupt Status.

Args:

  • TIMx: Timer selection, should be:
    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
  • IntFlag: interrupt type, should be:
    • TIM_MR0_INT: Interrupt for Match channel 0
    • TIM_MR1_INT: Interrupt for Match channel 1
    • TIM_MR2_INT: Interrupt for Match channel 2
    • TIM_MR3_INT: Interrupt for Match channel 3
    • TIM_CR0_INT: Interrupt for Capture channel 0
    • TIM_CR1_INT: Interrupt for Capture channel 1

Return:

  • FlagStatus
    • SET : interrupt
    • RESET : no interrupt
robovero.lpc17xx_timer.TIM_GetIntStatus(TIMx, IntFlag)

Get Interrupt Status.

Args:

  • TIMx: Timer selection, should be:
    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
  • IntFlag: interrupt type, should be:
    • TIM_MR0_INT: Interrupt for Match channel 0
    • TIM_MR1_INT: Interrupt for Match channel 1
    • TIM_MR2_INT: Interrupt for Match channel 2
    • TIM_MR3_INT: Interrupt for Match channel 3
    • TIM_CR0_INT: Interrupt for Capture channel 0
    • TIM_CR1_INT: Interrupt for Capture channel 1

Return:

  • FlagStatus
    • SET : interrupt
    • RESET : no interrupt
class robovero.lpc17xx_timer.TIM_INT_TYPE

Interrupt type.

  • TIM_MR0_INT: interrupt for Match channel 0
    • TIM_MR1_INT: interrupt for Match channel 1
    • TIM_MR2_INT: interrupt for Match channel 2
    • TIM_MR3_INT: interrupt for Match channel 3
    • TIM_CR0_INT: interrupt for Capture channel 0
    • TIM_CR1_INT: interrupt for Capture channel 1
TIM_CR0_INT = 4
TIM_CR1_INT = 5
TIM_MR0_INT = 0
TIM_MR1_INT = 1
TIM_MR2_INT = 2
TIM_MR3_INT = 3
robovero.lpc17xx_timer.TIM_Init(TIMx, TimerCounterMode, TIM_ConfigStruct)

Initialize Timer/Counter device.

Args:

  • TIMx: Timer selection, should be:

    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
  • TimerCounterMode: Timer counter mode, should be:

    • TIM_TIMER_MODE: Timer mode
    • TIM_COUNTER_RISING_MODE: Counter rising mode
    • TIM_COUNTER_FALLING_MODE: Counter falling mode
    • TIM_COUNTER_ANY_MODE:Counter on both edges
  • TIM_ConfigStruct: pointer to TIM_TIMERCFG_Type that contains the configuration

    information for the specified Timer peripheral.

class robovero.lpc17xx_timer.TIM_MATCHCFG_Type(**kwargs)

Bases: robovero.internals.cstruct

Match channel configuration structure.

  • MatchChannel: Match channel, should be in range from 0..3
  • IntOnMatch: Interrupt On match, should be:
    • ENABLE: Enable this function.
    • DISABLE: Disable this function.
  • StopOnMatch: Stop On match, should be:
    • ENABLE: Enable this function.
    • DISABLE: Disable this function.
  • ResetOnMatch: Reset On match, should be:
    • ENABLE: Enable this function.
    • DISABLE: Disable this function.
  • ExtMatchOutputType: External Match Output type, should be:
    • TIM_EXTMATCH_NOTHING: Do nothing for external output pin if match
    • TIM_EXTMATCH_LOW: Force external output pin to low if match
    • TIM_EXTMATCH_HIGH: Force external output pin to high if match
    • TIM_EXTMATCH_TOGGLE: Toggle external output pin if match.
  • MatchValue: Match value
  • ptr: LPC1769 memory address where structure is stored. Use this in place of the C reference operator (&).
class robovero.lpc17xx_timer.TIM_MODE_OPT

Timer/counter operating mode.

  • TIM_TIMER_MODE: Timer mode
  • TIM_COUNTER_RISING_MODE: Counter rising mode
  • TIM_COUNTER_FALLING_MODE: Counter falling mode
  • TIM_COUNTER_ANY_MODE: Counter on both edges
TIM_COUNTER_ANY_MODE = 3
TIM_COUNTER_FALLING_MODE = 2
TIM_COUNTER_RISING_MODE = 1
TIM_TIMER_MODE = 0
class robovero.lpc17xx_timer.TIM_PRESCALE_OPT

Timer/Counter prescale option.

  • TIM_PRESCALE_TICKVAL: Prescale in absolute value
    • TIM_PRESCALE_USVAL: Prescale in microsecond value
TIM_PRESCALE_TICKVAL = 0
TIM_PRESCALE_USVAL = 1
robovero.lpc17xx_timer.TIM_ResetCounter(TIMx)

Reset Timer/Counter device.

Make TC and PC are synchronously reset on the next positive edge of PCLK

Args:

  • TIMx: Timer selection, should be:
    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
class robovero.lpc17xx_timer.TIM_TIMERCFG_Type(**kwargs)

Bases: robovero.internals.cstruct

Configuration structure in TIMER mode.

  • PrescaleOption: Timer Prescale option, should be:

    • TIM_PRESCALE_TICKVAL: Prescale in absolute value
    • TIM_PRESCALE_USVAL: Prescale in microsecond value
  • PrescaleValue: Prescale value

  • ptr: LPC1769 memory address where structure is stored. Use this in place of

    the C reference operator (&).

robovero.lpc17xx_timer.TIM_UpdateMatchValue(TIMx, MatchChannel, MatchValue)

Update Match value.

Args:

  • TIMx: Timer selection, should be:
    • LPC_TIM0: TIMER0 peripheral
    • LPC_TIM1: TIMER1 peripheral
    • LPC_TIM2: TIMER2 peripheral
    • LPC_TIM3: TIMER3 peripheral
  • MatchChannel: Match channel, should be: 0..3
  • MatchValue: updated match value