Register-Level Programming
Chapter 4
PC-DIO-96 User Manual
4-22
© National Instruments Corporation
Interrupt Programming Example for the 8253
An in-depth example of handling interrupts generated by the 8253 is presented as follows. The
main program is presented in C, while sample interrupt routines are presented in assembly
language.
Main() {
#define BASE_ADDRESS
0x180
/* Board located at address 180 */
#define CTR0offset
0x10
/* Offset for counter 0 */
#define CTR1offset
0x11
/* Offset for counter 1 */
#define CTRCNFGoffset
0x13
/* Offset for 8253 CNFG */
#define IREG1offset
0x14
/* Offset for Interrupt Reg. 1 */
#define IREG2offset
0x15
/* Offset for Interrupt Reg. 2 */
#define channel
5
/* Interrupt channel on W1 */
#define use_ctr1
0
/* 0 for ctr0, 1 for ctr1 */
#define ctr0_data
10000
/* Pulse every 5 msec */
#define ctr1_data
1000
/* Pulse every 5 sec */
unsigned int ctr0, ctr1, cnfg, ireg1, ireg2;
/* Calculate register addresses */
ctr0 = BASE_A CTR0offset;
ctr1 = BASE_A CTR1offset;
cnfg = BASE_A CTRCNFGoffset;
ireg1 = BASE_A IREG1offset;
ireg2 = BASE_A IREG2offset;
/*
Disable interrupts */
outp(ireg1,0x00);
/* Disable all 82C55A interrupts */
outp(ireg2,0x00);
/* Disable counter interrupts */
/*
Set up the counter modes--do not write out the counter load values at
this time, as this starts the counter. */
outp(cnfg,0x34);
/* Set counter 0 to mode 2 */
if (use_ctr1) {
outp(cnfg,0x74);
/* Set counter 1 to mode 2 */
outp(ireg2,0x07);
/* Enable interrupts, enable counter
interrupts, and select counter 1's
output */
}
else outp(ireg2, 0x06);
/* Enable interrupts, enable counter
interrupts, and select counter 0's
output */
/* At this point, you should install your interrupt service routine using the
interrupt channel selected by W1. */
/*
install_isr(channel,...);
*/
/* Now write out the counter load values for the selected counters. */
Summary of Contents for PC-DIO-96
Page 71: ...OKI 82C55A Data Sheet Appendix B PC DIO 96 User Manual B 2 National Instruments Corporation...
Page 72: ...Appendix B OKI 82C55A Data Sheet National Instruments Corporation B 3 PC DIO 96 User Manual...
Page 73: ...OKI 82C55A Data Sheet Appendix B PC DIO 96 User Manual B 4 National Instruments Corporation...
Page 74: ...Appendix B OKI 82C55A Data Sheet National Instruments Corporation B 5 PC DIO 96 User Manual...
Page 75: ...OKI 82C55A Data Sheet Appendix B PC DIO 96 User Manual B 6 National Instruments Corporation...
Page 76: ...Appendix B OKI 82C55A Data Sheet National Instruments Corporation B 7 PC DIO 96 User Manual...
Page 77: ...OKI 82C55A Data Sheet Appendix B PC DIO 96 User Manual B 8 National Instruments Corporation...
Page 78: ...Appendix B OKI 82C55A Data Sheet National Instruments Corporation B 9 PC DIO 96 User Manual...
Page 79: ...OKI 82C55A Data Sheet Appendix B PC DIO 96 User Manual B 10 National Instruments Corporation...
Page 80: ...Appendix B OKI 82C55A Data Sheet National Instruments Corporation B 11 PC DIO 96 User Manual...
Page 81: ...OKI 82C55A Data Sheet Appendix B PC DIO 96 User Manual B 12 National Instruments Corporation...
Page 82: ...Appendix B OKI 82C55A Data Sheet National Instruments Corporation B 13 PC DIO 96 User Manual...
Page 83: ...OKI 82C55A Data Sheet Appendix B PC DIO 96 User Manual B 14 National Instruments Corporation...
Page 84: ...Appendix B OKI 82C55A Data Sheet National Instruments Corporation B 15 PC DIO 96 User Manual...
Page 85: ...OKI 82C55A Data Sheet Appendix B PC DIO 96 User Manual B 16 National Instruments Corporation...
Page 86: ...Appendix B OKI 82C55A Data Sheet National Instruments Corporation B 17 PC DIO 96 User Manual...
Page 88: ...AMD 8253 Data Sheet Appendix C PC DIO 96 User Manual C 2 National Instruments Corporation...
Page 89: ...Appendix C AMD 8253 Data Sheet National Instruments Corporation C 3 PC DIO 96 User Manual...
Page 90: ...AMD 8253 Data Sheet Appendix C PC DIO 96 User Manual C 4 National Instruments Corporation...
Page 91: ...Appendix C AMD 8253 Data Sheet National Instruments Corporation C 5 PC DIO 96 User Manual...
Page 92: ...AMD 8253 Data Sheet Appendix C PC DIO 96 User Manual C 6 National Instruments Corporation...
Page 93: ...Appendix C AMD 8253 Data Sheet National Instruments Corporation C 7 PC DIO 96 User Manual...
Page 94: ...AMD 8253 Data Sheet Appendix C PC DIO 96 User Manual C 8 National Instruments Corporation...
Page 95: ...Appendix C AMD 8253 Data Sheet National Instruments Corporation C 9 PC DIO 96 User Manual...
Page 96: ...AMD 8253 Data Sheet Appendix C PC DIO 96 User Manual C 10 National Instruments Corporation...
Page 97: ...Appendix C AMD 8253 Data Sheet National Instruments Corporation C 11 PC DIO 96 User Manual...
Page 98: ...AMD 8253 Data Sheet Appendix C PC DIO 96 User Manual C 12 National Instruments Corporation...
Page 99: ...Appendix C AMD 8253 Data Sheet National Instruments Corporation C 13 PC DIO 96 User Manual...
Page 100: ...AMD 8253 Data Sheet Appendix C PC DIO 96 User Manual C 14 National Instruments Corporation...