I am very new to embedded system programming, I just need to learn how to manipulate the given via c++ code.
Given:
Motor 1 is mapped to 0x60000000
Motor 2 is mapped to 0x50000000
the following are the definitions of current 32-bit registers
REGISTER NAME | BYTE OFFSET | NOTES
----------------------------------------------------------------------
motor_interrupt 0x00 service interrupts
motor_status 0x01 enable on demand access to status elements
motor_command 0x02 enable command of the motor
REGISTER NAME | NAME | BITS | ACCESS TYPE | DESC
----------------------------------------------------------------------------------
motor_interrupt_register
CLOSED 0 R/W high when motor transitions to CLOSED position
OPEN 1 R/W high when motor transitions to OPEN position
RESERVED 2.31 N/A reserved for future use
motor_status
SPEED 0.2 R speed in counts/seconds
STATE 3 R current state of motor
POSITION 4.13 R current position of the motor
RESERVED 14.31 n/a reserved for future use
I find it hard to see a sample c++ code using the given, At this point what i know is I need to access the register_name and set their bits to perform specific task or read the register name to get the status for example.
I think I can understand it more if it is used in a c++ code. The given is a automatic door system ( i didnt write the button details). Will I need to access the register_name or the byte_offset in c++?
Your help would be very much appreciated
C/C++ example to read interrupt/status registers:
Similarly to write 32 bit values to to the command registers: