Programarea aplicațiilor de timp real

Laborator
7/10 (1 vot)
Domeniu: Automatică
Conține 12 fișiere: pdf
Pagini : 50 în total
Cuvinte : 14484
Mărime: 674.79KB (arhivat)
Publicat de: Iurie Cristea
Puncte necesare: 0

Extras din laborator

Laborator 1

Facilitati C

Obiectiv: recapitulare elemente de C

Mod de lucru:

Programele vor fi realizate in C

1. Se citesc de la tastatura 10 valori intregi si memoreaza intr-un tablou unidimensional. Se

rearanjeaza octetii acestui tablou considerand o ordonare descrescatoare in raport cu bit D1.

de exemplu: ` 1011 1111

0111 1110

1111 1000

1100 1100

101 0101 etc

si apoi considerand o ordonare descrescatoare in raport cu ultimii doi biti (mai putin semnificativi)

Indicatie: puteti folosi deplasari pe biti, campuri de biti sau masti.

2. Se citesc din fisierul DAT.TXT, in ordine, maxim 400 de valori float (cuprinse intre -10 si

10). Acestea sunt reprezentate grafic si apoi sub forma de histograma (construita pentru intervale de

lungime unitate). Citirea datelor este realizata pana la perminarea fisierului sau pana la apasarea

unei taste.

3. Programul va fi rulat cu trei argumente in linia de comanda:

nume_prog par1 par2 par3

unde par1, par2 indica numele unor fisiere cu date de intrare, iar par3 numele unui fisier in care vor

fi inscrise rezultatele.

Fisierul par1 contine informatii despre dispozitivele electronice existente intr-un depozit (cod

dispozitiv, nume dispozitiv, numar exemplare existente pe stoc)

Fisierul par2 indica pentru o schema electronica ce trebuie realizata ce dispozitive sunt necesare si

in ce cantitate. Sunt specificate mai multe variante de abordare. Pentru fiecare varianta se indica pe

linii separate codul dispozitivului (sir de caractere sau cod numeric) si numarul de bucati necesare

(separate prin blanc). Separarea intre doua variante de lucru se face printr-o linie pe care scrie

“reteta” , urmat de blanc si apoi un cod al retetei.

Programul trebuie sa indice in fisierul par3, pentru fiecare reteta daca exista dispozitivele necesare

si daca nu ce mai trebuie cumparat. Afisare se va face in ordine descrescatoare a numarului de

bucati pentru fiecare reteta in parte.

Laborator 2

Facilitati C pentru lucrul in intreruperi

– biblioteca DOS.H

Obiectiv: elaborarea de programe C care genereaza intreruperi

Breviar teoretic- Vezi note de curs

C pune la dispozitie prin biblioteca DOS.H functii pentru:

- gestionarea vectorilor de intreruperi

- generarea intreruperilor

Date (necesare pentru accesarea registrilor microprocesorului):

union REGS {

struct WORDREGS x;

struct BYTEREGS h; };

struct WORDREGS {unsigned int ax,bx,cx,dx,si,di,cflag,flags;};

struct BYTEREGS {unsigned char al,ah,bl,bh,cl,ch,dl,dh;};

struct SREGS {

unsigned int es,cs,ss,ds;

};

struct REGPACK {

unsigned r_ax,r_bx,r_cx,r_dx;

unsigned r_bp,r_si,r_di,r_ds,r_es,r_flag;};

Aceste structuri/uniuni vor permite inscrierea registrilor microprocesorului prin apelul functiilor de

generare de intrerupere, respectiv citirea registrilor la iesirea din rutina de tratare a intreruperii

AX, BX, CX, DX – pentru registrele de lucru

SI, DI – pentru registrele de index (sursa si destinatie)

BP – pentru registru de baza (Base Pointer)

SP – pentru pointer de stiva (Stack Pointer)

CS, DS ,SS, ES – pentru registre de segment: cod, date, stiva,extrasegment.

Flag – pentru registrul de flaguri

Campurile din aceste structuri reprezinta variabile C, legatura cu registrii este realizata numai

prin apelul functiilor de generare intreruperi explicate mai jos

Functii pentru generare intreruperi INT21H (DOS)

Obs: valoarea inscrisa in AH inainte de generarea INT 21H indica numarul

functiei/serviciului DOS

int bdos(int dosfun,unsigned dosdx,unsigned dosal);

IN: dosfun, dosdx (DX), dosal (AL)

OUT: returneaza continut AX;

Efect: genereaza intreruperea DOS indicata de dosfun

int bdosptr(int dosfun,void *argument,unsigned dosal); Ex

IN: dosfun,

*argument: model “small”: DX; model “large” DS:DX),

dosal (AL)

OUT: returneaza

- succes: continut AX;

- esec: -1 (si seteaza _doserrno sau errno)

Efect: genereaza intreruperea DOS indicata de dosfun

int intdos(union REGS *inregs,union REGS *outregs); Ex

IN: union REGS * inregs: continut registri inainte de generare intrerupere

OUT: union REGS *outregs: continut registri la iesirea din rutina de tratare intrer.

returneaza: AX;

Efect: genereaza intrerupere 21H, functia inregs->h.ah

pozitioneaza dupa tratarea intreruperii: x.cflag si x.flags

pozitioneaza _doserrno (daca CF=1)

int intdosx(union REGS *inregs,union REGS *outregs, struct SREGS *segregs);

IN: union REGS * inregs: continut regsitri inainte de generare intrerupere

union SREGS *sregs

OUT: union REGS *outregs: continut registri la iesirea din rutina de tratare intrer.

union SREGS *sregs

Returneaza: AX

Efect: genereaza intrerupere 21H, functia inregs->h.ah, copiind:

sregs->ds in DS; sregs->es in ES;

pozitioneaza dupa tratarea intreruperii: x.cflag si x.flags

restaureaza dupa tratare intrerupere ES si DS

pozitioneaza _doserrno (daca CF=1)

Functii pentru generarea oricaror intreruperi – echivalent INT XX

int int86(int intno,union REGS *inregs,union REGS *outregs); Ex

IN: intno,

union REGS * inregs: continut registri inainte de generare intrerupere

OUT: union REGS *outregs: continut registri la iesirea din rutina de tratare intrer.

returneaza: AX;

Efect: genereaza intrerupere software intno

pozitioneaza dupa tratarea intreruperii: x.cflag si x.flags

pozitioneaza _doserrno (daca CF=1)

int int86x(int intno,union REGS *inregs,union REGS *outregs, struct SREGS *segregs);

IN: intno

union REGS * inregs: continut registri inainte de generare intrerupere

union SREGS *sregs

OUT: union REGS *outregs: continut registri la iesirea din rutina de tratare intrer.

union SREGS *sregs

returneaza: AX

Efect: genereaza software intno, copiind sregs->ds in DS; sregs->es in ES;

pozitioneaza dupa tratarea intreruperii: x.cflag si x.flags

pozitioneaza _doserrno (daca CF=1

Preview document

Programarea aplicațiilor de timp real - Pagina 1
Programarea aplicațiilor de timp real - Pagina 2
Programarea aplicațiilor de timp real - Pagina 3
Programarea aplicațiilor de timp real - Pagina 4
Programarea aplicațiilor de timp real - Pagina 5
Programarea aplicațiilor de timp real - Pagina 6
Programarea aplicațiilor de timp real - Pagina 7
Programarea aplicațiilor de timp real - Pagina 8
Programarea aplicațiilor de timp real - Pagina 9
Programarea aplicațiilor de timp real - Pagina 10
Programarea aplicațiilor de timp real - Pagina 11
Programarea aplicațiilor de timp real - Pagina 12
Programarea aplicațiilor de timp real - Pagina 13
Programarea aplicațiilor de timp real - Pagina 14
Programarea aplicațiilor de timp real - Pagina 15
Programarea aplicațiilor de timp real - Pagina 16
Programarea aplicațiilor de timp real - Pagina 17
Programarea aplicațiilor de timp real - Pagina 18
Programarea aplicațiilor de timp real - Pagina 19
Programarea aplicațiilor de timp real - Pagina 20
Programarea aplicațiilor de timp real - Pagina 21
Programarea aplicațiilor de timp real - Pagina 22
Programarea aplicațiilor de timp real - Pagina 23
Programarea aplicațiilor de timp real - Pagina 24
Programarea aplicațiilor de timp real - Pagina 25
Programarea aplicațiilor de timp real - Pagina 26
Programarea aplicațiilor de timp real - Pagina 27
Programarea aplicațiilor de timp real - Pagina 28
Programarea aplicațiilor de timp real - Pagina 29
Programarea aplicațiilor de timp real - Pagina 30
Programarea aplicațiilor de timp real - Pagina 31
Programarea aplicațiilor de timp real - Pagina 32
Programarea aplicațiilor de timp real - Pagina 33
Programarea aplicațiilor de timp real - Pagina 34
Programarea aplicațiilor de timp real - Pagina 35
Programarea aplicațiilor de timp real - Pagina 36
Programarea aplicațiilor de timp real - Pagina 37
Programarea aplicațiilor de timp real - Pagina 38
Programarea aplicațiilor de timp real - Pagina 39
Programarea aplicațiilor de timp real - Pagina 40
Programarea aplicațiilor de timp real - Pagina 41
Programarea aplicațiilor de timp real - Pagina 42
Programarea aplicațiilor de timp real - Pagina 43
Programarea aplicațiilor de timp real - Pagina 44
Programarea aplicațiilor de timp real - Pagina 45
Programarea aplicațiilor de timp real - Pagina 46
Programarea aplicațiilor de timp real - Pagina 47
Programarea aplicațiilor de timp real - Pagina 48
Programarea aplicațiilor de timp real - Pagina 49
Programarea aplicațiilor de timp real - Pagina 50
Programarea aplicațiilor de timp real - Pagina 51
Programarea aplicațiilor de timp real - Pagina 52

Conținut arhivă zip

  • Programarea Aplicatiilor de Timp Real
    • LUCRAREA_1.pdf
    • LUCRAREA_10.pdf
    • LUCRAREA_11.pdf
    • LUCRAREA_12.pdf
    • LUCRAREA_13.pdf
    • LUCRAREA_2.pdf
    • LUCRAREA_3.pdf
    • LUCRAREA_4.pdf
    • LUCRAREA_5.pdf
    • LUCRAREA_6.pdf
    • LUCRAREA_8.pdf
    • LUCRAREA_9.pdf

Alții au mai descărcat și

Modelarea Matlab-Simulink a Unei Sere

Cunoasterea duratei de timp de la semanat pâna la rasaritul plantelor mai are însemnatate si pentru obtinerea unor productii cat mai timpurii. Daca...

Circuite logice secvențiale

In multe aplicatii este nevoie de un element care sa prezinte 2 stari diferite, cu posibilitatea de a trece dintr-o stare in cealalta, fara sau in...

Proiectare conceptuală

Cerintele sistemului operational Odata ce a fost definita nevoia si abordarea tehnica, e necesar sa le tranlatam intr-un “scenariu...

Te-ar putea interesa și

Echipamente Radio definite prin Software

Introducere în Echipamente Radio definite prin Software (SDR) 1.1Introducere În ultimul deceniu al secolului 20, tehnologia SDR a parcurs o...

Sistem de automatizare cu PLC

Noţiunea de PLC vine de la Programmable Logic Controller (Controller Logic Programabil) şi este un computer digital folosit la automatizarea unor...

Automatizarea parcării unei companii cu un PLC S7-300

1. Controller Programabil Logic (PLC) 1.1. Introducere Ingineria controlată a evoluat de-a lungul timpului. Cândva, în trecut, oamenii erau...

Securitatea Informațiilor la Dispozitive Mobile

INTRODUCERE În ziua de azi, a fi informat reprezintă o caracteristică a celor care ies învingători în orice domeniu. Informaţiile sunt foarte...

Controlul motoarelor DC folosind o placă de dezvoltare cu DSP

CAPITOLUL 1. INTRODUCERE Introducerea pe scară largă a automatizării şi robotizării, realizarea noilor tipuri de maşini unelte cu comanda program...

Protecția și securitatea informațiilor - plan de securitate

1. Descrierea sistemului informatic În tratarea sistemului informaţional, accentul este pus pe sistemul informatic integrat implementat în cadrul...

Proiectarea Hardware și Software a unui Telefon Public Inteligent

1. Tema proiectului Realizarea unui telefon care sa poata fi folosit in regim de telefon public, dar care sa ofere si alte servicii speciale unui...

Sistemul Informational al Întreprinderii Comerciale

Una din caracteristicile societatii moderne este vehicularea uneicantitati mari deinformatii de natura diferita. Expertii tind sa acreditezeideea...

Ai nevoie de altceva?