Microsoft PowerPoint - Timer0 16F887.ppt [Compatibility Mode]

Слични документи
Microsoft PowerPoint - SRV LV5.ppt [Compatibility Mode]

Algoritmi i arhitekture DSP I

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

OPIS RAČUNARSKOG SISTEMA Računarski sistem se sastoji od procesora, operativne memorije, tajmera i terminala. Sve komponente računarskog sistema su me

Microsoft PowerPoint - C-4-1

Zbirka resenih zadataka iz arhitekture racunara

Увод у организацију и архитектуру рачунара 1

Tutoring System for Distance Learning of Java Programming Language

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa.

LAB PRAKTIKUM OR1 _ETR_

Programiranje 1 9. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 9. predavanje p. 1/6

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

SPR , IV godina, VHDL – Ispitna pitanja

P11.3 Analiza zivotnog veka, Graf smetnji

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Studijski primer - Dijagrami toka podataka Softverski inženjering 1

Programiranje 2 0. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog2 2019, 0. predavanje p. 1/4

Орт колоквијум

JEZGRO OPERATIVNOG SISTEMA I UPRAVLJANJE PROCESIMA 1. Šta je jezgro, a šta proces? Jezgro (nukleus ili kernel) je osnovni deo svakog operativnog siste

Tutoring System for Distance Learning of Java Programming Language

Uvod u takmičarsko programiranje

Maksimalni protok kroz mrežu - Ford-Fulkerson, Edmonds-Karp

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Funkcije predavač: Nadežda Jakšić

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

SEMINAR

Microsoft PowerPoint - 13-Funkcije_2.ppt [Compatibility Mode]

Test ispravio: (1) (2) Ukupan broj bodova: 21. veljače od 13:00 do 14:00 Županijsko natjecanje / Osnove informatike Osnovne škole Ime i prezime

Microsoft Word - 11 Pokazivaci

Baza fakultet sadrži 3 tabele: tabela studenti sadrzi informacije o studentima Njeni atributi su: indeks indeks studenta (primarni kljuc) ime ime stud

070-ALIP2-udzbenik.indb

Slide 1

Tutoring System for Distance Learning of Java Programming Language

Zadatak T=5: Jedinica WBSD propušta vred Potiče iz polja Rwb.LMD Signal Rwb.WRLMD izaziva propuštanje ove vrednosti 2. Vrednost 0000

Microsoft PowerPoint - 10-Jednodimenzionalni nizovi.ppt [Compatibility Mode]

Konverzije, operatori, matematičke funkcije predavač: Nadežda Jakšić

Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica

Microsoft PowerPoint - 07-DinamickeStrukturePodataka

Uvod u računarstvo 2+2

Programiranje 1

Орт колоквијум

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe

Programiranje 1 drugi kolokvij, 2. veljače Ime i prezime: JMBAG: Upute: Na kolokviju je dozvoljeno koristiti samo pribor za pisanje i brisanje,

Funkcije predavač: Nadežda Jakšić

2015_k2_z12.dvi

Lorem ipsum dolor sit amet lorem ipsum dolor

Grananje u programu predavač: Nadežda Jakšić

PHP kod

P1.2 Projektovanje asemblera

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

PROMENLJIVE, TIPOVI PROMENLJIVIH

Uvod u računarstvo 2+2

Programski jezik QBasic Kriteriji ocjenjivanja programiranje(b) - QBasic razred 42

Programski jezik QBasic Kriteriji ocjenjivanja programiranje(b) - QBasic razred 42

Konstrukcija i analiza algoritama Nina Radojičić februar Analiza algoritama, rekurentne relacije 1 Definicija: Neka su f i g dve pozitivne fun

Univerzitet u Novom Sadu Tehnički fakultet Mihajlo Pupin Zrenjanin Seminarski rad Predmet: Konkuretno programiranje doc. dr Dejan Lacmanovic Zorica Br

Programiranje u C-u ili C++-u Pseudo-slučajni brojevi; Dinamička alokacija memorije 1 ZADACI SA ČASA Zadatak 1 Napraviti funkciju koja generišlučajan

Oblikovanje i analiza algoritama 4. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 4. pr

PowerPoint Presentation

Писање и превођење модула

1

Oblikovanje i analiza algoritama 5. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb OAA 2017, 5. pr

Logicko projektovanje racunarskih sistema I

ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU BEOGRAD, Ispit iz Programiranja 2 Ispit traje 135 minuta Napomene: a) Pažljivo proučite U

AKVIZICIJA PODATAKA SA UREĐAJEM NI USB-6008 NI USB-6008 je jednostavni višenamjenski uređaj koji se koristi za akviziciju podataka (preko USBa), kao i

Programiranje 1 3. predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2017, 3. predavanje p. 1/1

Рачунарска интелигенција

3.Kontrlne (upravlja~ke) strukture u Javi

P3.2 Paralelno programiranje 2

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

Nastavna cjelina: 1. Jezik računala Kataloška tema: 1.1. Bit 1.2. Brojevi zapisani četvorkom bitova Nastavna jedinica: 1.1. Bit   1.2. Brojevi zapisan

P2.1 Projektovanje paralelnih algoritama 1

Microsoft Word - AIDA2kolokvijumRsmerResenja.doc

Универзитет у Бањој Луци Електротехнички факултет Катедра за Општу електротехнику предмет: Теорија електричних кола 1 ЛАБ 01: Симулација електричних к

Programiranje predavanje Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2016, 10. predavanje p. 1

ПРЕГЛЕД УСЛУГА И НАКНАДА за корисника платних услуга правно лице Прилог 2 Назив пружаоца платних услуга: Erste Bank akcionarsko društvo, Novi Sad Нази

Programski jezik C

Programiranje II Beleške sa vežbi Smer Informatika Matematički fakultet, Beograd Sana Stojanović 1

ODE_0 [Compatibility Mode]

Microsoft PowerPoint - PRI2014 KORIGOVANO [Compatibility Mode]

FINANSIJSKO RAČUNOVODSTVO

NACRT

P9.1 Dodela resursa, Bojenje grafa

zad_6_2.doc

Programiranje za UNIX Okruženje unix procesa

Grafovi 1. Posmatrajmo graf prikazan na slici sa desne strane. a) Odrediti skup čvorova V i skup grana E posmatranog grafa. Za svaku granu posebno odr

1. OPĆE INFORMACIJE 1.1. Naziv kolegija Programiranje 1.6. Semestar Nositelj kolegija dr.sc. Bruno Trstenjak, v. pred Bodovna vrijednost

CARNET Helpdesk - Podrška obrazovnom sustavu e-dnevnik upute za nadzor razrednih knjiga tel: fax: mail:

Microsoft PowerPoint - Datoteke [Compatibility Mode]

MIP-heuristike (Matheuristike) Hibridi izmedu metaheurističkih i egzaktnih metoda Tatjana Davidović Matematički institut SANU

PRIRODNO MATEMATIČKI FAKULTET U NIŠU DEPARTMAN ZA RAČUNARSKE NAUKE Utorak, godine PRIJEMNI ISPIT IZ INFORMATIKE 1. Koja od navedenih ekste

МОДЕЛ КОНТРОЛНЕ ВЕЖБЕ Информатика и рачунарство за шести разред разред Наставна тема: Редни број часа: 8. РАЧУНАРСТВО Циљ часа: Теститарање постигнућа

Računarski praktikum I - Vježbe 09 - this, static

Programiranje 1 3. predavanje prošireno Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb Prog1 2018, 3. predava

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИ кола дат је на следећ

Microsoft Word - inicijalni test 2013 za sajt

Транскрипт:

TAJMERI I BROJAČI: PIC16F887 PIC 16F887 mikrokontroler ima tri tajmera/brojača: 8 - bitni tajmer/brojač (registar TMR0) 16 - bitni tajmer/brojač (registar TMR1H TMR1L) 8 - bitni tajmer/brojač (registar TMR2)

Tajmer mod: sadržaj registra TMR0 se inkrementira na svaku ivicu takta Fosc/4 (bez djelitelja) Brojački mod: TAJMER/BROJAČ:TMR0 sadržaj registra TMR0 se inkrementira na svaku ivicu vanjskog impulsa koji se pojavi na I/O pinu RA4/T0CKI (bez djelitelja) Sadržaj registra TMR0 dostupan je korisniku i bilo kom trenutku u programu

TAJMER/BROJAČ:TMR0- REGISTRI U SFR MEMORIJI OPTION_REG konfiguracioni registar dostupan je u Bank 1 i Bank 3 SFR memorije Trenutni sadržaj tajmera/brojača - TMR0 registar dostupan je u Bank 0 i Bank 2 SFR memorije Bank 0 Bank 1 Bank 2 Bank 3

TAJMER/BROJAČ:TMR0- TAJMERSKI MOD SA DODJELJENIM DJELITELJEM

TAJMER/BROJAČ:TMR0- TAJMERSKI MOD BEZ DJELITELJA

TAJMER/BROJAČ:TMR0- BROJAČKI MOD SA DODJELJENIM DJELITELJEM

TAJMER/BROJAČ:TMR0- BROJAČKI MOD BEZ DJELITELJA

TAJMER/BROJAČ:TMR0- OPTION_REG REGISTAR T0CS Clock Select bit Izbor načina rada TMR0: 1 TMR0 radi kao brojač impulsa dovedenih na I/O pin RA4 0 TMR0 radi kao tajmer i odbrojava taktne impulse Fosc/4 T0SE TMR0 Source Edge Select bit TMR0 radi kao brojač 1 Sardžaj registra TMR0 se uvećava nailaskom silazne ivice impulsa na I/O pinu RA4 0 Sardžaj registra TMR0 se uvećava nailaskom uzlazne ivice impulsa na I/O pinu RA4

TAJMER/BROJAČ:TMR0- OPTION_REG REGISTAR PSA Prescaler Assignment bit Dodjela djelitelja: 1 djelitelj dodjeljen vočdog tajmeru (WDT) 0 djelitelj dodjeljen tajmeru/brojaču TMR0 PS2, PS1, PS0 Prescaler Rate Select bits Kombinacija ovih bitova odreñuje faktor dijeljenja djelitelja

TAJMER/BROJAČ:TMR0- OPTION_REG REGISTAR Faktor dijeljenja u zavisnosti od kombinacije bitova PS2, PS1, PS0 PS2 PS1 PS0 TMR0 WDT 0 0 0 1:2 1:1 0 0 1 1:4 1:2 0 1 0 1:8 1:4 0 1 1 1:16 1:8 1 0 0 1:32 1:16 1 0 1 1:64 1:32 1 1 0 1:128 1:64 1 1 1 1:256 1:128

TAJMER/BROJAČ:TMR0- VREMENSKI DIJAGRAM Tajmer TMR0 započinje rad upisom 8-bitnog podatka u registar TMR0 Upis u registar TRM0 uzrokuje kašnjenje od dva instrukciona ciklusa (2*T CY ) Do ikrementiranja tajmera dolazi tek nakon trećeg instrukcionog ciklusa upis u TMR0 završen kašnjenje od dva instrukciona ciklusa

TAJMER/BROJAČ:TMR0- INTERAPT VREMENSKI DIJAGRAM Interapt tajmera/brojača dešava se pri prekoračenju, tj. promjeni stanja 8-bitnog registra TMR0 sa FFh na 00h (sa 255 na 0) Pri tome dolazi do setovanja interapt flega (bita) T0IF u INTCON registru Izvršavanje Interapt rutine Interapt TMR0 prepoznat

TAJMER/BROJAČ:TMR0- DODJELA DJELITELJA TMR0 WDT *Dodjela djelitelja TMR0 WDT BANKSEL TMR0; izabrati banku koja sadrži TMR0 CLRWDT;obrisati sadržaj vočdog tajmer (WDT=0) CLRF TMR0;obrisati sadržajtmr0 i djelitelja BANKSEL OPTION_REG; izabrati banku koja sadrži OPTION_REG BSF OPTION_REG,PSA ; PSA=1 djelitelj dodjeljen WDT CLRWDT ; obrisati sadržaj vočdog tajmer (WDT=0) MOVLW b 11111000 ;maskirati bitove za faktor dijeljenja ANDWF OPTION_REG,W ; I operaciom obrisati maskirane bitove IORLW b 00000101 ; OR operaciom postaviti faktor dijeljenja MOVWF OPTION_REG; na 1:32 (101=1:32)

TAJMER/BROJAČ:TMR0- DODJELA DJELITELJA WDT TMR0 *Dodjela djelitelja WDT TMR0 CLRWDT;obrisati sadržaj vočdog tajmera (WDT=0) i djelitelja BANKSEL OPTION_REG; izabrati banku koja sadrži OPTION_REG MOVLW b 11110000 ; maskirati PSA + bitove za faktor dijeljenja ANDWF OPTION_REG,W; I operaciom obrisati maskirane bitove IORLW b 00000011 ; OR operaciom postaviti PSA=0 i faktor MOVWF OPTION_REG; dijeljenja na 1:16 (011=1:16)

TAJMER/BROJAČ:TMR0- POLLING ALGORITAM Kod polling algoritma periodično se provjerava status interapt flega T0IF. Svaki put kada je T0IF=1 inkrementira se pomoćna promjenljiva counter START Inicijalizacija: Timer0- Timer0 tajmer mod: Obrisati TMR0 registar Koristiti interni takt Fosc/4 Ne koristiti djelitelj Kreirati pomoćnu promjenljivu counter NE Da li je T0IF=1? DA ++counter Obriši T0IF

TAJMER/BROJAČ:TMR0- POLLING ALGORITAM *TMR0 polling algorithm unsigned char counter; //promjenljiva za čuvanje broja prekoračenja tajmera TMR0 Init(void) { } TMR0 = 0; //ObrisatiTMR0 registar OPTION = 0B00001000;//TMR0 konfigurisan u tajmerski mod, djelitelj dodjeljen vočdog tajmeru

TAJMER/BROJAČ:TMR0- POLLING ALGORITAM main(void) { Init(); //Poziv procedure za inicijalizaciju while(1) //beskonačna petlja za provjeru da li je T0IF=1? { if (T0IF) { ++counter;//ako jet0if = 1 uvećati brojač za 1 T0IF = 0; //Obrisati T0IF fleg da bi se //detektovao sljedeće prekoračenje } } }

TAJMER/BROJAČ:TMR0- INTERAPT ALGORITAM Svaki put kad je interapt fleg T0IF setovan (T0IF=1) prekida se izvršenje tekućeg programa i odlazi se na izvršenje interapt rutine (ISR interrupt service routine)

TAJMER/BROJAČ:TMR0- INTERAPT ALGORITAM *TMR0 interrupt algorithm unsigned char counter; //promjenljiva za čuvanje broja prekoračenja tajmera TMR0 void interrupt Timer0_ISR(void)//ISR rutina { } if (T0IE && T0IF) //ako je TMR0 interapt omogućen i ako je T0IF=1 izvršiti { T0IF=0; //obrisati TMR0 interapt fleg ++counter; //uvećati sadržaj brojača za 1 }

TAJMER/BROJAČ:TMR0- INTERAPT ALGORITAM *TMR0 interrupt algorithm Init(void) { } TMR0 = 0; //ObrisatiTMR0 registar OPTION = 0B00001000;//TMR0 konfigurisan u tajmerski mod, djelitelj dodjeljen vočdog tajmeru T0IE = 1; //dozvoliti interapt od strane TMR0 GIE = 1; //dozvoliti Global interapte

TAJMER/BROJAČ:TMR0- INTERAPT ALGORITAM *TMR0 interrupt algorithm main(void) { Init(); //Poziv procedure za inicijalizaciju } while(1) //beskonačna petlja { }

TAJMER/BROJAČ:TMR0- PRIMJER Napraviti zadršku od T delay =0.5 s pomoću tajmera TMR0 ako je Fosc=4 MHz Vrijeme zadrške 1 ciklusa tajmera TMR0 dato je izrazom: ( ) Tciklusa = Prescaler 256 TMR0 2 4* Tosc Ukupno vrijeme zadrške T delay dobije se zbrajanjem dojedinačnih ciklusa zadrške T ciklusa ako je T delay >T ciklusa T delay = Count T ciklusa Odredimo prvo najduže vrijeme 1 ciklusa tajmera TMR0 koje se dobije se za: Prescaler=256 i TMR0=0

TAJMER/BROJAČ:TMR0- PRIMJER Uvrštavanjem brojnih vrijednosti dobija se: T T T ciklusa max ciklusa max ciklusa max ( ) = 256 256 0 2 4*500 ns = 256 258 1µ s = 66048 µ s Sada se može odrediti promjenljiva Count kao: Count = T T delay ciklusa max Count = 0.5 s 66048 µ s Count = 7.57 Ona bi trebala biti cijeli broj pa imamo grešku u T delay : T = 7 66048 µ s = 0.46233s 1 delay T = 8 66048 µ s = 0.52838 s 2 delay

TAJMER/BROJAČ:TMR0- PRIMJER Očigledno vrijednost T ciklusa treba korigovati upisom u TMR0 odgovarajuće vrijednosti Zaokružimo Count na sljedeću veću cjelobrojnu vrijednost: Count=8 Odredimo sada vrijeme 1 ciklusa tajmera TMR0 T = T Count ciklusa delay T = 0.5 s 8 = 0.0625 s Sada ciklusa možemo odrediti vrijednost koju treba upisati u registar TMR0: Tciklusa TMR0 = 2 + 256 4* Tosc * Prescaler

TAJMER/BROJAČ:TMR0- PRIMJER Uvrštavanjem brojnih vrijednosti dobija se: 0.0625 TMR0 = 2 + 256 4*500 ns *256 62500 TMR0 = 2 + 256 = 13.85 256 Zaokružimo vrijednost koju treba upisati u registar TRM0 na veću cjelobrojnu vrijednost:tmr0=14 Provjerimo sada dobijeno vrijeme zadsrške T delay ( ) ( ) Tdelay = Count Prescaler 256 TMR0 2 4* Tosc Tdelay = 8 256 256 14 2 4*500ns T = 2048 244 1µ s = 0.4997 s delay

Napisati kod!!!!! TAJMER/BROJAČ:TMR0- PRIMJER