I am unable to set the peripheral module I/O register. The following problems occur.
Even after I write data, the values are not set in the register.
The values set in the register are not the same values I have written.
All related registers are set with the same value.
What causes these problems and how can they be resolved?
The following are possible causes of this problem.
1.Writing to a Write Only register
A Write Only register cannot read data. In this case, the written contents are reflected in the register, but the I/O register window and the memory window do not display the contents. To confirm the connects of a Write Only register, prepare a dummy Write Only work area in the RAM and add a program to write to the dummy work area at the same time data is written to the Write Only register. This enables you to confirm the contents written to the Write Only register by confirming the contents of the work area.
2.The device has a module stop function
If the peripheral module is running the module stop function (set to stop), the module I/O register cannot be accessed (read/write are disabled). As a result the value of the I/O register does not change to the written value.
Refer to the device’s hardware manual for instructions on how to release the module stop for the corresponding peripheral module.
3.The size of the read/write is different than the I/O register access size
Check to make sure you are not trying to read/write an I/O register that uses word or long word units while the memory window is set to display in bytes. Normal access cannot be achieved when the access size of the read/write differs from the access size of the I/O register. The emulator has an I/O register window for such I/O registers. We recommend you use the I/O register window for the read/write operation.