22
Interrupts CML-12C32 Lecture L4.2

Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

  • View
    221

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

InterruptsCML-12C32

Lecture L4.2

Page 2: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

ReferencesS12CPUV2Reference ManualSection 7

S12CPUV2.pdf

CRGBlock User GuideV04.05

S12CRGV4.pdf

Interrupt (INT)Module V1

S12INTV1.pdf

CML-12C32Development Board for Motorola MC9S12C32

CML12C32_UG.pdf

Page 3: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

Interrupts

• 68HC12 Interrupts

• Real-Time Interrupts

Page 4: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

HCS12 Interrupts

Page 5: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

Register Stacking for Interrupts

Ret Addr H

YL

YH

XL

XH

ACCA

ACCB

CCR

SP before interrupt

SP after interrupt

Ret Addr L

Page 6: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

Interrupt Vector TableRef: MC9S12C Family Device User Guide

9S12C128DGV1.pdf

Page 7: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

Interrupt Vector Table (cont.)

Page 8: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

Interrupt Vector Table (cont.)

Page 9: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

Interrupt (INT)Module V1

S12INTV1.pdf

Page 10: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

Monitor Interrupt Vector Table

Off by 2

Page 11: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)
Page 12: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

S12MEBIV3.pdf

Multiplexed ExternalBus Interface (MEBI)Block User GuideModule V3

Page 13: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

S12MEBIV3.pdf

Page 14: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

Interrupts

• 68HC12 Interrupts

• Real-Time Interrupts

Page 15: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

Real-Time Interrupt Registers

$0037

Page 16: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

$0038

Page 17: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

$003B

Page 18: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)
Page 19: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

; RTI testouta equ $FF4Frti_ivec equ $0FF2crgflg equ $0037crgint equ $0038rtictl equ $003b

org $800ticks dw 0

Note: Should be$0FF0. Monitor error

Interrupt routineincrements ticks

Page 20: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

rti_init sei ;disable interruptsldaa #$59staa rtictl ;set rti to 10.24 msldaa #$80staa crgint ;enable rtildx #rti_intserstx rti_ivec ;store rti int vectorcli ;enable interruptsrts

rti_intser ldd ticksaddd #1 ;inc ticksstd ticksldaa #$80staa crgflg ;clear rti flagrti

Page 21: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

ORG $4000

mainjsr rti_initldab #10

mn1 tbajsr hexascjsr outabsr sec_delaydecbbne mn1swi

Page 22: Interrupts CML-12C32 Lecture L4.2. References S12CPUV2 Reference Manual Section 7 S12CPUV2.pdf CRG Block User Guide V04.05 S12CRGV4.pdf Interrupt (INT)

sec_delaypshb ;save Bldd ticksstd 2,-sp ;store tick0

sd1 ldd ticks ;read tickssubd 0,sp ;diff = ticks-ticks0cpd #100 ;repeat until 100 ticksblo sd1leas 2,sp ;fix stackpulb ;restore Brts