| Electronic Components Datasheet Search |
|
ATmega16U4 Datasheet(PDF) 160 Page - ATMEL Corporation |
|
|
|||||||||||||||||||||||||||||
ATmega16U4 Datasheet(HTML) 160 Page - ATMEL Corporation |
|
160 / 408 page ![]() 160 7766D–AVR–01/09 ATmega16U4/ATmega32U4 15.11 Accessing 10-Bit Registers If 10-bit values are written to the TCNTn and OCRnA/B/C/D registers, the 10-bit registers can be byte accessed by the AVR CPU via the 8-bit data bus using two read or write operations. The 10-bit registers have a common 2-bit Timer/Counter4 High Byte Register (TC4H) that is used for temporary storing of the two MSBs of the 10-bit access. The same TC4H register is shared between all 10-bit registers. Accessing the low byte triggers the 10-bit read or write operation. When the low byte of a 10-bit register is written by the CPU, the high byte stored in the TC4H register, and the low byte written are both copied into the 10-bit register in the same clock cycle. When the low byte of a 10-bit register is read by the CPU, the high byte of the 10-bit register is copied into the TC4H register in the same clock cycle as the low byte is read. To do a 10-bit write, the high byte must be written to the TC4H register before the low byte is written. For a 10-bit read, the low byte must be read before the high byte. The following code examples show how to access the 10-bit timer registers assuming that no interrupts updates the TC4H register. The same principle can be used directly for accessing the OCRnA/B/C/C/D registers. Note: 1. The example code assumes that the part specific header file is included. For I/O registers located in extended I/O map, “IN”, “OUT”, “SBIS”, “SBIC”, “CBI”, and “SBI” instructions must be replaced with instructions that allow access to extended I/O. Typically “LDS” and “STS” combined with “SBRS”, “SBRC”, “SBR”, and “CBR”. The assembly code example returns the TCNTn value in the r17:r16 register pair. Assembly Code Example ... ; Set TCNT n to 0x01FF ldi r17,0x01 ldi r16,0xFF out TC nH,r17 out TCNT n,r16 ; Read TCNT n into r17:r16 in r16,TCNT n in r17,TC nH ... C Code Example unsigned int i; ... /* Set TCNTn to 0x01FF */ TCnH = 0x01; TCNTn = 0xFF; /* Read TCNTn into i */ i = TCNTn; i |= ((unsigned int)TCnH << 8); ... |
|
Link URL |
| Does ALLDATASHEET help your business so far? [ DONATE ] |
About Alldatasheet | Advertisement | Contact us | Privacy Policy | Link to Datasheet | Link Exchange | Manufacturer List All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |