1 / 33

Procesni sistemi vodenja

Procesni sistemi vodenja. Specifičnosti programiranja vgrajenih sistemov v C-jeziku. Vsebina poglavja. Kratek opis jezika C Primerjava - Zbirni jezik : C Programiranje vhodno/izhodnih vmesnikov Standardne knjižnice Spremenljivke Funkcije Lokalne in globalne spremenljivke

zonta
Download Presentation

Procesni sistemi vodenja

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Procesni sistemi vodenja Specifičnosti programiranja vgrajenih sistemov v C-jeziku Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  2. Vsebina poglavja • Kratek opis jezika C • Primerjava - Zbirni jezik : C • Programiranje vhodno/izhodnih vmesnikov • Standardne knjižnice • Spremenljivke • Funkcije • Lokalne in globalne spremenljivke • Ukazi prevajalniku – makro ukazi Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  3. Kratek opis jezika C • višji programski jezik, • blizu strojni opremi, • omogoča pisanje ’čistih’ uporabniških, pa tudi sistemskih programov, kot so operacijski sistemi • začetki C so UNIXu • Linux je pisan v C. • osnova je ANSI C jezik • Za vse razen ANSI ’C’-ja pa velja da niso povsem kompatibilni med sabo. ANSI C naj bi razumele vse ostale izvedenke, obratno pa ne velja. • nadaljnji razvoj je v C++, objektno orientiran C. Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  4. Zbirni jezik: Hitrejše izvajanje Zasede manj pomnilnika Zahteva manj zmogljive procesorje Natančno določimo obnašanje programske opreme Možno je izkoristiti vse prednosti nabora ukazov procesorja C: Krajši program Bolj pregleden program Preprostejše vzdrževanje Hitrejši razvoj aplikacij Bolj fleksibilen razvoj aplikacij Včasih se koda ne prevede tako, kot smo predvideli Prednosti - Zbirni jezik : C Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  5. Uporaba C in zbirnega jezika Tradicionalni programerji DSP programerji Zbirni jezik Zbirni jezik 10% programerjev uporablja zbirni jezik! DSP programi za široko potrošnjo Zbirni jezik DSP – več zbirnega jezika – maksimalna hitrost izvajanja Široka potrošnja – optimalna cena – prevladuje zbirni jezik Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  6. Programiranje vhodno/izhodnih vmesnikov • Uporabljamo maskiranje bitov! • Posamezni bit lahko pomeni: • Informacijo o: • Stanju naprave • Stanju vhoda/izhoda • Ukaz napravi Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  7. Maskiranje bitov • Omogoča postavljanje, brisanje ali branje določenih bitov znotraj spremenljivke (besede) brez vpliva na ostale bite. • Uporabljamo ga za spreminjanje in branje vsebine registrov. • Maskiranje je dejansko le uporaba bitnih operacij: • Dva argumenta: • Spremenljivka • Maska • & (bitni IN)uporabljamo za branje in brisanje. • | (bitni ALI) uporabljamo za postavljanje bitov. Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  8. Maskiranje, Branje • Primer: • Prebrati želimo bit 3 v besedi. Uporabimo bitni IN: • Rezultat je maskirana vrednost spremenljivke, ki vsebuje le informacijo o 3. bitu. Spremenljivka Maska Rezultat Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  9. Maskiranje, Postavljanje • Primer: • Bit 4 v besedi želimo postaviti na 1, ostalih bitov ne želimo spreminjati. Uporabimo bitni ALI. • Bit 4 je 1, ostali biti se niso spremenili. Spremenljivka Maska Rezultat Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  10. Maskiranje, Brisanje • Primer: • Izbrisati (postaviti na 0) želimo bit 6, ostale vrednosti naj ostanejo nespremenjene. Uporabimo bitni IN. • Maska vsebuje eniški komplement (bitno negacijo). Bit 6 rezultata je na 0, ostali se niso spremenili. Spremenljivka Maska Rezultat Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  11. Pisanje programa v C • Deklariranje: • Spremenljivke in funkcije • Definiranje: • Rezerviramo pomnilnik in vsebino - jedro funkcij • Definicija velja tudi kot deklaracija, obratno pa ne velja. • Pri pisanju velja da imamo: • bloke • v zavitih oklepajih {} • stavke • zaključeni s podpičjem • komentarje • /*komentar*/ • novejši C uporabljajo za komentar “//” na začetku vrstice, velja do konca vrstice Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  12. Standardne knjižnice • if stavek • switch stavek • while do zanka • do while zanka • for stavek • go to (se izogibamo) • Moč C dajejo funkcije iz knjižnic! Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  13. Stavek if-else if(pogoj) /* ni podpičja!!! */ { operacija1; /* DA */ } else /* ni podpičja!!! */ { operacija2; /* NE */ } Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  14. Stavek switch switch(a) /* ni podpičja!! a je tipa int ali char */ { case 1: /* a je enak 1 */ operacija1; break; /* izhod iz zanke */ case 2: /* a je enak 2 */ operacija2; break; /* izhod iz zanke */ default: /* a ni enak 1 ali 2 */ operacija3; break; /* izhod iz zanke */ } Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  15. Zanka while-do while(pogoj) /* ni podpičja! */ { operacija1; } Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  16. Zanka do-while do /* ni podpičja! */ { operacija1; } while(pogoj); Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  17. Zanka for for(inicializacija;test;korak) /* ni podpičja! */ { operacija1; } Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  18. Spremenljivke • Spremenljivka je definirana: • ime spremenljivke • lahko ima poljubno število znakov • prevajalnik loči prvih x znakov • tip podatka (celo, realno, znak,...) • način hranjenja spremenljivke (kje in koliko časa) Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  19. Tipi spremenljivk • lokalne • globalne • registrske • konstante • vektorji in polja • kazalci Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  20. Tipi podatkov Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  21. Izpeljani tipi • kazalci na objekte nekega tipa, • polja objektov nekega tipa, • strukture, ki vsebujejo spisek objektov, • unije, ki vsebujejo enega od objektov v spisku, • funkcije, ki vrnejo objekt določenega tipa. Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  22. Kazalci • Kazalci so spremenljivke, ki vsebujejo naslov neke druge spremenljivke ali dela pomnilnika. • Podobno kot v zvezi z običajnimi spremenljivkami tudi za kazalec poznamo: • ime, • tip (ki pove, na kakšne vrste podatkov kaže) in • način hranjenja. Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  23. Kazalci (2) int stevilo = 12; // celostevilcna spremenljivka int *k_stevilo; // kazalec na int k_stevilo = &stevilo; // kazalec dobi vrednost Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  24. Vektorji in polja • Vektorji: • Polja: Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  25. Dvodimenzionalno polje Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  26. Strukture • Strukture so v osnovi zelo podobne vektorjem, vendar jih za razliko od le-teh sestavljajo elementi različnih tipov. Primer strukture: struct Osebni_podatki /* deklaracija strukture */ { char ime[20]; /* ime ima lahko največ 20 znakov */ char priimek[20]; /* priimek ima lahko največ 20 znakov */ int leto_rojstva; /* letnica rojstva */ unsigned spol:1; /* spol - 0:moški, 1:ženski - spremenljivka zasede le en bit */ }; • struct Osebni_podatki osebni_podatki; /* definicija strukture */ • osebni_podatki.leto_rojstva=1900; /* prireditev vrednosti elementu strukture */ Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  27. Funkcije • Funkcije sestavljajo: • Ime funkcije • Tip funkcije oz. vrednosti, ki jih funkcija vrne • Vrednost, ki jo funkcija vrne • Funkcija v C vrne eno spremenljivko, če želimo da vrača več vrednosti, jih moramo vračati preko kazalcev oz. globalnih spremenljivk. • Jedro Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  28. Lokalne in globalne spremenljivke • Lokalne spremenljivke • So veljavne znotraj funkcij. • Imamo tudi statične spremenljivke(obdržijo vrednost tudi po izhodu iz funkcije). • Globalne spremenljivke • Veljajo za celoten program. • Ponavadi so definirane v main funkciji, vendarse jih izogibamo • Ko imamo večje programe ne vemo katera funkcija se je spremenila, ko je kajnarobe. • Paziti moramo na začetno vrednost! ! Vgrajeni sistemi brez operacijskega sistemaimajo poljubno vrednost ob vklopu. Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  29. Primer uporabe kazalcev void zamenjaj(int *s1, int *s2) /* delamo s kazalci, saj lahko funkcija vrne le eno */ /* spremenljivko */ { int zacas; /* zacasna spremenljivka */ zacas=*s1; /* delamo s kazalci - */ /* zamenjamo vrednosti na naslovih spremenljivk */ *s1=*s2; *s2=zacas; } /* ukaza return ne potrebujemo, ker je funkcija tipa */ /* void in ne vrne ničesar */ Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  30. Ukazi prevajalniku – makro ukazi • #define • #define NIZ_ZANKOV niz_znakov • #include • #include "header.h" • #include <header.h> Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  31. Ukazi prevajalniku – makro ukazi • #if, #else in #endif #if T_ALI_F blok_programa1 #else blok_programa2 #endif • #ifdef, #else in #endif #ifdef IME1 blok_programa3 #else blok_programa4 #endif Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  32. Domača naloga • Imaš register A, brez spreminjanja ostalih bitov: • Postavi bit 8 registra A na 1! • Izbriši (postavi na 0) bit 6 registra A! • Preveri bit 4 registra A (if(A.4==) ...)! Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

  33. Možna vprašanja na izpitu • Primerjava - Zbirni jezik : C • Primeri maskiranj bitov (postavljanje, brisanje, testiranje, glej Domačo nalogo) Procesni sistemi vodenja - Specifičnosti programiranja vgrajenih sistemov v C-jeziku

More Related