Documentation Podstawy techniki mikroprocesorowej ETEW6 Andrzej Stępień Katedra Metrologii Elektronicznej i Fotonicznej PICmicro MID-RANGE MCU FAMILY. Microchip Technology, December 997, 3323a.pdf ST7. 8-BIT MCU FAMILY USER GUIDE. STMicroelectronics, July 22. MSP43x3 Family User s Guide. Texas Instruments, SLAU2A, 22. MCS@5 MICROCONTROLLER FAMILY USER S MANUAL. Intel, February 994 C55C 8-Bit CMOS Microcontroller. User s Manual. Infineon, Nov. 2 Steve Furber: ARM System-on-Chip Architecture, 2nd Edition. Addison Wesley, 2, ISBN-: -2-6759-6. źródła zgłaszania przerwań Po co komu Jak powinien reagować procesor: na zjawiska (sygnały) periodyczne lub aperiodyczne, wewnętrzne lub zewnętrzne? przy różnej szybkości pracy procesora i urządzeń zewnętrznych? przy wymaganiu wielozadaniowości (multitasking)? Reakcja procesora Polling versus s Programowa reakcja procesora - wykonywanie stałych pętli testujących, cyklicznych procedur testujących (Polling): znaczne obciążenie procesora, spadek efektywnego wykorzystania czasu pracy procesora brak natychmiastowej reakcji procesora wskutek zdeterminowanej przez kolejności wykonywanych procedur testujących Sprzętowa reakcja procesora - wykorzystanie systemu przerwań : brak obciążenia procesora jeśli brak żądania obsługi ( Request) natychmiastowa reakcja procesora po spełnieniu pewnych warunków, dodatkowych warunków; rozpoczęcie wykonywania procedury obsługi (podobieństwo do wywołania podu) USB Data Transfers (Polling) used for characters or coordinates with human-perceptible echo or feedback response characteristics interrupt transfer type is designed to support those devices that need to send or receive data infrequently but with bounded service periods (periodic) requesting a pipe with an interrupt transfer type provides: guaranteed maximum service period for the pipe (time between transactions the requester, ms = minimum time for Full Speed transmission) retry of transfer attempts at the next period, in the case of occasional delivery failure due to error on the bus
Przerwanie (interrupt) zawieszenie (przerwanie) wykonywanego u, najczęściej po spełnieniu dodatkowych warunków, zapamiętanie wszystkich niezbędnych do kontynuowania zawieszonego u wykonanie podu ( - Service Routine) obsługi zdarzenia (sygnału) żądającego (wymagającego) obsługi kontynuacja zawieszonego u zachowanie stanu procesora żądanie odtworzenie stanu procesora t źródła/identyfikacja przerwań Typy przerwań Hardware Reset w procesorach przerwanie sprzętowe niemaskowalne (NMI Non - Maskable ) rozpoczęcie wykonywania obsługi bez warunków wstępnych (zawsze) sprzętowe zerowanie procesora (Hardware Reset) rozpoczęcie wykonywania procedury bez warunków wstępnych (zawsze), zmiana wartości niektórych rejestrów przerwanie sprzętowe maskowalne (Maskable ) rozpoczęcie wykonywania procedury obsługi zależnie od spełnienia określonych warunków wstępnych; owe blokowanie / odblokowanie obsługi przerwań (Enable / Disable ) przerwanie owe (SWI SoftWare ) owe wywołanie obsługi operacja pułapki (Trap) inicjowana pojawieniem się błędu, np. próba dzielenia przez zero zerowanie / ustawienie licznika rozkazów blokada przerwań zerowanie / ustawienie rejestrów specjalnych mikrokontrolerów wyłączenie trybu użytkownika (przy różnych trybach pracy) C5 Reset - C5, ST7, MSP43, ARM7 RESET_Proc... 3h Ext Int h JMP RESET_Proc ARM7 RESET_Proc h... Exception 4h Undefined Instruction RESET_Proc ST7FLite FFFEh RESET_Proc FFFCh FFFAh FFF8h MSP43 SWI - Trap not used Ext Int...... FFFEh RESET_Proc FFFCh NMI_Proc FFFAh I/O_Proc FFEh......... RESET_Proc RESET_Proc ST7FLite mapping Higher address = higher priority 2
Wybrane SWI w x86 Nr Typ Nr Typ h Dzielenie przez zero 9h Gorący restart systemu h Praca krokowa Ah Obsługa drukarki 2h Przerwanie niemaskowalne Bh CTRL + BREAK 3h Pułapka (Breakpoint) Ch Przerwanie zegarowe użytkownika 4h Nadmiar Dh Tabela trybów wyświetlania 5h Wydruk zawartości ekranu Fh Tablica wzorców znaków 8h Przerwanie zegara 2h Zakończenie u 9h Przerwanie klawiatury 2h Funkcje MS-DOS Eh Przerwanie kontrolera dysków 22h Zakończenie u h Obsługa monitora 23h CTRL + C (CTRL + BREAK) h Konfiguracja komputera 24h Błąd krytyczny urządzenia 2h Rozmiar pamięci 25h Czytanie sektora dyskowego 3h Obsługa dysków 26h Pisanie sektora dyskowego 4h Obsługa złącza szeregowego... 5h Dodatkowe funkcje AT 2Fh Obsługa równoczesnych procesów 6h Obsługa klawiatury 33h Obsługa myszy 7h Obsługa drukarki 4h Tablica parametrów 8h Uruchomienie BASIC-a z ROM 46h dysku twardego / Źródła przerwań w mikrokontrolerach Wewnętrzne: kontrolery DMA, liczniki (Match, Capture, Reload, PWM), RTC (Real Time Clock), kontrolery interfejsów (UART, I 2 C-Bus, SPI, CAN, USB, Ethernet,..) przetworniki (A/C i C/A), BOD (Brown Out Detect), WDT (WatchDog Timer), próba wykonania zabronionej instrukcji lub niewłaściwych argumentów (np. próba dzielenia przez zero, nadmiar,..) Core (Embedded ICE). Zewnętrzne: poziom sygnału zewnętrznego, zbocze sygnału zewnętrznego. maskowalne należy owo odblokować P3.2 INT# P3.2 INT# Standard C5 - kontroler przerwań Timer Overflow Timer Overflow Serial Port IT IT RI TI IE IE TF TF EX EX ET ET ES EA PX 3h PX 3h PT Bh PT Bh 23h PS High Priority Low Priority when EA bit is set to, all interrupts are enabled C5 Mechanism IE Enable Register An interrupt is requested Its relative pending bit is set EA = Core finishes its current instruktion PC are pushed onto the stack EA = (disable interrupt) PC = address of the interrupt vector EA ET2 ES ET EX ET EX General interrupt enable No when EA bit is set (EA=), all interrupts are enabled This interrupt will be serviced when EA = Service Routine ST7 Mechanism An interrupt is requested Its relative pending bit is set I = (CC register) H I N Z C No Core finishes its current instruktion PC, X (not Y), A, CC are pushed onto the stack I = (disable interrupt) PC = address of the interrupt vector ST7 Condition Code (CC) Register General flag Clearing I bit (I=), all interrupts are enabled This interrupt will be serviced when I = Service Routine 3
MSP43 Mechanism Status Register RESERVED V An interrupt is requested Its relative pending bit is set GIE = SCG SCG OSC Off Core finishes its current instruktion PC, SR are pushed onto the stack GIE = (disable interrupt) PC = address of the interrupt vector No CPU Off General interrupt enable GIE N Z C when GIE bit is set (GIE=), all interrupts are enabled This interrupt will be serviced when GIE = Service Routine Identyfikacja urządzenia Adresy procedur obsługi przerwań Programowa / sprzętowa identyfikacja urządzenia / sygnału zgłaszającego przerwanie: badanie obiegiem realizowane owo w procedurach testujących metoda łańcuchowa: urządzenia dołączone do procesora w kolejności ważności (pierwszeństwa) obsługi sygnał potwierdzenia przyjęcia jest bramkowany w urządzeniu zgłaszającym przerwanie, które podaje swój numer identyfikacyjny szyną metoda wektorowa wygenerowanie adresu podu obsługi od urządzenia zgłaszającego przerwanie Adres początkowy procedury obsługi : dostarczany przez urządzenie zewnętrzne, to samo, które wywołało przerwanie; po akceptacji przesyłanie szyną adresu początku obsługi w tablicy wektorów przerwań (C5): w tablicy wyłącznie 2 N bajtów adresów przerwań (6 bitowa szyna adresowa); pozycja adresu zależna od rodzaju stałe adresy ustalone przez producenta procesora, np. co 4 lub co 8 bajtów (3, Bh, 3h itd.) PICmicro MID-RANGE MCU FAMILY When an interrupt is responded to, the Global Enable bit (GIE) bit is cleared to disable any further interrupt, the return address is pushed into the stack and the PC is loaded with 4h. ST7FLite mapping GIE to CPU clear GIE bit addr = 4h Once in the interrupt service routine the source(s) of the interrupt can be determined by polling the interrupt flag bits. Generally the interrupt flag bit(s) must be cleared in software before re-enabling the global interrupt to avoid recursive interrupts. Higher address = higher priority 4
MSP43 Family Dedicated I/O Port Figure 3 4. Priority Scheme MSP433xx Sources, Flags and Vectors Source System Word Priority Flag Address Power-up, ext. reset, watchdog WDTIFG Reset FFFEh 5 (highest) NMI, OSC. Fault NMIIFG/OFIFG NMI FFFCh 4 Dedicated I/O PIFG. Maskable FFFAh 3 Dedicated I/O PIFG. Maskable FFF8h 2 Maskable FFF6h Watchdog Timer WDTIFG Maskable FFF4h Timer_A CCIFG Maskable FFF2h 9 Timer_A TAIFG Maskable FFFh 8 USART receive URXIFG Maskable FFEEh 7 USART transmit UTXIFG Maskable FFECh 6 ADC, Timer/Port ADCIFG Maskable FFEAh 5 Timer/Port Maskable FFE8h 4 Port P2 P2IFG.7 Maskable FFE6h 3 Port P PIFG.7 Maskable FFE4h 2 Basic timer BTIFG Maskable FFE2h Port PIFG.27 Maskable FFEh (lowest) Standard C5 Source and Vectors indywidualne, bezpośrednie adresy wektorów przerwań Standard dla RESET tylko 3 bajty kolejne adresy wektorów przerwań co 8 bajtów Source Vector Request Address Flags External 3H IE Timer Overflow BH TF External 3H IE Timer Overflow BH TF Serial Channel 23H RI / TI Timer 2 Overflow / / Ext. Reload 2BH TF2 / EXF2 A/D Converter 43H IADC External 2 4BH IEX2 External 3 53H IEX3 External 4 5BH IEX4 External 5 63H IEX5 External 6 6BH IEX6 Wake-up from power-down mode 7BH CAN controller 8BH External 7 A3H External 8 ABH SSC interface 93H TC / WCOL P3.2 INT# P3.2 INT# Standard C5 - kontroler przerwań Timer Overflow Timer Overflow Serial Port IT IT RI TI IE IE TF TF EA EX EX ET ET ES PX 3h PX 3h PT Bh PT Bh 23h PS High Priority Low Priority when EA bit is set to, all interrupts are enabled ARM7: FIQ, vectored & nonvectored IRQ [/2] The Vectored Controller (VIC) takes 32 interrupt request inputs and mably assigns them into 3 categories: fast interrupt (FIQ): highest priority the fastest, short interrupt response time vectored (IRQ) interrupt: middle priority only 6 of the 32 requests can be assigned to this category non-vectored (IRQ) interrupt: lowest priority the slowest, long interrupt response time Type Flag(s) Mask VIC Channel WDT Watchdog (WDINT) x Reserved for Software s only x 2 Sources LPC2xx ARM Core Embedded ICE, DbgCommRx 2 x 4 ARM Core Embedded ICE, DbgCommTX 3 x 8 TIMER Match.. 3 (MR,.., MR3), Capture.. 3 (CR,.., CR3) 4 x TIMER Match.. 3 (MR,.., MR3), Capture.. 3 (CR,.., CR3) 5 x 2 UART Rx Line Status (RLS), Transmit Holding Register Empty (THRE) 6 x 4 Rx Data Available (RDA), Character Time-out Indicator (CTI) UART Rx Line Status (RLS), Transmit Holding Register Empty (THRE) 7 x 8 Rx Data Available (RDA), Character Time-out Indicator (CTI) Modem Status (MSI)[*] PWM Match.. 6 (MR, MR,.., MR6) 8 x I 2 C SI (state change) 9 x 2 SPI SPI Flag (SPIF)/Mode Fault (MODF) x 4 SPI (SSP) TX FIFO at least half empty (TXRIS), Rx FIFO at least half full x 8 (RXRIS) Receive Timeout condition (RTRIS), Receive overrun (RORRIS) RTC Counter Increment (RTCCIF)/Alarm (RTCALF) 3 x 2 EINT System Control External 4 x 4 EINT External 5 x 8 EINT2 System Control External 2 6 x EINT3 System Control External 3 7 x2 ADC A/D Converter end of conversion 8 x4 I 2 C SI (state change) 9 x8 BOD Brown Out detect 2 x ADC A/D Converter end of conversion 2 x2 5
Jednopoziomowa obsługa przerwań blokowanie przyjęcia następnego w przypadku, gdy nie jest zakończona obsługa poprzedniego wykonanie jednej instrukcji z u głównego przed rozpoczęciem obsługi zgłoszonego (czekającego w kolejce) priorytet żądanie A żądanie A żądanie B żądanie C Wielopoziomowa obsługa przerwań przyporządkowanie różnych poziomów priorytetów procedurom obsługi przerwań, co umożliwia przerwanie bieżącej procedury przez inną procedurę o wyższym priorytecie: priorytety owe są ustalane przez istę, zwykle od 2 do 6 poziomów priorytetów priorytety sprzętowe są ustalane przez producenta procesora priorytet żądanie A żądanie A żądanie B zagnieżdżone (Nesting of s ) żądanie C Standard C5 - rejestry kontrolera przerwań IE Enable Register addr = A8h, RW = h IP Priority Register addr = B8h, RW = h EA ET2 ES ET EX ET EX TCON Timer/Counter Control Register TF TR TF TR IE IT IE IT addr = 88h, RW = h SCON Serial Port Control Register addr = 98h, RW = h SM SM SM2 REN TB8 RB8 TI RI PT2 PS PT PX PT PX w C57 High External IE Timer TF External IE Timer TF Serial Channel RI + TI Timer 2 TF2 + EXF2 IP Bit IP. / IP. IP. / IP. IP.2 / IP.2 IP.3 / IP.3 IP.4 / IP.4 IP.5 / IP.5 Serial Channel RI + TI Compare Timer CTF Irq Flag IE RI + TI IADC TF IEX2 IE IEX3 TF CTF IEX5 RI + TI IEX6 TF2 + EXF2 IEX6 Low / High A/D Converter IADC External 2 IEX2 External 3 IEX3 External 4 IEX4 External 5 IEX5 External 6 IEX6 Low Standard C5 - priorytety przerwań Priorytety sprzętowe: IE najwyższy adres procedury obsługi = 3h TF Bh IE 3h TF Bh RI + TI najniższy 23h Priorytety owe, zmieniane przez użytkownika IP Priority Register addr = B8h, RW = h PT 2 PS PT PX PT PX 6
ARM7 When an exception occurs, the ARM: Copies CPSR into SPSR_<mode> Sets appropriate CPSR bits Change to ARM state Change to exception mode Disable interrupts (if appropriate) Stores the return address in LR_<mode> Sets PC to vector address x C x 8 x 4 x x C x 8 x 4 x FIQ IRQ (Reserved) Data Abort Prefetch Abort Software Undefined Instruction Reset 3 24 23 22 2 2 9 8 7 6 5 4 3 2 9 8 ARM7:.. FIQ, vectored & nonvectored IRQ [2/2] AD (Enable) VICIntEnable VICIntEnClear (Disable) BOD I2C Adx, BOD I2Cx, SPx EINTx RTC, PLL TIMERx, PWMx UARTx, WDT AD EINT3 EINT2 EINT VICFIQStatus VICIRQStatus EINT RTC PLL SP / SSP SPI I2C PWM 7 6 5 4 3 2 (FIQ) priority & address VICDefVectAddr VICIntSelect VICVectCntl5 VICVectAddr5...... (IRQ) VICVectCntl VICVectAddr VICVectCntl VICVectAddr highest VICRawIntr UART UART Timer Timer ARMCore VICVectAddr ARMCore WDT FIQ status address I priority R status Q status Czas reakcji Czas reakcji (Response Time) - czas liczony od momentu przyjęcia zgłoszenia do zakończenia ostatniej wykonywanej instrukcji w przerywanym ie; czas zależny od: sposobu testowania kolejności zgłoszonych przerwań liczby cykli maszynowych potrzebnych do zakończenia bieżącej, wykonywanej instrukcji typu wykonywanych instrukcji, np. owania kontrolera priorytetów przerwań żądanie ( Request) reakcja na przerwanie (Response Time) rozpoczęcie wykonywania Czas opóźnienia Czas opóźnienia i reakcji Czas opóźnienia (Latency Time) - czas liczony od momentu zgłoszenia do momentu rozpoczęcia wykonywania podu obsługi (); czas zależny dodatkowo od: sposobu wywołania podu obsługi, szybkości przesłania na stos licznika rozkazów PC liczby bajtów innych rejestrów przesyłanych na stos przed rozpoczęciem podu obsługi reakcja na żądanie obsługi żądanie ( Request) PUSH PC przygotowania... CALL opóźnienie (Latency Time) rozpoczęcie wykonywania PICmicro MID-RANGE MCU FAMILY. przygotowanie Microchip do Technology, December 997, 3323a.pdf, 8.3 rozpoczęcia Latency (p.32): reakcja procesora na żądanie procedury PUSH PC... CALL latency is defined as the time from the interrupt event obsługi (the interrupt flag bit gets set) to the time that the instruction at address 4h starts execution (when that interrupt is enabled). 8-bit Microcontrollers. reakcja Databook na przerwanie - 997. Temic Semiconductors, 997 (Response Time) żądanie Response time... ifopóźnienie a request is (Latency active and Time) conditions rozpoczęcie are right for ( it to berequest) acknowledged, a hardware subroutine call to the wykonywania requested service routine will be the next instruction to be executed (polling cycle + long CALL to interrupt vector address). 7
Standard C5 - (/2) Standard C5 - (2/2) S5P2 testowanie warunków (polling) obsługa () S5P2 testowanie warunków (polling) obsługa () C C2 C3 C4 C5 próbkowanie przerwań zawsze w fazie S5P2 (sampling) Skok do adresu wektora (LCALL to vector address) Blokada skoku jeśli: jest wykonywana obsługa o równym / wyższym priorytecie testowanie jest wykonywane w cyklu, który nie jest ostatnim cyklem maszynowym instrukcji jest wykonywana instrukcja modyfikująca kontroler przerwań (RETI, modyfikacja: IE, IP,...) jeśli podane warunki są spełnione to wykonywana jest dodatkowo jedna (neutralna) instrukcja C C2 C3 C4 C5 próbkowanie przerwań zawsze w fazie S5P2 (sampling) opóźnienie Skok do adresu wektora (LCALL to vector address) Czas opóźnienia - czas liczony od momentu zgłoszenia do momentu rozpoczęcia wykonywania podu obsługi (): minimum 3 pełne cykle maszynowe Czas trwania zewnętrznego sygnału przerywającego nie krótszy niż cykl maszynowy ARM7: FIQ, vectored & nonvectored IRQ - NXP FIQ interrupt: highest priority the fastest, short interrupt response time entry to first Instruction, Latency = 2 cycles = 2 ns @ 6MHz vectored IRQ interrupt: middle priority entry to first instruction + Nesting, Latency = 25 cycles = 46ns @ 6MHz non-vectored IRQ interrupt: lowest priority the slowest, long interrupt response time Obsługa przerwań Ochrona, przechowywanie stanu rejestrów procesora po przyjęciu i rozpoczęciu realizacji procedury obsługi : przełączanie (data swapping) przechowywanie na stosie zawartości rejestrów wykorzystywanych w obsłudze sprzętowe bez konieczności wprowadzania dodatkowych instrukcji na początku i końcu u obsługi, np. MSP43, ARM owe dodatkowe instrukcje na początku (PUSH) i końcu (POP) u obsługi, np. x86 przełączanie kontekstowe (context switching) wykorzystanie dodatkowych zestawów, banków rejestrów, np. C5 Przełączanie C5 owe: CPU kończy wykonywanie bieżącej instrukcji PC przesłane na stos EA (EAL) =, blokada wszystkich przerwań PC = adres procedury obsługi z tablicy wektorów przerwań MSP43 sprzętowo/owe: CPU kończy wykonywanie bieżącej instrukcji PC, SR przesłane na stos GIE =, blokada wszystkich przerwań PC = adres procedury obsługi z tablicy wektorów przerwań ST7 sprzętowe: CPU kończy wykonywanie bieżącej instrukcji PC, X (nie Y), A, CC przesłane na stos I =, blokada wszystkich przerwań PC = adres procedury obsługi z tablicy wektorów przerwań???!!! 8
C5 owe przełączanie [/2] zewnętrzna pamięć kodu u CODE wewnętrzna pamięć kodu u DATA SFR IDATA DATA RAM IDATA RAM 7Fh rejestry XDATA FFh 8h zewnętrzna pamięć wewnętrzna pamięć C5 owe przełączanie [2/2] tylko w odniesieniu do: standardowo: A, PSW i DPTR (jeśli występuje tylko jeden) nietypowo: IE, IP itp. IrqInit: PUSH ACC ; ochrona akumulatora PUSH PSW ; ochrona rejestru PSW ANL PSW, # b ORL PSW, # b ; bank RB PUSH DPL ; ochrona DPTR PUSH DPH... ; zasadnicza część POP DPH ; odtworzenie DPTR POP DPL POP PSW ; odtworzenie PSW POP ACC ; odtworzenie akumulatora RETI void TimerT(void) interrupt using { 2h R7 R6... RB3 R 8h R R7 R6... RB2 R h R R7 R6... RB R 8h R R7 R6... RB R h R ARM7 context switching When an exception occurs, the ARM: Copies CPSR into SPSR_<mode> Sets appropriate CPSR bits Change to ARM state Change to exception mode Disable interrupts (if appropriate) Stores the return address in LR_<mode> Sets PC to vector address x C x 8 x 4 x x C x 8 x 4 x FIQ IRQ (Reserved) Data Abort Prefetch Abort Software Undefined Instruction Reset ARM7 Register Set & Modes Privileged Modes Exception Modes User System Supervisor Abort Undefined Saved Program Status Register R3 (Stack Pointer) R4 (Link Register) Current Program Status Register CPSR CPSR R R R2 R3 R4 R5 R6 R7 R8 R9 R R R2 R3_svc R3_abt R3_und R4_svc R4_abt R4_und PC (Program Counter) CPSR_svc SPSR_svc CPSR_abt SPSR_abt CPSR_und SPSR_und R3_irq R4_irq CPSR_irq SPSR_irq Fast R8_fiq R9_fiq R_fiq R_fiq R2_fiq R3_fiq R4_fiq CPSR_fiq SPSR _fiq ARM7 Normal & Fast Standard C5 - znaczniki przerwań after executing each instruction, the CPU checks to see whether the interrupt pins are LOW or internal request is generated: R4_mod address of the next instruction to be executed + 4 SPSR_mod CPSR CPSR[4:] = M4..M b or b enter IRQ or FIQ mode CPSR[5] = T execute in ARM state CPSR[6] = F (for FIQ) or F is unchanged (for IRQ) CPSR[7] = I disable normal interrupts Register switching (R8.. R2) only for FIQ PC = R5 x 8 or x C the address to continue from is one word (or four bytes) less than that in LR_<mode>, so the return instruction is: SUBS R5, R4, #4 ; R4 = Return address Przyjęcie, rozpoczęcie procedury obsługi : kasuje automatycznie znacznik jeśli: IE / IE - zewnętrzne INT# lub INT# reagują na zbocze opadające TF / TF - przepełnienie od licznika T lub T nie kasuje automatycznie znacznika jeśli: zewnętrzne INT# lub INT# reagują na poziom niski wystąpiło przerwanie z wielu źródeł, np. od nadajnika TI lub odbiornika RI portu szeregowego itp. wyjątki w regule: owe kasowanie znacznika od przetwornika A/C w C55C 9
Koniec procedury obsługi Każdy pod obsługi musi kończyć się właściwą instrukcją, np.: MCS 5, MSP43: RETI PIC7Cxx: 68HC7xx : ST7: ARM7: RETFIE RTI IRET write to VICVectAddr SUBS R5, R4, #4 aby odtworzyć stan rejestrów kontrolera priorytetów przerwań Standard C5 - sprzętowa praca krokowa P3.2 INT# K P3.2/INT# reaguje na poziom niski, LOW w trakcie obsługi, kolejnego jest możliwe po wykonaniu instrukcji RETI i jednej instrukcji z u głównego CSEG AT PoczProg: JMP ProgDalej ORG 3 IrqINT: JNB P3.2, $ ; oczekiwanie na P3.2/INT# = High JB P3.2, $ ; oczekiwanie na P3.2/INT# = Low RETI ProgDalej: CLR IT ; INT# reaguje na poziom niski SETB EX ; odblokowanie INT# SETB EA ; odblokowanie wszystkich przerwań PracaKrokowa: MOV P, #FEh ; instrukcje wykonywane krokowa MOV P, #FDh MOV P, #FBh... ; cd. u użytkownika - wspomaganie sprzętowe (/3) A/C A/C () wynik u koniec u początek u dane Px.y A/C (2) port wejściowy kontroler przerwań strukturalne opóźnienia licznik MCU - wspomaganie sprzętowe (2/3) - wspomaganie sprzętowe (3/3) A/C () A/C () y strukturalne opóźnienia A/C (2) strukturalne opóźnienia A/C (2) 2 6 5 4 3 2 3 4 przetwornik A/C wyniki ów w buforze FIFO wskaźnik u 2 5 wskaźnik 6 zapisu 9 8 7 np. THS26 (TI) koniec u początek u strukturalne opóźnienia dane Px.y 2 A/C () A/C (2) y MCU port wejściowy kontroler przerwań licznik