
2002 Microchip Technology Inc.
Preliminary
DS30485A-page 121
PIC18FXX39
14.4
Developing Applications Using
the Motor Control Kernel
The Motor Control kernel allows users to develop their
applications without having knowledge of motor con-
trol. The key parameters of the motor control kernel can
be set and read through the Application Program Inter-
face (API) methods discussed in the previous section.
The overall application can be thought of as a protocol
methods reside between the user’s application and the
ProMPT kernel, and are used to exchange parameter
values. The motor control kernel sets the PWM duty
cycles based on the inputs from the application
software.
A typical motor control routine is shown in
for 10 seconds, accelerate to 60 Hz at the rate of
10 Hz/s, remain at 60 Hz for 20 seconds, and finally
stop.
FIGURE 14-3:
LAYERS OF THE
MOTOR CONTROL
ARCHITECTURE STACK
EXAMPLE 14-1:
MOTOR CONTROL ROUTINE USING THE ProMPT APIs
ProMPT Motor
Hardware
Application Program
Interface (API)
Application Software
Parameters
Control Kernel
Methods
and User Interface
Void main()
{
unsigned char i;
unsigned char j;
ProMPT_Init(0);
// Initialize the ProMPT block
i = ProMPT_SetFrequency(10);
// Set motor frequency to 10Hz
for (i=0;i<161;i++)
// Set counter for 10 sec @ 1/16 sec per tick
{
j = ProMPT_Tick(void);
// Tick of 1/16 sec
ProMPT_ClearTick(void);
// Clearing the Tick flag
}
ProMPT_SetAccelRate(10);
// Set acceleration rate to 10 Hz/sec
i = ProMPT_SetFrequency(60);
// Set motor frequency to 60 Hz
for (i=0;i<161;i++)
// Set counter for 20 Sec @ 1/16 sec per tick
{
// (2 loops of 10 Sec each)
j = ProMPT_Tick(void);
// Tick of 1/16 Sec
ProMPT_ClearTick(void);
// Clearing the Tick flag
j = ProMPT_Tick(void);
// Tick of 1/16 Sec
ProMPT_ClearTick(void);
// Clearing the Tick flag
}
i = ProMPT_SetFrequency(0);
// Set motor frequency to 0 Hz (stop)
while(1);
}
// End of the task