5 using interrupts in application tasks – Rockwell Automation 57C411 Resolver Input Module User Manual
Page 26

4Ć8
2000
UPDATE_TIME% = 1
\!500 microsecond conversion
2010
CCLK_EN@ = TRUE
\!Turn on the clock
4000
!
4001
! Place any additional initialization software here
4002
!
4998
! Scan every 55 msec.
4999
!
5000
CALL SCAN_LOOP( TICKS=10)
5010
CALL INVERTER( INPUT= RESOLVER_IN%,OUTPUT=READING%)
10000
END
The symbolic names defined as COMMON" reference the inputs
defined in the sample configuration task above. The symbolic name
READING%" is local to the BASIC task and does not have I/O
associated with it. Refer to the DCS 5000 Control Block Language
Instruction Manual (JĆ3601) for more information.
4.5
Using Interrupts in Application Tasks
The input module supports an interrupt on the periodic
resolverĆtoĆdigital conversion. Interrupts are used to synchronize
software tasks with the resolverĆtoĆdigital conversion. Conversion
rates may be specified from 500 microseconds up to a maximum of
32.7675 seconds in increments of 500 microseconds.
In order to use interrupts on the input module, it is necessary to
assign symbolic names to the interrupt control register. This is
accomplished with IODEF statements in the configuration task. Note
that interrupts cannot be used with modules located in remote racks.
Only one task may act as a receiver for a particular hardware
interrupt. That task should declare the symbolic names assigned to
the interrupt control register on the input module as COMMON. Once
this has been done, any reference to those symbolic names within
the task will reference the bits or register defined in the configuration
task.
The following is an example of a configuration task for an input
module using interrupts:
1000
!
1001
! resolver data
1002
!
1005
IODEF RESOLVER_IN%[SLOT=4, REGISTER=0]
1006
IODEF RESOLVER_IN_EXT%[SLOT=4, REGISTER=1]
1010
!
1011
! interrupt status and control register (used by the operating system)
1012
!
1014
IODEF STROBE_STATUS@( SLOT=4, REGISTER=2,BIT=14)
1015
IODEF ISCR%[SLOT=4, REGISTER=3]
1016
IODEF STROBE_ACK@( SLOT=4, REGISTER=3,BIT=12)
1020
!
1021
! common clock enable
1022
!
1025
IODEF CCLK_EN@[SLOT=4, REGISTER=3, BIT=6]
1030
!
1031
! resolver conversion period
1032
!
1035
IODEF UPDATE_TIME%[SLOT=4, REGISTER=4]
1050
!
1051
! Place additional configuration statements here
1052
!
2000
END
This configuration defines all of the information most commonly used
on the module. Unused definitions should be deleted by the user.