340 likes | 539 Views
I RS. INTEGRISANI RAČUNARSKI SISTEMI 2 deo 2014. Autor : Nenad Jovičić. Projektni zadatak 2.
E N D
IRS INTEGRISANI RAČUNARSKI SISTEMI 2 deo 2014 Autor: NenadJovičić
Projektnizadatak2 Napisati C projekatza razvojni sistem RS-MSP430F449 kojiobezbeđujeserijskuvezu mikrokontrolera sa PC računarom. Brzina komunikacije treba da bude 2400 bit/s, bez bita parnosti i sa jednim stop bitom. Pritiskom na taster potrebno je generisati serijskoslanje podatka u koji se nalayi u promenljivoj data. Sa druge strane, numerički jednocifreni podatak primljen preko serijske veze treba snimiti u promenljivu data i ispisati ga na sedmosegmentni LED displej.
Opis hardvera Razvojni sistem RS-MSP430 poseduje više funkcionalnih celina od kojih su one interesantne za ovaj projekat prikazane na slici
Kreiranje projekta S obzirom da je tražena implementacija u C-u, u dijalogu kreiranja projekta se bira C-ovski template.
Osnovni fajl Predefinisani Template za C-ovski projekat je prikazan na slici
UART • Podatakdužine 7 ili 8 bitai bit parnosti • Nezavisanradprijemnikaipredajnika • Baferisaniprijemniipredajniregistri • Ugrađenapodrškazamultiprocesorskukomunikaciju • MogućnostbuđenjaizLPMxmodanastartnuivicusignalanaulazu u prijemnik • Mogućnostpodešavanjabrzineprenosa u širokomopseguvrednostiisavelikomrezolucijom • Hardverskadetekcijagrešaka u prenosu • Dvanezvisnaprekidaprijemnikaipredajnika
Baud rate generator • Generator sadrži 16-bitni brojač, 16-bitni delitelj/preskaleri modulator • Bitskaučestanost BITCLK možebitinajvišejednatrećina BRCLK • Faktor N kojim se deli učestanost BRCLK u ciljudobijanježeljenebitskeučestanosti se dobijakao N=BRCLK/baud rate • U opštemslučaju N nijeceobroj • Ceodeoodnosa N se upisuje u UxBRregistar a decimalnideo se predstavljasaosambitaupisanih u registarUxMCTL
Drugi pristup - UART prekidi • UART posedujedvaodvojenaprekidnavektora – jedanzaprijemnikidrugizapredajnik • Prekidprijemnika se događakada je podatakprimljeniupisan u UxRXBUFregistar • Prekidpredajnika se događakada je sadržajpredajnogregistraUxTXBUFprebačen u izlaznipomeračkiregistarimože se upisatinovipodatak
C ili asembler? • Jezik C omogućava struktuirano programiranje. Kompajler sam vodi računa o popunjavanju memorije i osnovnim inicijalizacijama. Kod je portabilan i na druge mikrokontrolerske platforme. • Asembler je efikasan po pitanju brzine izvršavanja. Kod pisan u asembleru nije portabilan na druge platforme i mnogo je manje čitljiv od C koda.
Kako kombinovati dobre strane C-a i asemblera? Glavni program treba pisati u C-u. Sve promenljive i konstante treba pisati u C-u. Delove koda koji odslikavaju suštinu algoritma (strukturu) treba pisati u C-u. Vremenski kritične funkcije i prekidne rutine treba pisati u asembleru.
C calling convention – načina na koji C funkcije dobijaju i vraćaju parametre Parametri C funkcija se prenose preko registara R12-R15, i preko steka. Povratne vrednosti se prenose preko registara R12-R13. Unutar C funkcija registri R4-R11 se koriste za lokalne promenljive i C kompajler ih automatski čuva na steku pri pozivu funkcije. Primer funkcije: f(w,x,y,z):