- TPM1:
- PTE2 / TPM1CH0
- PTE3 / TPM1CH1
- PTF0 / TPM1CH2
- PTF1 / TPM1CH3
- PTF2 / TPM1CH4
- PTF3 / TPM1CH5
- TPM2:
- PTF4 / TPM2CH0
- PTF5 / TPM2CH1
- TPM1: 6 Kanäle
- TPM2: 2 Kanäle
- Bus-Clock (24Mhz)
- Fix System Clock (1 Mhz)
- External-Clock
- TPM2SC (8 Bit)
- TOF
- TOIE
- CPWMS
- CLKSB
- CLKSA
- PS2
- PS1
- PS0
- TPM2CNT (16 Bit)
- TPM2CNTH
- TPM2CNTL
- TPM2MOD (16 Bit)
- TPM2MODH
- TPM2MODL
- TPM2C0SC (8 Bit)
- CH0F
- CH0IE
- MS0B
- MS0A
- ELS0B
- ELS0A
- TPM2C0V (16 Bit)
- TPM2C0VH
- TPM2C0VL
- Skaliert den Clock um einen vordefinierten Faktor
- 1, 2, 4, 8, 16, 32, 64, 128
TOF = (MOD + 1) * PS / fClk
- Polling = zyklisches Abfragen
- kürzere Programmunterbrechung
- effiziente Status-Rettung möglich
- Vergeudung von Rechenzeit bei seltenen Ereignissen
- Interrupt = Ausnahmebehandlung
- sehr kurze Reaktionszeit durch automatisches Reagieren auf Ereignis
- Unterbrechung des Programms zur Abarbeitung einer ISR
- aufwendige Status-Rettung nötig, da Zeitpunkt unbekannt
- sehr schwer zu debuggen
- Interrupt-Service-Routine
- CPU-Status auf den Stack retten
- H-Register wird nur durch C-Compiler gerettet
- H-Register geht im Assembler verloren
ISR | Unterprogramm | |
---|---|---|
Aufruf | spontant | durch BSR/JSR |
Statusrettung | automatisch | durch Programm |
Rücksprung | RTI | RTS |
von der tiefste zur höchsten Priorität
- 1x Real-Time Clock
- 1x IIC Modul
- 1x Komparator Modul
- 1x A/D-Wandler
- 1x Keyboard-Interface
- 6x SCI 1/2 Module
- 10x Timersystem
- 1x USB Modul
- 2x SPI 1/2 Modul
- 1x Clock Generator
- 1x Low-Voltage Detektion
- 1x externer IRQ Pin
- 1x SW-Interrupt (SWI)
- 1x Reset Interrupt
CLI
: Interrupts global freigebenSEI
: Interrupts global sperren
- Interruptvektoren definieren
- Stack definieren und initialisieren
- Interrupt-Flags vor Freigabe löschen, damit nicht sofort ausgelöst wird
- ISR programmieren; CPU-Status wird automatisch gerettet
- in der ISR das entsprechende Interrupt-Flag löschen
- ISR mit RTI abschliessen (automatisch durch C-Compiler)
- im Hauptprogramm Interrupts global freigeben (CLI)
- Reagieren auf Ereignisse welche zu einem unbekannten Zeitpunkt auftreten
- eine Art Tabelle, welche die Einsprungadressen für alle Interrupts enthält
- 2 Bytes
- er lässt sich nur auf 0 setzen
- kleinere Energieverbrauch
- Zyklusgenau
- Zwischenzeit kann genutzt werden