1.2.2.3.2 Assignments
Assignments are used to assign a new value to an I/O register. The operators are listed in Table 1-1.
Statement |
Description |
---|---|
|
Direct assignment; set target equal to value |
|
Bitwise OR assignment; bits that are |
|
Bitwise AND assignment; bits that are |
|
Bitwise XOR assignment; bits that are |
The target can be the numerical memory address of an I/O register in the I/O map. For simple devices with a flat I/O structure such as tinyAVR® and megaAVR®, the register name, as found in the data sheet, can also be used.
For devices with complex I/O structure (XMEGA®, UC3, SAM), it is for now recommended to use addresses. The easiest way to determine the address is to bring up the I/O view and select the desired register. The address can be copied from the I/O view (select the desired register, right-click, and select “Copy Address”).
The value can be either a numerical constant specified in decimal, octal, or hex according
to C syntax, or it can have the form *source
. When using this syntax
source
is the name or memory address of an I/O register. The current
interpreter does not support expressions.
GPIOR0 = *GPIOR1 // Allowed! GPIOR0 = *GPIOR1 + 1 // Not allowed!