Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Rodzina AVR wykład 3.

Podobne prezentacje


Prezentacja na temat: "Rodzina AVR wykład 3."— Zapis prezentacji:

1 Rodzina AVR wykład 3

2 AVR /52 Zależności czasowe Zewnętrzna pamięć danych System przerwań Porty zewnętrzne Zerowanie VREF i komparator analogowy

3 AVR - zależności czasowe 3/52
Wykonywanie kolejnych rozkazów - potokowe

4 AVR - zależności czasowe 4/52
Wykonanie rozkazu odwołującego się do wewnętrznego SRAM:

5 AVR - zależności czasowe 5/52
Generator taktu w ATtiny2313 / ATmega8515 XTAL2 XTAL1 1HC GND GND XTAL2 XTAL1 NC ZEWNĘTRZNY OSCYLATOR XTAL2 XTAL1 GND NC VCC WEWNĘTRZNY OSCYLATOR RC GND PA1/XTAL2 PA0/XTAL1

6 AVR - zależności czasowe 6/52
Generator taktu w ATtiny2313 Wybór źródła sygnału taktującego - bitami konfiguracyjnymi CKDIV8 CKOUT SUT1 SUT0 CKSEL3 CKSEL2 CKSEL1 CKSEL0 CKSEL3...CKSEL0 źródło sygnału generator zewnętrzny wewn. oscylator RC 4MHz wewn. oscylator RC 8MHz (ustawienie fabryczne) wewn. oscylator watch-doga 128kHz 100x oscylator ceramiczny do 1MHz 101x oscylator ceramiczny/kwarcowy 1..3MHz 110x oscylator ceramiczny/kwarcowy 3..8MHz 111x oscylator ceramiczny/kwarcowy >8MHz CKDIV8 - wyzerowany włącza dodatkowy podzielnik generatora :8 (ust.fabr.)

7 AVR - zależności czasowe 7/52
Generator taktu w ATtiny2313 Kalibrowanie wewnętrznego generatora RC CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 OSCCAL 31h 51h Uwaga: nowa wartość wpisywana do rejestru OSCCAL nie może się różnić od poprzedniej o więcej niż 20h

8 AVR - zależności czasowe 8/52
Generator taktu w ATtiny2313 Preskaler generatora taktu - umożliwia spowolnienie pracy mikrokontrolera, gdy nie potrzebujemy jego pełnej szybkości obliczeniowej CLKPCE CLKPS3 CLKPS2 CLKPS1 CLKPS0 CLKPR 26h 46h CLKPCE - musi być ustawiony by możliwa była zmiana bitów CLKPSx zmiana CLKPSx musi nastąpić w ciągu 4 cykli maszynowych CLKPS3..CLKPS0 - określają współczynnik podziału: : : : : : wartości zastrzeżone : : : :128 Zaprogramowanie (wyzerowanie) bitu CKDIV8 wstępnie ustawia CLKPR na (czyli :8)

9 AVR - zależności czasowe 9/52
Generator taktu w ATmega8515 Wybór źródła sygnału taktującego - bitami konfiguracyjnymi BODLEVEL BODEN SUT1 SUT0 CKSEL3 CKSEL2 CKSEL1 CKSEL0 CKSEL3...CKSEL0 źródło sygnału generator zewnętrzny wewn. oscylator RC 1MHz (ustawienie fabryczne) wewn. oscylator RC 2MHz wewn. oscylator RC 4MHz wewn. oscylator RC 8MHz zewn. oscylator RC 0,1..0,9MHz zewn. oscylator RC 0,9..3MHz zewn. oscylator RC 3..8MHz zewn. oscylator RC 8..12MHz zewn. oscylator kwarcowy 32768Hz 101x zewn. oscylator ceramiczny/kwarcowy 0,4..0,9MHz 110x zewn. oscylator ceramiczny/kwarcowy 0,9..3MHz 111x zewn. oscylator ceramiczny/kwarcowy 3..8MHz

10 AVR - zależności czasowe 10/52
Generator taktu w ATmega8515 Kalibrowanie wewnętrznego generatora RC OSCCAL 24h CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 04h Uwaga: Podczas RESETu rejestr jest inicjowany wartością ustawioną fabrycznie w jednym z bajtów sygnatur. Odpowiada ona wewnętrznemu oscylatorowi RC o f=1MHz. Dla innych częstotliwości generatora RC rejestr OSCCAL musi być inicjowany programowo - wartości kalibrujące dla częstotliwości 2, 4 i 8 MHz są wpisane fabrycznie w kolejne bajty sygnatur - należy je odczytać poprzez programator i zapisać w niewykorzystywanym obszarze FLASH lub EEPROM.

11 AVR - zewnętrzna pamięć danych w ATmega8515 11/52
ATmega8515 umożliwia dołączenie do 64kB zewnętrznej pamięci danych. Cechy: możliwość wyboru 4 wariantów czasu dostępu do zewnętrznego SRAM (określenie liczby taktów oczekiwania przy dostępie); pamięć podzielona na 2 sektory o programowalnym rozmiarze; dla każdego z sektorów odrębnie definiuje się ilość taktów oczekiwania; możliwość wyboru liczby aktywnych bitów starszego bajtu adresu odwołania do pamięci - dostosowanie do aktualnie użytej kości pamięci SRAM; PORTA działa jako multipleksowany port D7..D0/A7..A0; PORTC działa jako wyjście starszego bajtu adresu dostępu A15..A8; ponadto: PE1  ALE, PD6  /RD, PD7  /WR.

12 AVR - zewnętrzna pamięć danych w ATmega8515 12/52
Działanie: dostęp jest uruchamiany automatycznie gdy bit SRE=1 i adres odwołania przekracza 25Fh; jeżeli bit SRE=1 a adres odwołania jest mniejszy od 260h to działa mechanizm wysłania adresu na zewnątrz poprzez linie portów A i C wraz z sygnałem ALE sterującym zewnętrznym zatrzaskiem, ale nie działają zewn. stroby /RD i /WR; typowy schemat aplikacyjny: na podstawie danych katalogowych Atmela

13 AVR - zewnętrzna pamięć danych w ATmega8515 13/52
Wykonanie rozkazu odwołującego się do zewnętrznego RAM bez dodatkowych opóźnień: na podstawie danych katalogowych Atmela

14 AVR - zewnętrzna pamięć danych w ATmega8515 14/52
Rejestry obsługujące zewnętrzny RAM wATmega8515: SRE SRW10 SE SM1 ISC11 ISC10 ISC01 ISC00 MCUCR 35h 55h SRE - ustawiony włącza mechanizm dostępu do zewnętrznej pamięci (wymusza jednocześnie właściwe kierunki pracy linii portów D i E jako sygnałów sterujących tym dostępem) SM0 SRL2 SRL1 SRL0 SRW01 SRW00 SRW11 ISC2 EMCUCR 36h 56h SRWn1,SRWn0 - określają ilość taktów oczekiwania dla sektora #n: bez taktów oczekiwania takt oczekiwania podczas strobu odczytu/zapisu takty oczekiwania podczas strobu odczytu/zapisu takty oczekiwania podczas strobu odczytu/zapisu oraz takt oczekiwania przed wystawieniem nowego adresu dostępu

15 AVR - zewnętrzna pamięć danych w ATmega8515 15/52
SRL2,SRL1,SRL0 - określają podział przestrzeni 64kB na sektory: dolny sektor # górny sektor # niedostępny h - FFFFh h - 1FFFh h - FFFFh h - 3FFFh h - FFFFh h - 5FFFh h - FFFFh h - 7FFFh h - FFFFh h - 9FFFh A000h - FFFFh h - BFFFh C000h - FFFFh h - DFFFh E000h - FFFFh

16 AVR - zewnętrzna pamięć danych w ATmega8515 16/52
Wykonanie rozkazu odwołującego się do zewnętrznego RAM z maksymalnymi opóźnieniami (SRWn1,SRWn0=11) : 3 (2+1) dodatkowe takty opóźnienia na podstawie danych katalogowych Atmela

17 AVR - zewnętrzna pamięć danych w ATmega8515 17/52
XMBK XMM2 XMM1 XMM0 PUD PSR10 SFIOR 30h 50h XMBK - ustawiony włącza mechanizm utrzymywania stanu magistrali AD0..AD7 XMM2, XMM1, XMM0 - określają ilość bitów portu C używanych do adresowania zewn. pamięci: bity 7..0 (cały port C) bity bity bity bity bity bity żaden z bitów PORTC - adres tylko 8-bitowy nie używane bity można wykorzystać jako we/wy

18 AVR - przerwania /52 System przerwań: maskowalny- flaga I zezwolenia na przerwania w rejestrze SREG; wektorowy; częściowo priorytetowy; możliwa wielopoziomowość; wystąpienie przerwania jest sygnalizowane ustawieniem odpowiedniej flagi przerwań; flagi przerwań (z wyj. przerwań zewnętrznych) są dostępne programowo. I T H S V N Z C SREG 3Fh 5Fh

19 AVR - przerwania /52 Możliwe źródła - wektory przerwań w ATtiny2313 / ATmega8515:

20 AVR - przerwania /52 Możliwe źródła - wektory przerwań w ATtiny2313 / ATmega8515:

21 AVR - przerwania /52 Możliwe źródła - wektory przerwań w ATtiny2313 / ATmega8515 :

22 AVR - przerwania /52 Mechanizm rozpoczęcia obsługi przerwania: Jeżeli pojawia się przerwanie - zostaje ustawiona odpowiednia flaga Jeżeli ponadto ustawiona jest flaga I w rejestrze SREG to następuje proces przyjęcia przerwania: 1. zerowanie flagi I w SREG; 2. zapis na stos bieżącej wartości PC jako adresu powrotu z obsługi przerwania; 3. zainicjowanie PC na wartość odpowiedniego wektora oczekującego na obsługę przerwania o najwyższym priorytecie; 4. skasowanie indywidualnej flagi przerwania przyjętego do obsługi. UWAGA: czas wejścia w procedurę obsługi przerwania wynosi min. 8 cykli zegara systemowego.

23 AVR - przerwania /52 Mechanizm zakończenia obsługi przerwania: procedura obsługi przerwania (po wykonaniu właściwych operacji) powinna się kończyć rozkazem RETI; RETI odtwarza ze stosu wartość PC i ustawia flagę I w SREG; wykonywany jest minimum 1 rozkaz z przerwanego (zawieszonego) wcześniej procesu. UWAGA: powrót z obsługi przerwania zajmuje 4 cykle zegara systemowego. Wielopoziomowość uzyskuje się ustawiając flagę I we wnętrzu procedury obsługi przerwania.

24 AVR - przerwania zewnętrzne ATtiny2313 / ATmega8515 24/52
Linie portu PD mogą pracować jako wejścia przerwań od układów zewnętrznych PD2 - INT0 i PD3 - INT1. Także zmiany stanu linii portu B mogą powodować przerwanie. Linia 0 portu PE może pracować jako wejście przerwań zewnętrznych INT2. O warunkach przyjmowania tych przerwań decydują bity rejestrów GIMSK, GICR, MCUCR i PCMSK: INT1 INT0 PCIE GIMSK 3Bh 5Bh INT1 INT0 INT2 GICR 3Bh 5Bh INT1 - bit zezwolenia na przerwanie INT1 (na PD3); INT0 - bit zezwolenia na przerwanie INT0 (na PD2); PCIE - bit zezwolenia na przerwanie od zmiany stanu linii portu B; INT2 - bit zezwolenia na przerwanie INT2 (na PE0);

25 AVR - przerwania zewnętrzne ATtiny2313 / ATmega8515 25/52
Uaktywnianie przerwań zewnętrznych INT0 i INT1 w ATtiny2313 / ATmega8515 PUD SM1 SE SM0 ISC11 ISC10 ISC01 ISC00 MCUCR 35h 55h SRE SRW10 SE SM1 ISC11 ISC10 ISC01 ISC00 MCUCR 35h 55h ISCx1,ISCx0 - wybór warunku przerwania INTx (x=0,1): 0 0 - wyzwalanie niskim poziomem na wejściu INTx; 0 1 - nie używane; wyzwalanie dowolnym zboczem na wejściu INTx; 1 0 - wyzwalanie zboczem opadającym na wejściu INTx; 1 1 - wyzwalanie zboczem narastającym na wejściu INTx; Podczas zmiany tych bitów przerwanie INTx musi być zablokowane !

26 AVR - przerwania zewnętrzne ATtiny2313 / ATmega8515 26/52
Uaktywnianie przerwania od zmiany stanu wejść portu B w ATtiny2313: PCINT7 PCINT6 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 PCMSK 20h 40h PCINTx - bit zezwalający (gdy =1) na zgłoszenie przerwania, jeżeli nastąpiła zmiana na linii x portu B

27 AVR - przerwania zewnętrzne ATtiny2313 / ATmega8515 27/52
Uaktywnianie przerwań zewnętrznych INT2 w ATmega8515 SM0 SRL2 SRL1 SRL0 SRW01 SRW00 SRW11 ISC2 EMCUCR 36h 56h ISC2 - wybór warunku przerwania INT2: 0 - wyzwalanie zboczem opadającym na wejściu INT2; 1 - wyzwalanie zboczem narastającym na wejściu INT2; Podczas zmiany bitu ISC2 przerwanie INT2 musi być zablokowane !

28 AVR - przerwania zewnętrzne ATtiny2313 / ATmega8515 28/52
Flagi sygnalizujące przerwania zewnętrzne: INTF1 INTF0 PCIF EIFR 3Ah 5Ah INTF1 INTF0 INTF2 GIFR 3Ah 5Ah Flag tych nie można zmienić programowo, ale: Jeżeli odpowiednie linie portu D ustawi się jako wyjściowe i programowo dokona się zmiany stanu tych linii zgodnie z zaprogramowanym warunkiem zgłoszenia przerwania zewnętrznego to zostanie przyjęte odpowiednie przerwanie zewnętrzne. Analogicznie jest w przypadku przerwania INT2 i linii PE0. Podobnie wymuszona programowo zmiana stanu linii portu B może spowodować ustawienie flagi PCIF.

29 AVR - porty zewnętrzne ATtiny2313 / ATmega8515 29/52
Cechy portów PA, PB i PD: dwukierunkowe; indywidualnie dla każdego bitu określany kierunek transmisji; obciążalność IIL = 20mA; występują funkcje alternatywne; 3b / 8b PA; 8b PB i 7b / 8b PD. Cechy portów PC i PE: dwukierunkowe; indywidualnie dla każdego bitu określany kierunek transmisji; obciążalność IIL = 20mA; występują funkcje alternatywne; 8b PC , 3b PE;

30 AVR - porty zewnętrzne ATtiny2313 / ATmega8515 30/52
Rejestry sterujące pracą portów: PUD SM1 SE SM0 ISC11 ISC10 ISC01 ISC00 MCUCR 35h 55h XMBK XMM2 XMM1 XMM0 PUD PSR10 SFIOR 30h 50h PORTA 1Bh 3Bh DDRA 1Ah 3Ah rej. wejściowy PINA 19h 39h rej. kierunku rej. wyjściowy PORTB 18h 38h rej. wyjściowy DDRB 17h 37h rej. kierunku rej. wejściowy PINB 16h 36h rej. wejściowy PINC 13h 33h DDRC 14h 34h rej. kierunku PORTC 15h 35h rej. wyjściowy

31 AVR - porty zewnętrzne ATtiny2313 / ATmega8515 31/52
Rejestry sterujące pracą portów: rej. wyjściowy PORTD 12h 32h rej. kierunku DDRD 11h 31h rej. wejściowy PIND 10h 30h PORTE 07h 27h DDRE 06h 26h rej. wejściowy PINE 05h 25h rej. kierunku rej. wyjściowy

32 AVR - porty zewnętrzne ATtiny2313 / ATmega8515 32/52
Konfigurowanie linii portów: PUD ustawiony odłącza opornik polaryzujący do Vcc wyjście portu Potrzeby funkcji alternatywnych linii portów dominują nad bitem PUD

33 AVR - porty zewnętrzne ATtiny2313 / ATmega8515 33/52
Struktura bitów portów bez funkcji alternatywnych: na podstawie danych katalogowych Atmela

34 AVR - porty zewnętrzne ATtiny2313 / ATmega8515 34/52
Alternatywne funkcje linii portu PB:

35 AVR - porty zewnętrzne ATtiny2313 / ATmega8515 35/52
Alternatywne funkcje linii portu PD:

36 AVR - porty zewnętrzne ATtiny2313 / ATmega8515 36/52
Alternatywne funkcje linii portu PA:

37 AVR - porty zewnętrzne ATtiny2313 / ATmega8515 37/52
Alternatywne funkcje linii portów PC i PE w ATmega8515:

38 AVR - porty zewnętrzne ATtiny2313 / ATmega8515 38/52
Struktura przykładowego bitu portu z funkcją alternatywną: na podstawie danych katalogowych Atmela

39 AVR - porty zewnętrzne ATtiny2313 / ATmega8515 39/52
ATtiny2313 zawiera 3 uniwersalne rejestry GPIORx: GPIOR2 15h 35h GPIOR1 14h 34h uniwersalny rejestr I/O #0 GPIOR0 13h 33h uniwersalny rejestr I/O #1 uniwersalny rejestr I/O #2 Nie są fizycznie połączone z końcówkami zewnętrznymi. Ich adresy umożliwiają użycie rozkazów bitowych (zmiana stanu bitu, skok warunkowy). Przeznaczone są do przechowywania globalnych zmiennych i flag stanu.

40 AVR - zerowanie /52 Możliwe są 4 źródła resetu procesora: od zasilania układu (przy wzroście Vcc ponad VPOT=1,2V lub przy spadku Vcc poniżej VPOT= 1,1V - wartości „typowe”); od zewnętrznego sygnału /RESET (poziom napięcia niższy od VRST=0,2..0,9Vcc musi trwać przez min. 2 okresy generatora taktu); od wbudowanego układu watch-doga w przypadku przepełnienia się jego licznika. od wbudowanego układu wykrywającego częściowy spadek Vcc (ang. Brown-out Detector, BOD) przyczyna resetu może być programowo rozpoznana na podstawie bitów rejestru MCUSR / MCUCSR

41 na podstawie danych katalogowych Atmela
AVR - zerowanie /52 Schemat logiczny obwodów zerowania: na podstawie danych katalogowych Atmela

42 AVR - zerowanie /52 Wewnętrzny impuls zerujący AT90S2313 trwa : 11÷21ms przy niezaprogramowanym bicie FSTRT (=1) 1,0÷1,2ms po zaprogramowaniu tego bitu (FSTRT=0). Bit FSTRT jest jednym z bitów konfiguracyjnych mikrokontrolera, programowanym podczas programowania pamięci programu. Czas trwania wewn. impulsu zerującego ATtiny2313 zależy od ustawienia bitów konfiguracyjnych SUT1 i SUT0 oraz bitów konfigurujących generator taktu CKSEL3 .. CKSEL0

43 na podstawie danych katalogowych Atmela
AVR - zerowanie /52 RESET od zasilania i wymuszony z zewnątrz: na podstawie danych katalogowych Atmela

44 na podstawie danych katalogowych Atmela
AVR - zerowanie /52 RESET od przepełnienia watch-doga: na podstawie danych katalogowych Atmela

45 na podstawie danych katalogowych Atmela
AVR - zerowanie /52 RESET od częściowego spadku napięcia zasilania w ATtiny2313 / ATmega8515: tBOD  2ns / 2μs VBOD+ - VBOD- = 60mV / 130mV (VBOD+ + VBOD-)/2 = VBOD wartość VBOD definiują bity konfiguracyjne: BODLEVEL2 .. BODLEVEL0: mechanizm wyłączony; ,8V; ,7V; ,3V; zarezerwowane BODLEVEL: ,0V; ,7V na podstawie danych katalogowych Atmela

46 AVR - zerowanie /52 Przyczynę RESETu sygnalizuje rejestr: MCUSR 54h WRDF BORF EXTRF PORF 34h SM2 WRDF BORF EXTRF PORF MCUCSR 34h 54h WRDF - reset spowodowany przez watch-dog BORF - reset spowodowany przez układ Brown-out Detector EXTRF - reset spowodowany sygnałem zewnętrznym PORF - reset spowodowany napięciem zasilania flagi WRDF, BORF i EXTRF są automatycznie zerowane przy resecie od zasilania (ustawia się wtedy PORF=1) wszystkie 4 flagi mogą być zerowane programowo

47 AVR - zerowanie /52 Wewnętrzny RESET powoduje: wyzerowanie licznika rozkazów PC; ustawienie pinów portów PB i PD w stan wysokiej impedancji; zainicjowanie wartościami początkowymi rejestrów specjalnych; wszystkie rejestry przyjmują wartość 00h; wyjątkiem jest rej. USR, który przyjmuje wartość 20h. Pod adresem 000h w pamięci programu powinien znajdować się rozkaz RJMP ini realizujący skok relatywny do adresu oznaczonego etykietą ‘ini’, od którego zaczyna się właściwa sekwencja startowa programu.

48 AVR - wbudowane źródło VREF 48/52
Wbudowane źródło VREF ATtiny2313 / ATmega8515 Właściwości: źródło napięcia o orientacyjnej wartości 1,1V / 1,23V; do wykorzystania przez: - układ BOD w obwodach resetu; - komparator analogowy; orientacyjny czas włączenia do pracy: μs; orientacyjny pobór prądu z zasilania: 15μA / 10μA; domyślnie wyłączone; włącza się automatycznie przy: ustawieniu bitu ACBG w rej. ACSR, włączeniu mechanizmu brown-out detection

49 AVR - komparator analogowy ATtiny2313 / ATmega8515 49/52
Właściwości: wejścia podłączone do pinów 0 (“+”) i 1 (“-”) PORTB; możliwość włączenia/wyłączenia zasilania komparatora bitem sterującym (po resecie domyślnie wyłączony) w celu redukcji poboru energii; wybrana zmiana stanu wyjścia komparatora może powodować: - zgłoszenie przerwania; - zadziałanie układu przechwytującego w timerze/liczniku #1 wejście nieodwracające komparatora może być dołączone do wbudowanego źródła napięcia VREF; możliwość odłączenia pinów 0 i 1 PORTB od wejść buforów cyfrowych (od rej. PINB).

50 AVR - komparator analogowy ATtiny2313 / ATmega8515 50/52
WEWN. SZYNA DANYCH REJ. STER. DIDR REJ. STER. ACSR ACD ACO ACI ACIE AIN0D ACIC ACIS1 ACIS0 AIN1D Vcc ACBG WBUD. VREF 1 PRZERWANIE OD KOMPARATORA 1 PB0 AIN0 + - LOGIKA PRZERWAŃ WYZWALANIE UKŁADU PRZECHWYTUJĄCEGO TIMERA/LICZNIKA #1 PB1 AIN1 PINB.0 PINB.1

51 AVR - komparator analogowy ATtiny2313 / ATmega8515 51/52
Rejestr sterujący komparatora: ACD ACBG ACO ACI ACIE ACIC ACIS1 ACIS0 ACSR 08h 28h ACIS1,ACIS0 - bity programujące warunek przerwania od komparatora: 0 0 - przerwanie wywoływane jest zmianą stanu wyjścia komparatora; 0 1 - nie używane; 1 0 - przerwanie wywoływane jest zmianą 10 na wyjściu komparatora; 1 1 - przerwanie wywoływane jest zmianą 01 na wyjściu komparatora. ACIC - bit włączający strob przechwytywania wysyłany do timera/licznika1; ACIE - bit zezwolenia na przerwania od komparatora; ACI - flaga przerwania od komparatora, ustawiana przy spełnieniu warunku określonego bitami ACIS1 i ACIS0; ACO - flaga wyniku porównania napięć;

52 AVR - komparator analogowy ATtiny2313 / ATmega8515 52/52
Rejestr sterujący komparatora: ACD ACBG ACO ACI ACIE ACIC ACIS1 ACIS0 ACSR 08h 28h ACBG - ustawiony przełącza wejście „+” komparatora na wyjścia wbudowanego źródła napięcia VREF. ACD - bit włączający (gdy =0) i wyłączający (gdy =1) zasilanie komparatora; Przed każdą zmianą stanu bitów: ACD, ACIS1,ACIS0 należy zablokować przerwanie od komparatora ! Rejestr sterujący wejść komparatora: AIN1D AIN0D DIDR 01h 21h AIN0D - ustawiony odłącza wejście PINB.0 od wejściowych buforów cyfrowych; AIN1D - ustawiony odłącza wejście PINB.1 od wejściowych buforów cyfrowych.


Pobierz ppt "Rodzina AVR wykład 3."

Podobne prezentacje


Reklamy Google