\n

TMR

Peripheral Memory Blocks

address_offset : 0x0 Bytes (0x0)
size : 0x1C byte (0x0)
mem_usage : registers
protection : not protected

address_offset : 0x20 Bytes (0x0)
size : 0x1C byte (0x0)
mem_usage : registers
protection : not protected

address_offset : 0x40 Bytes (0x0)
size : 0x10 byte (0x0)
mem_usage : registers
protection : not protected

Registers

TIMER0_CTL

TIMER0_CAP

TIMER0_EXTCTL

TIMER0_EINTSTS

TIMER1_CTL

TIMER1_CMP

TIMER1_INTSTS

TIMER1_CNT

TIMER1_CAP

TIMER1_EXTCTL

TIMER1_EINTSTS

TIMER0_CMP

TIMER_CCAPCTL

TIMER_CCAP0

TIMER_CCAP1

TIMER_CCAP2

TIMER0_INTSTS

TIMER0_CNT


TIMER0_CTL

Timer0 Control and Status Register
address_offset : 0x0 Bytes (0x0)
size : -1 bit
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER0_CTL TIMER0_CTL read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 PSC CNTDATEN CMPCTL TGLPINSEL CAPPINSEL WKEN EXTCNTEN ACTSTS RSTCNT OPMODE INTEN CNTEN ICEDEBUG

PSC : Prescale Counter
bits : 0 - 7 (8 bit)
access : read-write

CNTDATEN : Data Load Enable Control\nWhen CNTDATEN is set, CNT (TIMERx_CNT[23:0]) (Timer Data Register) will be updated continuously with the 24-bit up-timer value as the timer is counting.
bits : 16 - 16 (1 bit)
access : read-write

Enumeration:

#0 : 0

Timer Data Register update Disabled

#1 : 1

Timer Data Register update Enabled while Timer counter is active

End of enumeration elements list.

CMPCTL : TIMERx_CMP Mode Control
bits : 17 - 17 (1 bit)
access : read-write

Enumeration:

#0 : 0

In One-shot or Periodic mode, when write new CMPDAT, timer counter will reset

#1 : 1

In One-shot or Periodic mode, when write new CMPDAT if new CMPDAT CNT (TIMERx_CNT[23:0])(current counter) , timer counter keep counting and will not reset. If new CMPDAT = CNT(current counter) , timer counter will reset

End of enumeration elements list.

TGLPINSEL : Toggle Out Pin Selection\nWhen Timer is set to toggle mode,
bits : 18 - 18 (1 bit)
access : read-write

Enumeration:

#0 : 0

Time0/1 toggle output pin is T0/T1 pin

#1 : 1

Time0/1 toggle output pin is T0EX/T1EX pin

End of enumeration elements list.

CAPPINSEL : Capture Pin Source Selection
bits : 19 - 19 (1 bit)
access : read-write

Enumeration:

#0 : 0

Capture Function source is from TxEX pin

#1 : 1

Capture Function source is from ACMPx output signal

End of enumeration elements list.

WKEN : Wake-Up Enable\nWhen WKEN is set and the TIF or CAPIF is set, the timer controller will generator a wake-up trigger event to CPU.
bits : 23 - 23 (1 bit)
access : read-write

Enumeration:

#0 : 0

Wake-up trigger event Disabled

#1 : 1

Wake-up trigger event Enabled

End of enumeration elements list.

EXTCNTEN : Counter Mode Enable Control\nThis bit is for external counting pin function enabled. When timer is used as an event counter, this bit should be set to 1 and select HCLK as timer clock source. Please refer to section 6.12.5.3 for detail description.
bits : 24 - 24 (1 bit)
access : read-write

Enumeration:

#0 : 0

External event counter mode Disabled

#1 : 1

External event counter mode Enabled

End of enumeration elements list.

ACTSTS : Timer Active Status (Read Only)\nThis bit indicates the 24-bit up counter status.
bits : 25 - 25 (1 bit)
access : read-only

Enumeration:

#0 : 0

24-bit up counter is not active

#1 : 1

24-bit up counter is active

End of enumeration elements list.

RSTCNT : Timer Reset
bits : 26 - 26 (1 bit)
access : read-write

Enumeration:

#0 : 0

No effect

#1 : 1

Reset 8-bit PSC counter, 24-bit up counter value and CNTEN bit if ACTSTS is 1

End of enumeration elements list.

OPMODE : Timer Operating Mode
bits : 27 - 28 (2 bit)
access : read-write

Enumeration:

#00 : 0

The timer is operating in the One-shot OPMODE. The associated interrupt signal is generated once (if INTEN is enabled) and CNTEN is automatically cleared by hardware

#01 : 1

The timer is operating in Periodic OPMODE. The associated interrupt signal is generated periodically (if INTEN is enabled)

#10 : 2

The timer is operating in Toggle OPMODE. The interrupt signal is generated periodically (if INTEN is enabled). The associated signal (tout) is changing back and forth with 50% duty cycle

#11 : 3

The timer is operating in Continuous Counting mode. The associated interrupt signal is generated when TIMERx_CNT = TIMERx_CMP (if INTEN is enabled). However, the 24-bit up-timer counts continuously. Please refer to 6.12.5.2 for detailed description about Continuous Counting mode operation

End of enumeration elements list.

INTEN : Interrupt Enable Control\nIf this bit is enabled, when the timer interrupt flag (TIF) is set to 1, the timer interrupt signal is generated and inform to CPU.
bits : 29 - 29 (1 bit)
access : read-write

Enumeration:

#0 : 0

Timer Interrupt function Disabled

#1 : 1

Timer Interrupt function Enabled

End of enumeration elements list.

CNTEN : Timer Enable Control
bits : 30 - 30 (1 bit)
access : read-write

Enumeration:

#0 : 0

Stops/Suspends counting

#1 : 1

Starts counting

End of enumeration elements list.

ICEDEBUG : ICE Debug Mode Acknowledge Disable (Write Protect)\nTimer counter will keep going no matter CPU is held by ICE or not.
bits : 31 - 31 (1 bit)
access : read-write

Enumeration:

#0 : 0

ICE debug mode acknowledgement effects TIMER counting

#1 : 1

ICE debug mode acknowledgement Disabled

End of enumeration elements list.


TIMER0_CAP

Timer0 Capture Data Register
address_offset : 0x10 Bytes (0x0)
access : read-only
reset_value : 0x0
reset_Mask : 0x0

TIMER0_CAP TIMER0_CAP read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CAPDAT

CAPDAT : Timer Capture Data Register\nWhen CAPIF flag is set to 1, the current CNT (TIMERx_CNT[23:0]) value will be auto-loaded into this TCAP filed immediately.
bits : 0 - 23 (24 bit)
access : read-only


TIMER0_EXTCTL

Timer0 External Control Register
address_offset : 0x14 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER0_EXTCTL TIMER0_EXTCTL read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CNTPHASE CAPEDGE CAPEN CAPFUNCS CAPIEN CAPDBEN ECNTDBEN CAPMODE

CNTPHASE : Timer External Count Pin Phase Detect Selection
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

#0 : 0

A falling edge of Tx (x = 0~1) pin will be counted

#1 : 1

A rising edge of Tx (x = 0~1) pin will be counted

End of enumeration elements list.

CAPEDGE : Timer External Pin Edge Detection
bits : 1 - 2 (2 bit)
access : read-write

Enumeration:

#00 : 0

A 1 to 0 transition on TxEX (x = 0~1) will be detected

#01 : 1

A 0 to 1 transition on TxEX (x = 0~1) will be detected

#10 : 2

Either 1 to 0 or 0 to 1 transition on TxEX (x = 0~1) will be detected

#11 : 3

Reserved

End of enumeration elements list.

CAPEN : Timer External Pin Function Enable
bits : 3 - 3 (1 bit)
access : read-write

Enumeration:

#0 : 0

CAPFUNCS function of TxEX (x = 0~1) pin will be ignored

#1 : 1

CAPFUNCS function of TxEX (x = 0~1) pin is active

End of enumeration elements list.

CAPFUNCS : Timer External Reset Counter / Timer External Capture Mode Selection
bits : 4 - 4 (1 bit)
access : read-write

Enumeration:

#0 : 0

Transition on TxEX (x = 0~1) pin is using to save the CNT (TIMERx_CNT[23:0]) value into TCAP value if CAPIF flag is set to 1

#1 : 1

Transition on TxEX (x = 0~1) pin is using to reset the 24-bit up counter

End of enumeration elements list.

CAPIEN : Timer External Capture Interrupt Enable Control\nIf CAPIEN enabled, Timer will raise an external capture interrupt signal and inform to CPU while CAPIF flag is set to 1.
bits : 5 - 5 (1 bit)
access : read-write

Enumeration:

#0 : 0

TxEX (x = 0~1) pin detection Interrupt Disabled

#1 : 1

TxEX (x = 0~1) pin detection Interrupt Enabled

End of enumeration elements list.

CAPDBEN : Timer External Capture Input Pin De-Bounce Enable Control
bits : 6 - 6 (1 bit)
access : read-write

Enumeration:

#0 : 0

TxEX (x = 0~1) pin de-bounce Disabled

#1 : 1

TxEX (x = 0~1) pin de-bounce Enabled

End of enumeration elements list.

ECNTDBEN : Timer External Counter Input Pin De-Bounce Enable Control
bits : 7 - 7 (1 bit)
access : read-write

Enumeration:

#0 : 0

Tx (x = 0~1) pin de-bounce Disabled

#1 : 1

Tx (x = 0~1) pin de-bounce Enabled

End of enumeration elements list.

CAPMODE : Capture Mode Selection
bits : 8 - 8 (1 bit)
access : read-write

Enumeration:

#0 : 0

Timer counter reset function or free-counting mode of timer capture function

#1 : 1

Trigger-counting mode of timer capture function

End of enumeration elements list.


TIMER0_EINTSTS

Timer0 External Interrupt Status Register
address_offset : 0x18 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER0_EINTSTS TIMER0_EINTSTS read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CAPIF

CAPIF : Timer External Interrupt Flag\nThis bit indicates the external capture interrupt flag status\nNote: This bit is cleared by writing 1 to it
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

#0 : 0

TxEX (x = 0~1) pin interrupt did not occur

#1 : 1

TxEX (x = 0~1) pin interrupt occurred

End of enumeration elements list.


TIMER1_CTL

Timer1 Control and Status Register
address_offset : 0x20 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER1_CTL TIMER1_CTL read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

TIMER1_CMP

Timer1 Compare Register
address_offset : 0x24 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER1_CMP TIMER1_CMP read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

TIMER1_INTSTS

Timer1 Interrupt Status Register
address_offset : 0x28 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER1_INTSTS TIMER1_INTSTS read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

TIMER1_CNT

Timer1 Data Register
address_offset : 0x2C Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER1_CNT TIMER1_CNT read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

TIMER1_CAP

Timer1 Capture Data Register
address_offset : 0x30 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER1_CAP TIMER1_CAP read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

TIMER1_EXTCTL

Timer1 External Control Register
address_offset : 0x34 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER1_EXTCTL TIMER1_EXTCTL read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

TIMER1_EINTSTS

Timer1 External Interrupt Status Register
address_offset : 0x38 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER1_EINTSTS TIMER1_EINTSTS read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

TIMER0_CMP

Timer0 Compare Register
address_offset : 0x4 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER0_CMP TIMER0_CMP read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CMPDAT

CMPDAT : Timer Compared Value\nCMPDAT is a 24-bit compared value register. When the internal 24-bit up counter value is equal to CMPDAT value, the TIF flag will set to 1.\nNote1: Never write 0x0 or 0x1 in CMPDAT field, or the core will run into unknown state.\nNote2: When Timer is operating at Continuous Counting mode, the 24-bit up counter will keep counting continuously even if software writes a new value into CMPDAT field. But if Timer is operating at other modes except Periodic mode on M05xxDN/DE, the 24-bit up counter will restart counting and using newest CMPDAT value to be the timer compared value if software writes a new value into CMPDAT field.
bits : 0 - 23 (24 bit)
access : read-write


TIMER_CCAPCTL

Timer Continuous Capture Control Register
address_offset : 0x40 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER_CCAPCTL TIMER_CCAPCTL read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CCAPEN INV TMRSEL CAPCHSEL CAPR1F CAPF1F CAPR2F CAPF2F

CCAPEN : Continuous Capture Enable\nThis bit enables the advanced capture function.\nNote: This bit is cleared by H/W automatically when capture operation finish or writing 0 to it
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

#0 : 0

Enable

#1 : 1

Disable

End of enumeration elements list.

INV : Input Signal Inverse\nInvert the input signal which be captured.
bits : 1 - 1 (1 bit)
access : read-write

Enumeration:

#0 : 0

None

#1 : 1

Inverse

End of enumeration elements list.

TMRSEL : Capture Timer Selection\nSelect the timer to capture the input signal.
bits : 2 - 2 (1 bit)
access : read-write

Enumeration:

#0 : 0

Timer 0

#1 : 1

Timer 1

End of enumeration elements list.

CAPCHSEL : Capture Channel Selection\nSelect the input channel to be captured.
bits : 3 - 5 (3 bit)
access : read-write

Enumeration:

#000 : 0

P0.0

#001 : 1

P0.4

#010 : 2

P0.5

#011 : 3

P0.6

#100 : 4

P0.7

#101 : 5

P5.2

#110 : 6

P3.0

#111 : 7

P3.1

End of enumeration elements list.

CAPR1F : Capture Rising Edge 1 Flag\nFirst rising edge already captured, this bit will be set to 1.\nNote: This bit is cleared by H/W automatically when write CCAPEN to 1 or writing 1 to it
bits : 8 - 8 (1 bit)
access : read-write

Enumeration:

#0 : 0

None

#1 : 1

TIMER_CCAP0 data is ready for read

End of enumeration elements list.

CAPF1F : Capture Falling Edge 1 Flag\nFirst falling edge already captured, this bit will be set to 1.\nNote: This bit is cleared by H/W automatically when write CCAPEN to 1 or writing 1 to it
bits : 9 - 9 (1 bit)
access : read-write

Enumeration:

#0 : 0

None

#1 : 1

TIMER_CCAP1 data is ready for read

End of enumeration elements list.

CAPR2F : Capture Rising Edge 2 Flag\nSecond rising edge already captured, this bit will be set to 1.\nNote: This bit is cleared by H/W automatically when write CCAPEN to 1 or writing 1 to it
bits : 10 - 10 (1 bit)
access : read-write

Enumeration:

#0 : 0

None

#1 : 1

TIMER_CCAP2 data is ready for read

End of enumeration elements list.

CAPF2F : Capture Falling Edge 2 Flag\nSecond falling edge already captured, this bit will be set to 1.\nNote: This bit is cleared by H/W automatically when write CCAPEN to 1 or writing 1 to it
bits : 11 - 11 (1 bit)
access : read-write

Enumeration:

#0 : 0

None

#1 : 1

TIMER0_CAP or TIMER1_CAP data is ready for read

End of enumeration elements list.


TIMER_CCAP0

Timer Continuous Capture Data Register 0
address_offset : 0x44 Bytes (0x0)
access : read-only
reset_value : 0x0
reset_Mask : 0x0

TIMER_CCAP0 TIMER_CCAP0 read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CAPDAT

CAPDAT : Timer Continuous Capture Data Register X\nTIMER_CCAP0 store the timer count value of first rising edge.\nTIMER_CCAP1 store the timer count value of first falling edge.\nTIMER_CCAP2 store the timer count value of second rising edge.
bits : 0 - 23 (24 bit)
access : read-only


TIMER_CCAP1

Timer Continuous Capture Data Register 1
address_offset : 0x48 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER_CCAP1 TIMER_CCAP1 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

TIMER_CCAP2

Timer Continuous Capture Data Register 2
address_offset : 0x4C Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER_CCAP2 TIMER_CCAP2 read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

TIMER0_INTSTS

Timer0 Interrupt Status Register
address_offset : 0x8 Bytes (0x0)
access : read-write
reset_value : 0x0
reset_Mask : 0x0

TIMER0_INTSTS TIMER0_INTSTS read-write 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 TIF TWKF

TIF : Timer Interrupt Flag\nThis bit indicates the interrupt flag status of Timer while CNT (TIMERx_CNT[23:0]) value reaches to CMPDAT value.\nNote: This bit is cleared by writing 1 to it.
bits : 0 - 0 (1 bit)
access : read-write

Enumeration:

#0 : 0

No effect

#1 : 1

CNT value matches the CMPDAT value

End of enumeration elements list.

TWKF : Timer Wake-Up Flag\nThis bit indicates the interrupt wake-up flag status of Time.\nNote: This bit is cleared by writing 1 to it.
bits : 1 - 1 (1 bit)
access : read-write

Enumeration:

#0 : 0

Timer does not cause chip wake-up

#1 : 1

Chip wake-up from Idle or Power-down mode if Timer time-out interrupt signal generated

End of enumeration elements list.


TIMER0_CNT

Timer0 Data Register
address_offset : 0xC Bytes (0x0)
access : read-only
reset_value : 0x0
reset_Mask : 0x0

TIMER0_CNT TIMER0_CNT read-only 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Resets to Resets to 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 CNT

CNT : Timer Data Register\nIf CNTDATEN is set to 1, CNT register value will be updated continuously to monitor 24-bit up counter value.
bits : 0 - 23 (24 bit)
access : read-only



Is something missing? Is something wrong? can you help correct it ? Please contact us at info@chipselect.org !

This website is sponsored by EmbeetleEmbeetle, an IDE designed from scratch for embedded software developers.