summaryrefslogtreecommitdiff
path: root/AT91SAM7S256/Source/c_output.iom
diff options
context:
space:
mode:
Diffstat (limited to 'AT91SAM7S256/Source/c_output.iom')
-rw-r--r--AT91SAM7S256/Source/c_output.iom17
1 files changed, 11 insertions, 6 deletions
diff --git a/AT91SAM7S256/Source/c_output.iom b/AT91SAM7S256/Source/c_output.iom
index fc26efd..989a0c4 100644
--- a/AT91SAM7S256/Source/c_output.iom
+++ b/AT91SAM7S256/Source/c_output.iom
@@ -27,6 +27,9 @@ enum
REG_METHOD = 0xF0 /* Regulation methods - to be designed! */
};
+#define OPTION_HOLDATLIMIT 0x10
+#define OPTION_RAMPDOWNTOLIMIT 0x20
+
// Constants related to Flags
enum
{
@@ -49,9 +52,10 @@ enum
// Constant related to RegMode
enum
{
- REGULATION_MODE_IDLE,
- REGULATION_MODE_MOTOR_SPEED,
- REGULATION_MODE_MOTOR_SYNC
+ REGULATION_MODE_IDLE = 0,
+ REGULATION_MODE_MOTOR_SPEED = 1,
+ REGULATION_MODE_MOTOR_SYNC = 2,
+ REGULATION_MODE_MOTOR_POS = 4,
};
typedef struct
@@ -73,15 +77,16 @@ typedef struct
UBYTE Overloaded; /* R - True if the motor has been overloaded within speed control regulation */
SBYTE SyncTurnParameter; /* RW - Holds the turning parameter need within MoveBlock */
UBYTE Options;
- UBYTE SpareTwo;
- UBYTE SpareThree;
+ SBYTE MaxSpeed; /* RW - Maximum speed for absolute regulation, or 0 for no limit */
+ SBYTE MaxAcceleration; /* RW - Maximum acceleration for absolute regulation, or 0 for no limit */
}OUTPUT;
typedef struct
{
OUTPUT Outputs[NO_OF_OUTPUTS];
- UBYTE PwnFreq;
+ UBYTE RegulationTime; /* RW - Interval between regulation computations */
+ UBYTE RegulationOptions; /* RW - Options for regulation, see REGOPTION_* */
}IOMAPOUTPUT;