Timer Realtime-Interrupt
Funktion
Das Real Time Interrupt(RTI)-Modul erzeugt in regelmässigen Abständen Interruptsignale. Die Frequenz der Interruptsignale kann über einen Vorteiler aus dem "clk_i"-Takt eingestellt werden. Der Takteingang "clk_i" dieses Vorteilers kann beliebig mit dem Systemtakt, einem DCM Ausgang, einem Timerausgang oder dem Ausgang eines zweiten RTI verbunden werden. Durch Zugriff auf das RTI_CTRL-Register wird das Interruptsignal zurückgesetzt.Gleichzeitig mit den Interruptsignalen werden auch an einem speziellen Ausgang des RTI-Moduls Impulse (Impulsbreite ist eine Periode des Eingangstaktes) erzeugt.
Register
Das Steuerregister RTI_CTRL enthält alle zur Steuerung der Funktionen des RTI Moduls nötigen Bits. Bei einem Reset werden alle Bits mit Null initialisiert. Auf das Register kann lesend und schreibend zugegriffen werden.RTI_CTRL | Funktion (read/write) | ||||
Bit 0: | RTI enable: 0 = disable, 1 = enable | ||||
Bit 1: | Int enable: 0 = disable, 1 = enable | ||||
Bit 2 bis 5: | Vorteiler: | ||||
0000: 2⁰ | |||||
0001: 2¹ | |||||
0010: 2² | |||||
0011: 2³ | |||||
0100: 2⁴ | |||||
0101: 2⁵ | |||||
0110: 2⁶ | |||||
0111: 2⁷ | |||||
1000: 2⁸ | |||||
1001: 2⁹ | |||||
1010: 2¹⁰ | |||||
1011: 2¹¹ | |||||
1100: 2¹² | |||||
1101: 2¹³ | |||||
1110: 2¹⁴ | |||||
1111: 2¹⁵ | |||||
Bit 6 bis 17: | nicht benutzt |
rti.h
#ifndef __RTI_H #define __RTI_H #define RTI_EN (1 << 0) #define RTI_EN_INT (1 << 1) #define RTI_PRE_VAL (1 << 2) // *0 fuer 2^0 bis *15 fuer 2^15 #define RTI_PRE_1 (RTI_PRE_VAL * 0) #define RTI_PRE_2 (RTI_PRE_VAL * 1) #define RTI_PRE_4 (RTI_PRE_VAL * 2) #define RTI_PRE_8 (RTI_PRE_VAL * 3) #define RTI_PRE_16 (RTI_PRE_VAL * 4) #define RTI_PRE_32 (RTI_PRE_VAL * 5) #define RTI_PRE_64 (RTI_PRE_VAL * 6) #define RTI_PRE_128 (RTI_PRE_VAL * 7) #define RTI_PRE_256 (RTI_PRE_VAL * 8) #define RTI_PRE_512 (RTI_PRE_VAL * 9) #define RTI_PRE_1024 (RTI_PRE_VAL * 10) #define RTI_PRE_2048 (RTI_PRE_VAL * 11) #define RTI_PRE_4096 (RTI_PRE_VAL * 12) #define RTI_PRE_8192 (RTI_PRE_VAL * 13) #define RTI_PRE_16384 (RTI_PRE_VAL * 14) #define RTI_PRE_32768 (RTI_PRE_VAL * 15) typedef struct rti { volatile unsigned int ctrl; } rti_regs_t; #endif
Konfiguration und Instanziierung
Bei der Instanziierung eines RTI-Moduls wird der Parameter BASE_ADR vom jConfig automatisch eingestellt. BASE_ADR gibt den Offset der Adresse des Moduls zur Basisadresse aller Peripherieregister an. Der Wert besteht aus den oberen sieben Bit der zehn Bit-Adresse eines Moduls (die unteren drei Bit werden nur modulintern benutzt).Die Interruptleitung des Moduls muss an den gewünschten Eingang des Interruptkontrollers angeschlossen werden und der Ausgang für die RTI-Impulse an eine entsprechende Leitung.
Einstellungen für den Realtime-Interrupt






