iNG Bbl QU6c BÅo Lip TRINH HÉ THöNG NHÜNG vo-uc SysTick Ha GPIO POR I Counts = int main (void) // activate po SYSCTL RCGC2 Counts = // make PP2 output GPIO PORTF DIR_R 23 alt funct // disable AFSEL_R PORTF GPIO XIJÄ'T BÅN DAI HOC QUöc GIA TP HO Chi MINH DAI НОСQU6c (АА тр НО снј MINH TRUdNG D41 НОС вАсн КНОА Qu6c ВЙо Нойпд Trang - ьАр TRiNH не TH6NG 403 мА хиХт BAN D41 НОС QU6c GIA тр нб снј мп•ш- 2016 MUC LUC TONG QUAN 1.1 MO dåu 1.2 Yéu cåu phån cirng 7 1.3 Cåi dät phån mém Chu•ang2 CO BAN VÉ LAP TRINHC CHO HE THONG NHCJNG 2.1 Gi&ithiéu 2.2 Cåc vån dé co bån vé C cho he th6ng nhüng Chuang cÅU TRÜc CHUÖNGTRINH 3.1 Vai trö cüa cåc håm (function) 3.2 Sir dung lurudö dé thiét ké cåu trüc churcmgtrinh 3.3 3.4 3.5 3.6 Giå mä (pseudo code) Chia chtrcyngtrinh thånh cåc module Quå trinh bién dich chtrong trinh Chi dån tién bién dich Gl(31THIEtJ DONG VI DIÉU KHIÉN L.M4F 9 10 53 53 54 56 57 58 59 69 4.1 Kién trüc löi Cortex M3 vå Cortex M4F 70 4.2 Löi CM3 4.3 HQvi diéu khién LM4F 72 75 LAP TRINH vÖ1 LM4F120 79 79 5.1 Giöi thieu kit Stellaris LaunchPad 81 5.2 Giåi thiéu vé cåc ngoqi vi cüa LM4F120 5.3 Slr dung phån mém KEIL dé viét vå thu nghiém chtrcmgtrinh 89 5.4 N'löphOng churung trinh våi KEll 5.5 Lap trinh GPIO cho LM4F120 99 102 5.6 Cäu trüc xung nhip trén chip LM4F120 vå trén kit LauchPad 109 5.7 Thu vién StellarisWare 112 5.8 Bit-bang 14 5.9 I)bng bé I/O 115 Chro•ng6 NGÅT Cåc khåi niém co bån vé ngät Thöng tin vå döng bé giüa cåc thread Tao xung düng ngät timer Mö hinh ngät cüa löi ARM Cortex M4 Ngåt System Tick Ngåt ngoåi Chey dua Chrang TRUYÉNTHONG NÖI TlÉp BÅTDONG BO (UART) 7.1 cåu trüc UART cüa LM4F120 7.2 Sir dung UARTOcüa Kit Stellaris Lauchpad 7.3 Lap trinh diéu khién UART cüa LM4F120 7.4 Truyén nh@ndü lieu v6i UARTO thu VienStellarisWare 7.5 Lap trinh UART 7.6 Lap trinh UART sü dung ngåt 7.7 Sir dung UART lap trinh vå gö r6i 6.1 6.2 6.3 6.4 6.5 6.6 6.7 119 119 120 123 126 140 148 153 155 156 157 159 162 164 166 169 Chuang LAPTRiNHVÖIMÅYTRANG Khåi niérn vé måy treng thåi Lap trinh he thong sir dung måy trqng thåi Måy treng thåi co sv kién thöi gian Xir 19da tåc vu vérimåy treng thåi Måy treng thåi co ngö våo lå ngö måy treng thåi khåc (hierachy state machine) 8.6 Th&igian dåp frng cüa chuang trinh Chu•cng HE DIÉU HÅNH THÖI GIANTHUC 8.1 8.2 8.3 8.4 8.5 9.1 Gibi thieu FreeRTOS 9.2 Thread FreeRTOS 9.3 Quån 19tåc vu FreeRTOS FreeRTOS 9.4 Quån 19hång dei (queue) 9.5 Quån 19ngåt FreéRTOS FreeRTOS 9.6 Quån 19tåi nguyén 9.7 Quån 19bé nh6 cüa FreeRTOS 9.8 Cåu trüc file vå thu muc 173 175 177 183 189 198 201 201 205 206 233 243 264 282 285 LÔIMOĐÂU Tva dcn săch nây lâ Lăp trinh hë thƠngnhńng Vây văn dë quan tăm dău tiën có IC lâ thơng nhlźnglâ gi? Thuc rât khó dinh nghỵa chinh xcic, Cơ dong khói niem vë thơng nhling, mot khói niëm dłcqc nhăc dën vâ dung phƠ biën trën thë giĨi khocing han mtcơi năm nay.Trong ccic dinh nghỵa, xĨc dinh vâ thbng nhling, mơt dinh nghỵa sau cĨ Ië lâ phƠ hiën, dâ chăp nhăn hcrn câ lâ: /7ë thông nhńng lâ mơt Ihuăt ngrc chun mƠn dë Chi mơt he thơng có tich hęxpphiin Cling vâ phân mëm phțłc vu cho muc dich chun dung nhiëu lỵnh vłrc cơng nghiëp, dƠng, vâ cĨ khci tv hogt dƠng mot chi?c nhăt dinh vâ cÓ khâ dłrqc "nhling” vâo mơt mơi trtr&ng, mƠt hë thbng Ibn han khcic Khdłc v&i căc mciy tinh da cht?c năng, hë thông nhzing chi t/7Ęrchițfi::môt hoăc môt vâi chł;-cnăng chuyën dung nhăt dinh vâ thłrÔng Clinphcii 11411 yëll căli Cl/thë cân dłr«c xăy dung nhăm gium thiëu chi phi, kich 1h1tócphi/ hup vói chł;rcnăng cua nĨ Khi phcit triën Clic hc; thƠng nhling phvc• vu căc muc dich khcic nhau, chung mƠtsơ cĨch tiëp cân chinh nhłr sau: tiëp cân dĘcaIrën chip chuyën dung ASIC: tiëp dua trën cdłc dƠng vi xt•cIS', vi diëu khiën,• tiëp trën cuc dÔng FPGA, CP LI),' tiëp cân dua Irën Clic dÔng DSP Căc dƠi nglž phi}/ Iriën thơng n/lling hay nĨi rong han lâ phcit triën sân phâm diën tu Ihông thitÔngsë dęra trën cuc Iiëu chi sau dë Chen lua, quyët dinh cdłch tiëp nâo lâ phil hup.• Ihči gian phit triởn sõn phcợm, sụ lôxng sõn phõm, chi phi phcžt triën sân phăm, gian dăp l?ng sgr thay dôi nhu cău cłža ngłcôi dung, thay dôi cău hinh-tinh nang sân phâm dë dâng, cuc ngoqi vi liën quan dë 1hĘrchien sân phcỵm Trong căc căc tiëp (j trën, ccźchclęraIrën Clicdông vi ľ, vi diëu khiën dłrcxcchen IUII chižyëu łrën yëu lô Ihôi gian phiit triën scin phâmhę3thông nhanh chông, dăp lŕng nhunh scr Ihay dôi liën IUCcłža ngłcơi dỵmg, su ddâng chen lua căc dơng vi xu IS, vi diëu khiën râl da cl«ngtrën thë giói Clich tiëp nây Cơ Ihë nói lâ cân băng xc;t dën hâii llël căc tiëu chi so vói nhčrng ccźchliëp Igi.• dCłcbie,' ctiëu kiën 1