25
Hđiều khin thi gian thc SVTH: Nhóm 1 1 MC LC I. Cơ sở lý thuyết .......................................................................................................... 3 1. Tìm hiểu vRTOS ............................................................................................... 3 1.1 RTOS là gì ? ................................................................................................... 3 1.1.1 Hthng thi gian thc (Real time System): .......................................... 3 1.1.2 Thi gian thc cng (Hard Real-time) và thi gian thc mm (Soft Real- Time):............................................................................................. 3 1.1.3 Định nghĩa hệ điều hành thời gian thc RTOS: ..................................... 4 1.2 Các thành phần trong RTOS: ......................................................................... 4 1.2.1 Blịch trình (Scheduler): ....................................................................... 4 1.2.2 Bđiều phi (Dispatcher): ...................................................................... 6 1.2.3 Các đối tượng (Objects) trong RTOS: ..................................................... 7 1.3 Định nghĩa Tasks: ........................................................................................... 8 1.3.1 Task hthng (System Task): ................................................................. 8 1.3.2 Các trạng thái của mt Task: ................................................................... 9 1.3.3 Cấu trúc của mt Task: .......................................................................... 10 2. Tìm hiểu vSWI ................................................................................................ 10 2.1 Định nghĩa SWI ............................................................................................ 10 2.2 Độ ưu tiên SWI trong hệ thng .................................................................... 10 2.3 Quy tc lp lịch trình (Scheduling Rules) .................................................... 11 2.4 Các bước xlí trong hệ thng ...................................................................... 12 3. Động cơ bước ..................................................................................................... 12 3.1 Khái niệm ..................................................................................................... 12 3.3 Phân loại ....................................................................................................... 13 3.4 Ưu điểm và nhược điểm ............................................................................... 13 4. Gii thiu vKit Launchpad dùng vi điều khin TivaC .................................... 14 II. Thiết kế ................................................................................................................... 15 1. Sơ đồ khi ......................................................................................................... 15 2. Kết ni phn cng............................................................................................16 3. Thiết kế phn cng...........................................................................................16 3.1 Phím nhấn ..................................................................................................... 15

Bao cao DA

Embed Size (px)

DESCRIPTION

hiển thị số vòng quay lên led đơn

Citation preview

  • H iu khin thi gian thc SVTH: Nhm 1

    1

    MC LC

    I. C s l thuyt .......................................................................................................... 3

    1. Tm hiu v RTOS ............................................................................................... 3

    1.1 RTOS l g ? ................................................................................................... 3

    1.1.1 H thng thi gian thc (Real time System): .......................................... 3

    1.1.2 Thi gian thc cng (Hard Real-time) v thi gian thc mm (Soft Real- Time): ............................................................................................. 3

    1.1.3 nh ngha h iu hnh thi gian thc RTOS: ..................................... 4

    1.2 Cc thnh phn trong RTOS: ......................................................................... 4

    1.2.1 B lch trnh (Scheduler): ....................................................................... 4

    1.2.2 B iu phi (Dispatcher): ...................................................................... 6

    1.2.3 Cc i tng (Objects) trong RTOS: ..................................................... 7

    1.3 nh ngha Tasks: ........................................................................................... 8

    1.3.1 Task h thng (System Task): ................................................................. 8

    1.3.2 Cc trng thi ca mt Task: ................................................................... 9

    1.3.3 Cu trc ca mt Task: .......................................................................... 10

    2. Tm hiu v SWI ................................................................................................ 10

    2.1 nh ngha SWI ............................................................................................ 10

    2.2 u tin SWI trong h thng .................................................................... 10

    2.3 Quy tc lp lch trnh (Scheduling Rules) .................................................... 11

    2.4 Cc bc x l trong h thng ...................................................................... 12

    3. ng c bc ..................................................................................................... 12

    3.1 Khi nim ..................................................................................................... 12

    3.3 Phn loi ....................................................................................................... 13

    3.4 u im v nhc im ............................................................................... 13

    4. Gii thiu v Kit Launchpad dng vi iu khin TivaC .................................... 14

    II. Thit k ................................................................................................................... 15

    1. S khi ......................................................................................................... 15

    2. Kt ni phn cng............................................................................................16

    3. Thit k phn cng...........................................................................................16

    3.1 Phm nhn ..................................................................................................... 15

  • H iu khin thi gian thc SVTH: Nhm 1

    2

    3.2 Led n ......................................................................................................... 17

    3.3 Mch bo v .................................................................................................. 17

    3.4 Mch m dng ............................................................................................ 18

    4. Phn mm CCS................................................................................................... 18

    III. Code iu khin ...................................................................................................... 18

    IV. Kt qu nh gi ..................................................................................................... 24

    1. Kt qu t c ................................................................................................. 24

    2. u im v hn ch: ........................................................................................... 24

    3. ngh ............................................................................................................... 24

    TI LIU THAM KHO ...................................................................................... 24

  • H iu khin thi gian thc SVTH: Nhm 1

    3

    TM HIU SWI V NG C BC HIN TH

    S VNG QUAY QUA LED N

    Mc tiu:

    Trong iu khin chuyn ng k thut s, ng c bc l mt c cu chp hnh c bit hu hiu bi n c th thc hin trung thnh cc lnh a ra di dng s. ng c bc c ng dng nhiu trong ngnh T ng ho, chng c ng dng trong cc thit b cn iu khin chnh xc. V d: iu khin robot, iu khin tiu c trong cc h quang hc, iu khin nh v trong cc h quan trc, iu khin bt, bm mc tiu trong cc kh ti quan st, iu khin lp trnh trong cc thit b gia cng ct gt, iu khin cc c cu li phng v chiu trong my bay... Trong cng ngh my tnh, ng c bc c s dng cho cc loi a cng, a mm, my in...

    I. C s l thuyt

    1. Tm hiu v RTOS

    1.1 RTOS l g ?

    1.1.1 H thng thi gian thc (Real time System):

    Thi gian (Time) :

    S chnh xc ca h thng khng ch ph thuc vo kt qu

    tnh ton logic m cn ph thuc vo thi gian cho ra kt qu.

    Thc (Real):

    p ng ca h thng vi nhng s kin bn ngoi.

    Thi gian thc (Real-Time):

    Phi m bo cc yu t:

    p ng nhanh

    D on c.

    Cc tc v (Real-time Task) c xc nh bng deadline.

    Deadline l thi gian ti a mt tc v phi hon thnh

    vic thnh ton.

    1.1.2 Thi gian thc cng (Hard Real-time) v thi gian thc mm (Soft Real-Time):

    Hnh 1: Thi gian thc cng v thi gian thc mm.

  • H iu khin thi gian thc SVTH: Nhm 1

    4

    Thi gian thc cng:

    Mt tc v l thi gian thc cng nu nh thi gian tnh ton vt qu deadtime c th gy ra s ph v mi trng iu khin.

    Thi gian thc mm: Mt tc v l thi gian thc mm nu nh m bo thc

    thi trong deadtime cho php v nu nh khng m bo th s khng to ra nhng nguy hi no ng k cho h thng v khng lm nh hng n s ng x ca h thng.

    1.1.3 nh ngha h iu hnh thi gian thc RTOS:

    L h thng c:

    Lch trnh thc thi theo thi gian.

    Qun l ti nguyn h thng.

    Cung cp nhng nn tng c bn pht trin cc ng dng

    trn n.

    1.2 Cc thnh phn trong RTOS:

    Hnh 2: Cc i tng trong RTOS

    B lch trnh (Scheduler):

    L mt tp cc thut ton xc nh tc v (Task) no c

    thc thi.

    i tng (Object):

    L nhng cu trc c bit (Kernel) gip ngi lp trnh to ra

    cc ng dng.

    Dch v (Service) :

    L nhng iu khin m Kernel (li) thc thi trong i tng

    (object): chia thi gian (Timing), ngt (interrupt), p ng (handling)

    v qun l ti nguyn h thng (resource management).

    1.2.1 B lch trnh (Scheduler):

  • H iu khin thi gian thc SVTH: Nhm 1

    5

    L mt phn v cng quan trng ca li h thng iu khin

    (Operating System Kernel).

    N gip xc nh tc v (task) no s dnh quyn CPU

    thc thi tip theo. Sau , n thc hin vic chuyn trng thi

    (context switching) c thc hin bng b iu phi (dispatcher).

    Hnh 3: Chuyn i trng thi (Context Switching)

    Trng thi (ng cnh) ca tc v (Task)

    Mi task c mt trng thi ring ca n, n chnh l trng thi

    ca nhng thanh ghi (registers).

    Mi thi im 1 task mi c to ra, kernel s to ra v lu

    gi mt block iu khin lin quan n task (TCBs). TCBs l

    nhng cu trc d liu h thng m kernel dng lu tr nhng

    thng tin c trung ca task. TCBs cha mi th m mt kernel cn

    bit v mt task c th no . Khi task nag chy, trng thi ca

    n l ng. Trng thi ng ny c lu tr trong TCB. Khi task

    khng cn chy na, trng thi s b ng bng (frozen) trong TCB,

    v c s dng cho ln thc thi tip theo ca task.

    Cng tc chuyn i trng thi (Context Switch):

    S xy ra khi b lch trnh (scheduler) chuyn t mt trng

    thi ny sang mt trng thi khc.

    Vic chuyn i trng thi bao gm:

    Thi gian chuyn i:

    L thi gian tiu tn cho b lch trnh chuyn t task ny

    sang task khc.

    N khng c lin quan no n cc lnh thc hin trong task.

    Nu mt ng dng c thit k m xy ra chuyn i trng

    thi thng xuyn th c th dn n nhng thc thi khng cn thit.

    V vy, nn thit k ng dng theo cch m to ra t chuyn i trng

    thi nht.

    Khi no chuyn i xy ra:

    Mi khi ng dng to mt li gi h thng (System Call), b

    lch trnh s xc nh rng c cn chuyn i trng thi hay khng.

    Khi b lch trnh xc nh vic chuyn i l cn thit th s gi b

    phn phi (dispatcher) thc hin vic chuyn i.

  • H iu khin thi gian thc SVTH: Nhm 1

    6

    V d: Khi b thc thi ca Kernel xc nh cn dng vic thc thi

    Task 1 chuyn qua trng Task 2 th n s thc thi theo cc bc

    sau: Kernel s lu thng tin trng thi ca Task 1 Load thng tin

    trng thi ca Task 2, Task 2 tr thnh lung (thread) thc thi hin

    ti. Trng thi chuyn i ca Task 1 s c ng bang trong khi

    Task 2 ang c thc thi, nhng nu nh b chuyn i xc nh

    cn chy li Task 1 th Task 1 s quay li v tr ngay trc khi n b

    chuyn i.

    Hnh 4: V d v Contex Switch

    1.2.2 B iu phi (Dispatcher):

    Dng thc thi (Flow of Execution): Ti bt k thi im no RTOS ang chy, dng thc thi s

    chuyn n 3 vng: n cc Task ng dng (application Task), n mt chng trnh phc v ngt (ISR), hoc n Kernel.

    Khi no b phn phi c thc hin:

    Khi mt Task hoc ISR to mt li gi h thng, dng iu

    khin s chuyn n Kernel thc thi mt trong s nhng th tc

    c cung cp bi Kernel.

    Khi ri khi Kernel, dispatcher s c trch nhim l chuyn

    lnh iu khin n mt trong s nhng Task ng dng.

    Hnh 5: iu phi t mt Task

  • H iu khin thi gian thc SVTH: Nhm 1

    7

    Cch thc hin nh sau:

    Khng cn thit chuyn ton b lnh iu khin n

    cng mt task gi System Call. iu ny s c xc nh bng gii

    thut phn chia thi gian biu (scheduling algorithms) ca b lch

    trnh (scheduler).

    Chuyn i thc thi t mt Task

    Ty thuc vo cch truy cp vo Kernel nh th no m

    dispatching s xy ra khc nhau. Khi mt Task thc hin mt li gi

    h thng, dispatcher s c s dng thot khi Kernel mi khi

    Li gi h thng c hon thnh. Trong trng hp ny, dispatcher

    c dng nh mt li gi ca li gi (call-by-call basic) n c

    th h tr cho vic chuyn i trng thi ca Task. Bt k Task no

    cng c th gi system call. Mt hay nhiu Task c th trng thi

    sn sng cho thc thi.

    Chuyn i thc thi t 1 chng trnh phc v ngt (ISR):

    Hnh 6: iu phi t mt ISR

    Khi mt ISR to mt System Call, Dispatcher s b b v

    hiu ha cho n khi ISR thc thi xong. Qu trinh ny s ng min

    l c ti nguyn chuyn i gia cc Task. Chuyn i trng

    thi ny s khng c din ra bi v ISR phi c thc thi xong

    m khng c ngt bi cc Tasks. Sau khi ISR thc thi xong,

    Kernel s thot n dispatcher c th iu phi n ng task thc

    thi tip theo.

    1.2.3 Cc i tng (Objects) trong RTOS:

    Tasks:

    L cc lung (thread) thc thi cng tn ti v c lp nhau c

    th cnh tranh nhau dnh quyn thc thi.

    Semaphores:

    L i tng bt s kin ng b gia cc tasks, c th

    tng hoc gim.

    Message Queues:

  • H iu khin thi gian thc SVTH: Nhm 1

    8

    L mt kiu cu trc d liu c dng ng b ha hoc

    trao i thng tin gia cc Tasks.

    Real-time embedded applications:

    L s kt ni gia cc i tng ca Kernel gii quyt vn

    thi gian thc nh s ng thi, s ng b, v trao i d liu

    1.3 nh ngha Tasks:

    Hnh 7: S cu trc ca mt Task c bn.

    Task l mt lung thc thi c lp m c th cnh tranh chim quyn

    thc thi. Mt ng dng c chia ra lm nhiu Tasks ng thi

    (Concurrent Task) ti u kh nng p ng vo ra trong lut thi

    gian.

    Mt Task c nh ngha thun ty l mt tp cc tham s v cu

    trc d liu.

    Cc thnh phn ca mt Task: Khi c to ra, Task s c tn, ID duy nht, u tin, mt

    block iu khin Task (TCB), Stack, v cc th tc thc thi Task.

    1.3.1 Task h thng (System Task):

    Bao gm cc Task sau:

    Task khi to (Initialization or Startup Task)

    Khi to h thng v to task khi ng h thng.

    Task Ri (Idle Task).

    Idle Task chy theo chu k ri ca h thng (idle cycles),

    c t u tin thp nht.

    Thc thi mt vng lp v tn. Idle task chc chn rng b

    m chng trnh lun lun c gi tr cho trong trng hp khng c

    task no thc thi.

    Kernel cho php cc thao tc c cu hnh bi ngi dng

    (developer) chy nhng yu cu c bit: sleep mode.

  • H iu khin thi gian thc SVTH: Nhm 1

    9

    Task ng nhp (Logging Task).

    L tin nhn truy cp vo h thng.

    Task Li (Exception- Handling Task).

    Thc thi cc trng hp li h thng hoc ng dng.

    Task sa li (Debug Agent Task).

    Cho php sa li thng qua cng c debug (host debugger).

    Ch rng cc task h thng khc c th c to ra trong qu trnh

    khi to, ph thuc vo cc thnh phn c trong Kernel.

    Hnh 8: Cc trng thi ca mt Task.

    1.3.2 Cc trng thi ca mt Task:

    Trng thi ca mt Task:

    Ti bt k mt thi im, mi task tn ti mt trong s nhng

    trng thi nh bao gm: Sn sng (Ready), ang thc thi (Running),

    hoc Kha (Blocked). Khi mt h thng nhng thi gian thc chy,

    mi task thay i t trng thi ny n trng thi khc theo quy lut

    logic ca mt trng thi hu hn n gin (Finite state machine

    (FSM)).

    V c bn, 3 trng thi chnh c s dng trong hu ht cc

    h thng Kernel s dng phng php lch trnh thay th.

    (preemptive scheduling).

  • H iu khin thi gian thc SVTH: Nhm 1

    10

    1.3.3 Cu trc ca mt Task:

    Hnh 9: Hin thc cu trc ca mt Task

    Chy n kt thc Task (Run to completion Task)

    Mt v d ca Run to completion Task l Task khi to

    cp ng dng (application level). Task khi to c nhim v khi

    to ng dng v to ra cc dch v, Tasks, v mt s i tng ca

    Kernel.

    Vng v tn Task (Enless-Loop Task)

    Mt cu trc Enless-Loop Task bao gm c phn code khi

    to nhng phn khi to ch cn mt ln, sau s l vng lp v

    tn.

    Mt thnh phn khng th thiu ca vng lp v tn l mt

    hay nhiu blocking call nm trong vng lp. Nhng blocking call

    ny cho php cc Task c u tin thp hn c th chy c.

    2. Tm hiu v SWI

    2.1 nh ngha SWI

    SWI (software interrupt) l mt ngt gy ra bi phn mm, thng l

    bng mt chng trnh trong ch ngi dng.

    2.2 u tin SWI trong h thng

  • H iu khin thi gian thc SVTH: Nhm 1

    11

    Hnh 10: u tin SWI trong h thng

    CPU ch thc hin mt lnh mt thi im nn n ch c th tm ngng vic thc thi mt tin trnh ang chy thc thi mt tin trnh khc ri sau quay tr v thc thi tip tin trnh ang b tm ngng.

    Khi mt ngt xut hin, vic thc thi trng trnh chnh tm thi b dng v CPU thc hin r nhnh n trnh phc v ngt ISR. Ta c th ni chng trnh chnh c thc thi mc nn cn ISR c thc thi mc ngt.

    Mi mt nguyn nhn dn n ngt phi c thng qua thanh ghi cho php ngt IE (interrupt enable).

    u tin ngt: Cc ngt c mc u tin cao hn s c phc v trc nh thanh ghi IP (interrupt priority).

    2.3 Quy tc lp lch trnh (Scheduling Rules)

    Hnh 11: Quy tc lp lch trnh

    Biu di y cho thy u tin c sp xp theo th t tng dn t

    di ln trn vi Hwi c u tin cao nht.

    Trong hnh trn SWI c 2 qu trnh, swi_a (p1) v swi_b (p2) c u tin

    cao hn.

    Idle Task SWI HWI

    Thi gian x l linh hot Thng t l khung hnh Chu k l mini giy Mc u tin

  • H iu khin thi gian thc SVTH: Nhm 1

    12

    Khi u swi_a ang trng thi running v sau Hwi yu cu mt ngt

    swi_post (swi_b). Khi nhn c yu cu ngt t Hwi th lp tc swi_b t trng

    thi ready chuyn sang trng thi running. Trong khi swi_a ang hng i

    sn sng, khi tin trnh swi_b kt thc th swi_a s quay v trng thi running.

    Hnh 12: K thut FIFO

    Chin lc FIFO: CPU c cp pht cho tin trnh u tin trong danh

    sch sn sng c yu cu, v ch c gii phng khi tin trnh t nguyn

    hoc c mt yu cu xut nhp.

    Sau khi Hwi gi yu cu ngt swi_post (swi_b) th CPU c tr li cho

    swi_a (p1), trong khi swi_b vn trng thi ready v ch n khi swi_a thc

    hin xong th swi_b mi chuyn sang trng thi running.

    2.4 Cc bc x l trong h thng

    Hnh 13: Cc bc x l trong h thng 3. ng c bc

    3.1 Khi nim

    ng c bc l mt thit b c - in dng bin i xung in mt chiu thnh chuyn ng quay c hc ri rc. Gc quay v tc quay tng ng vi s xung v tn s xung in cp cho ng c.

    Mi vng quay ca trc ng c c thit lp bi mt s lng hu hn cc gc bc, l gc quay ca roto mi khi stato b o cc tnh.

    3.2 Cu to

    ng c bc c th c coi l tng hp ca hai loi ng c: ng c mt chiu khng tip xc v ng c ng b gim tc cng sut nh.

    ng c bc c th c m t nh l mt ng c in khng dung chuyn mch.

    INT! Hard R/T Process

    Post Swi

    Cleanup, RET

    Swi Ready

    Continue Processing

  • H iu khin thi gian thc SVTH: Nhm 1

    13

    C th, cc mu trong ng c l rotor v stato l cc nam chm vnh cu hoc trong trng hp ca ng c bin t tr n l nhng khi rng lm bng vt liu nh c t tnh, cho php chng quay kh nhanh v vi mt m iu khin thch hp cho php chng khi ng v dng li bt k v tr no ta mun mt cch d dng.

    Hnh 14: Cu to ng c bc

    3.3 Phn loi

    ng c bc c th c phn loi da theo cu trc hoc cch qun cc cun dy trn stator. Da theo cu trc rotor, ng c bc c chia thnh 3 loi:

    - ng c bc t tr bin thin. - ng c bc nam chm vnh cu. - ng c bc lai.

    Da theo cc qun dy trn stator, ng c bc c chia thnh 2 loi: - ng c bc n cc. - ng c bc lng cc.

    Ngoi ra, cc loi ny cn ri vo mt trong hai phng php cu to. Trong phng php th nht, rotor c cc rng bnh thng. Stator c cc rng tng t gi cc cun dy. Trong phng php th hai, mt rng ca rotor v stator c nhiu rng nh hn. u im ca rng nh ny l to ra cc gc bc nh hn.

    3.4 u im v nhc im

    u im: - Khi dng ng c bc khng cn mch phn hi cho iu khin v tr

    v vn tc. - Thch hp vi cc thit b iu khin s vi kh nng iu khin s trc

    tip. - D dng iu khin khi ng, dng v o chiu quay. - Khng c chi than nn lm vic tin cy.

    Nhc im - Cng hng s xy ra khi iu khin khng ng cch. - Cng sut thp.

  • H iu khin thi gian thc SVTH: Nhm 1

    14

    4. Gii thiu v Kit Launchpad dng vi iu khin TivaC

    Tiva C Series TM4C123G LaunchPad Evaluation Board l nn tng

    dnh cho ARM Cortex-M4F. S dng chip TM4C123GH6PMI vi tnh

    nng h tr USB 2.0, ch ng ng, module iu xung (MC PWM). Trn kit

    c cc nt nhn, LED RGB, d dng np v debug chng trnh vi CCS hoc

    IAR.

    Mt s tnh nng c bn:

    Chuyn ng kim sot PWM USB micro-ab kt ni:

    Thit b ch cu hnh mc nh. My ch/OTG ch supportable.

    Rgb dn ngi s dng. Hai ngi s dng cc thit b chuyn mch (ng dng/Wake) C sn I/O a ra tiu trn mt 0.1-in (2,54-mm) li Chuyn i-la chn ngun in:

    ICDI

    Thit b USB Chuyn i thit lp li Ci t sn rgb QuickStart ng dng c h tr bi Tivaware C lot phn mm bao gm th vin USB v

    driver cc thit b ngoi vi. Tiva C lot TM4C123G b phng Boosterpack xl giao din, c tnh nng

    Stackable tiu m rng kh nng ca cc Tiva C lot b phng nn tng pht trin.

    Hnh 15: KIT Tiva C Launchpad

  • H iu khin thi gian thc SVTH: Nhm 1

    15

    II. Thit k

    1. S khi

    Hnh 16. S khi

    2. Kt ni phn cng

    KEY ni t port PA2 n PA5 ca Kit Tiva C. LED N ni t port PC4 n PC7 ca Kit Tiava C.

    T KIT TIVA C ni t port PD0 n PD3 vi u vo MCH BO V (PC817).

    u ra MCH BO V ni t chn 1 n chn 4 ca ULN2803 (mch m dng).

    Chn 15 n chn 18 ca ULN2803 ni vi MOTOR BC.

    3. Thit k phn cng

    3.1 Phm nhn

    Hnh 17. Khi phm nhn

  • H iu khin thi gian thc SVTH: Nhm 1

    16

    Chc nng:

    A1 quay thun mt vng.

    A2 quay nghch mt vng.

    A3 quay nghch 900.

    A4 quay thun 1800.

    3.2 Led n

    Hnh 18. Khi hin th

    S dng 4 led n c tnh theo m nh phn hin th s vng quay ca motor bc. V d:

    0001: gi tr mc nh. 0010: hin th m nh phn gi tr l 2. 0011: hin th m nh phn gi tr l 3.

  • H iu khin thi gian thc SVTH: Nhm 1

    17

    3.3 Mch bo v

    Hnh 19. Khi mch bo v

    Chc nng: bo v kit Tiva C.

    3.4 Mch m dng

    Hnh 20. Khi m dng

    Chc nng: m dng cho motor bc.

  • H iu khin thi gian thc SVTH: Nhm 1

    18

    4. Phn mm CCS

    Hnh 21. Giao din CCS (Code Composer Studio)

    III. Code iu khin

    /*

    * ======== empty.c ========

    */

    /* XDCtools Header files */

    #include

    #include

    #include

    /* BIOS Header files */

    #include

    /* TI-RTOS Header files */

    #include

    // #include

    // #include

    // #include

    // #include

    // #include

  • H iu khin thi gian thc SVTH: Nhm 1

    19

    /* Board Header file */

    #include "Board.h"

    // TivaWare Header Files

    //------------------------------------------

    #include

    #include

    #include "inc/hw_types.h"

    #include "inc/hw_memmap.h"

    #include "driverlib/sysctl.h"

    #include "driverlib/gpio.h"

    #include "inc/hw_ints.h"

    #include "driverlib/interrupt.h"

    #include "driverlib/timer.h"

    #include "string.h"

    //----------------------------------------

    // Prototypes

    //----------------------------------------

    void hardware_init(void);

    void quay(void);

    void Timer_ISR(void);

    //---------------------------------------

    // Globals

    //---------------------------------------

    unsigned char code[]={0x08,0x0b,0x02,0x06,0x04,0x05,0x01,0x0a};

    int i, k;

    unsigned char key;

    uint8_t ReadData;

  • H iu khin thi gian thc SVTH: Nhm 1

    20

    uint8_t ReadData2;

    uint8_t ReadData3;

    uint8_t ReadData4;

    uint8_t ReadData5;

    //---------------------------------------------------------------------------

    // main()

    //---------------------------------------------------------------------------

    void main(void)

    {

    hardware_init(); // init hardware via Xware

    BIOS_start();

    }

    //---------------------------------------------------------------------------

    // hardware_init()

    //

    // inits GPIO pins for toggling the LED

    //---------------------------------------------------------------------------

    void hardware_init(void)

    {

    //Set CPU Clock to 40MHz. 400MHz PLL/2 = 200 DIV 5 = 40MHz

    SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_

    16MHZ|SYSCTL_OSC_MAIN);

    // setup PORT D 0,1,2,3 lam output motor

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD);

    GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE,

    GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);

    //pa

    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);

    //pa2

  • H iu khin thi gian thc SVTH: Nhm 1

    21

    GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_2); // Khai bao

    chan PF4 la Input

    GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_2,

    GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);

    //pa3

    GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_3); // Khai bao

    chan PF4 la Input

    GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_3,

    GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);

    //pa4

    GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_4); // Khai bao

    chan PF4 la Input

    GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_4,

    GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);

    //pa5

    GPIOPinTypeGPIOInput(GPIO_PORTA_BASE, GPIO_PIN_5); // Khai bao

    chan PF4 la Input

    GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_5,

    GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);

    //timer for 500ms

    uint32_t ui32Period;

    SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER2); // enable Timer 2

    periph clks

    TimerConfigure(TIMER2_BASE, TIMER_CFG_PERIODIC); // cfg Timer 2

    mode - periodic

    ui32Period = (SysCtlClockGet() /2); // period = CPU clk div 2 (500ms)

    TimerLoadSet(TIMER2_BASE, TIMER_A, ui32Period); // set Timer 2 period

    TimerIntEnable(TIMER2_BASE, TIMER_TIMA_TIMEOUT); // enables

    Timer 2 to interrupt CPU

    TimerEnable(TIMER2_BASE, TIMER_A); // enable Timer 2

    }

  • H iu khin thi gian thc SVTH: Nhm 1

    22

    void quay(){

    //Semaphore_pend(LEDSem, BIOS_WAIT_FOREVER); // wait for Sem from

    ISR

    ReadData2 = GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_2); // Doc gia

    tri chan PA

    ReadData3 = GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_3); // Doc gia

    tri chan PA

    ReadData4 = GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_4); // Doc gia

    tri chan PA

    ReadData5 = GPIOPinRead(GPIO_PORTA_BASE, GPIO_PIN_5); // Doc gia

    tri chan PA

    if ((ReadData2&0x04)==0) //quay thuan 1 vong

    {

    for(i=0;i0;i--){

    int st=i%8;

    GPIOPinWrite(GPIO_PORTD_BASE, 0x0f,code[st]&0x0f);

    SysCtlDelay(80000);

    }

    }

    else if ((ReadData4&0x10)==0)//quay thuan 1/2 vong

    {

    for(i=200;i>0;i--){

    int st=i%8;

    GPIOPinWrite(GPIO_PORTD_BASE, 0x0f,code[st]&0x0f);

  • H iu khin thi gian thc SVTH: Nhm 1

    23

    SysCtlDelay(80000);

    }

    }

    else if ((ReadData5&0x20)==0)//quay thuan 1/4 vong

    {

    for(i=100;i>0;i--){

    int st=i%8;

    GPIOPinWrite(GPIO_PORTD_BASE, 0x0f,code[st]&0x0f);

    SysCtlDelay(80000);

    }

    }

    }

    void Timer_ISR(void)

    {

    TimerIntClear(TIMER2_BASE, TIMER_TIMA_TIMEOUT); // must clear

    timer flag FROM timer

    Swi_post(mtstep);

    }

    Cc thnh phn:

    HWI l Timer to xung 500ms post SWI.

    SWI khi c gi th c cc ng vo. Xt iu kin cho motor quay.

  • H iu khin thi gian thc SVTH: Nhm 1

    24

    IV. Kt qu nh gi

    1. Kt qu t c

    Mch iu khin ng c bc hot ng tt, hon thnh yu cu ti t ra.

    2. u im v hn ch:

    u im:

    Phn cng c thit k theo dng module nn d kim tra li.

    Mch hot ng nhanh v chnh xc.

    Hn ch:

    Lp trnh trn phn mm CCS cn hn ch.

    Phn cng cha ti u.

    3. ngh

    Cn nhiu thi gian hn tm hiu v ngn ng CCS trn Kit Tiva C

    cng nh hot ng ca ng c bc v cc cch kt ni cn thit iu

    khin c ng c bc.

    CM N

    Nhm xin chn thnh cm n s hng dn nhit tnh ca Thy Nguyn

    Khc Nguyn hng dn tn tnh v gip nhm chng em trong qu trnh

    thc hin n. Nhm cng xin cm n cc bn trong lp ng gp kin

    v gii thch nhng ch cha hiu thc hin n ny.

    TI LIU THAM KHO

    http://www.ti.com/tool/ek-tm4c123gxl

    http://www.ti.com/tool/CCSTUDIO

    http://www.payitforward.edu.vn/wordpress/tutorials/arm-cortex-m4/

  • H iu khin thi gian thc SVTH: Nhm 1

    25

    BNG CNG VIC CA CC THNH VIN

    BUI Thnh vin trong nhm

    L Trng Giang Tng V Hi Nguyn Trng Minh

    1 C C C

    2 C C C

    3 C C C

    4 C C C

    5 C C C

    6 C C C

    7 C C C

    8 C C C

    9 C C C

    10 C C C

    11 C C C

    12 C C C

    Thit k mch v lm mch thc t: Nguyn Trng Minh + Tng V Hi

    Thuyt trnh: L Trng Giang

    Bi bo co: Tng V Hi + L Trng Giang

    Powerpoint: Nguyn Trng Minh

    Vit code CCS: C nhm