Time-couter AVR

download Time-couter AVR

of 16

Transcript of Time-couter AVR

  • 7/30/2019 Time-couter AVR

    1/16

    14 nh thi/m vi b iu bin bin xung 8 bit (PWM )14.1 Tnh nng B m so snh n Thit lp li thi gian sau php so snh ton hc (T ng np li) Glitch-free, ch Phase Correct PWM

    My pht tn s m s kin bn ngoi ng h Prescaler 10 bit (ng h b m gp 10 bit) Bo trn v ngt ngun (TOV0 v OCF0)14.2 Tng quanTimer / Counter0 l mt mc ch ch yu, l n v so snh n, gm 8 bit. Mt s khi n gin ca b Timer/Counter 8-bit c th hin hnh 14-1. Thc t v tr capins I/O Xut/Nhp, tham kho "Pin ra ATmega32A" trn trang 2. CPU c th truycp thng qua Thanh ghi xut/Nhp, cc bit I/O v chn I/O, c in m. Cu to cth ca thanh ghi I/O v cc bit a im c lit k trong Phn "M ta cc thanh ghi"trn trang 84-Atmega32A.

    Hnh 14-1. S ca b Timer/Counter 8 bit

    14.2.1 Thanh ghi:B Timer/Counter (TCNT0) v b so snh u ra (OCR0) l cc thanh ghi 8-bit. iukhin ngt (vit tt Int.Req) cc tn hiu c gi l thanh ghi Timer Interrupt FlagRegister (TIFR). Cc tc v ngt c chia nh nh Thanh ghi ngt mt l (TIMSK).Thanh ghi TIFR v TIMSK khng c hin bng nhng con s m c chia theo dnv l thi gian. B nh thi c th c tc ng t nhng xung ni b, thng qua cc bm gp, hoc do mt ngun xung ng b bn ngoi ly t chn T0. Khi iu khinchn cc ngun xung v iu chnh gi tr bin tng (hoc gim). B nh thi s

  • 7/30/2019 Time-couter AVR

    2/16

    khng c tc dng nu khng c tc ng t ngun xung. Ng ra ca b ngun xungc gi tt l xung ng h (clkT0).Gi tr ca b so snh u ra (OCR0) c so snh vi b nh thi ti tt c cc ln. Cckt qu ca vic so snh c th c s dng nh cc my to sng to ra mt xungiu bin bin hoc bin i tn s trn ng ra so snh ti chn (OC0). Tham kho

    "n v so snh u ra" trn trang 75-Atmega32A bit thm chi tit. Cc so snh phhp vi s kin cng s thit lp cc C So snh (OCF0) c th c dng to ra ngra so snh iu khin ngt.14.2.2 nh nghaCc thanh ghi v cc bit tham chiu trong ti liu ny c k hiu bi nhng qui cchung. Trong trng hp ny ta thay ch s n trong b Timer/Counter bng 0. Tuynhin, khi s dng cc thanh ghi hay cc bit c nh ngha trong mt chng trnh, thcn c s dng chnh xc v d nh, TCNT0 truy xut b nh thi m gi tr v xclp. nh ngha trong bng 14-1 cng c s dng rng ri trn khp cc ti liu.Bng 14-1. nh ngha

    14.3 Ngun xung ca b nh thiB nh thi c th c kch t mt ngun ni hay mt ngun xung ng h bn ngoi.Vic chn ngun xung ng h c kim sot bi bit chn ng h (CS02: 0) nm

    trong thanh ghi iu khin ca b nh thi (TCCR0). Chi tit v ngun xung ng h vb m gp, xem "Timer/Counter0 v Timer/Counter1 Prescalers" trn trang 88.-ATmega32A14.4 n v m CounterPhn chnh ca b dnh thi 8 bit l n v m hai chiu. Hnh 14-2 cho thy mt khis ca truy cp v cc mi trng xung quanh.Hnh 14-2. S khi ca n v m.

    Count Tng hoc gim TCNT0 i 1

  • 7/30/2019 Time-couter AVR

    3/16

    Directional Chn gia tng v gimClear & amp; nbsp; Xa thanh ghi TCNT0 (thit t tt c cc bit l 0)ClkT0 & amp; nbsp; Xung ca Timer/counterTOP &am p;nb sp; Tthanh ghi TCNT0 s cha gi tr ln nhtBOTTOM Thanh ghi TCNT0 s cha gi tr nh nht (0)

    Ty thuc vo ch hot ng c s dng, b m c xa, tng hay gim ni dungca n mi khi c mt xung Clock (ClkT0). ClkT0 c th ly t ngun xung ni hayngun xung ngoi, c xc lp thng qua bit chn (CS02:0). Khi khng c ng hngun c chn (CS02: 0 = 0) b nh thi b cm. Tuy nhin, gi tr thanh ghi TCNT0c th c truy cp bi cc b x l trung tm, cho d xung Clk c hay khng. CPU cxu hng thit t tt c cc b Counter0 mc 0 hay T0 hot ng.Cc dy m c xc nh bi hai bit WGM01 v WGM00 nm trong thanh ghi iukhin Timer/Counter (TCCR0). Ta c th ngt s kt ni gia Counter v sng ra tora ng ra OC0. bit thm thng tin chi tit v nng cao trnh t m v dng sng,xem phn "Ch hot ng" trn trang 78-Atmega32A. C bo trn ca b m/nh

    thi TOV0 ghi nhn ch hot ng ca b Timer/Counter bng mt bit WGM01:0. Cbo trn TOV0 c s dng to ch ngt cho b vi x l.14.5 n v so snh ng raGm c 3 loi: FOC, TCNT0, Using the Output Compare UnitNg ra so snh lin tc 8 bit ca TCNT0 (Timer/Counter) vi OCR0 (Output CompareRegister). Khi OCR0=TCNT0 th b so snh tn hiu tng thch. Khi b tn hiu tngthch th c OCF0=1 chu k xung k tip. Nu OCIE0=1 v c ngt ch trong SREGc thit t th c OCF0 to ra mt ng ra so snh ngt. C OCF0 t ng xa khi ch ngt c thi hnh. Ngoi ra c OCF0 c th c xa bi mt chng trnh logicvit cho cc bit I/O (input/Output). Cc sng to ra dc s dng nh mt ng ra iukhin ch hot ng thng qua hai bit WGM01:0 (Waveform Generator Mode) vCOM01:0 (Compare Output Mode). nh trn v di ca tn hiu to t b to xungc s dng trong cc trng hp c cha cc gi tr c bit trong cc ch hotng khc nhau. Tham kho phn Ch hot ng-Modes of Operation, trang 78 caATmega32A.Hnh 14.3 l s khi ca b so snh ng ra.

    Thanh ghi OCR0 (Output Compare Register) l mt b m hai chiu khi s dng btk ch iu bin rng xung PWM (Pulse Width Modulation) no. ch bnhthung v CTC (Clear Timer Compare) b m hai chiu khng c thit lp. B mcp nht ng b cho thanh ghi OCR0 cng trn hoc di ca chui m. Can thipvic ng b nh chiu di l, khng ng b bin ca xung iu bin c th c tcng bi ng ra Glitch-free. Thanh ghi OCR0 c v phc tp nhng iu ny khng phi

    (Output Compare Unit)

  • 7/30/2019 Time-couter AVR

    4/16

    nh vy. Khi b m hai chiu c kch hot th b vi x l (CPU) s truy cp vo thanhghi OCR0 m, v ngc li s truy cp trc tip vo thanh ghi OCR0.Ng ra so snh gm ba loi:14.5.1 Ng ra so snh cng bc (FOC-Force Output Compare)Khi khng hot ng ch PWM, ng ra tng thch ca b so snh c th c qui

    nh bi bit FOC0 (Force Output Compare). ch FOC th c OCF0 khng b nhhng, nhng chn OC0 s c cp nht nu so snh ph hp vi s kin ( bitCOM0[1:0] c gn gi tr hng bt k chn OC0 b xa hay bin i).14.5.2 So snh chn tng ng TCNT0CPU lp trnh tt c cc hot ng cc thanh ghi TCNT0 c th t ng so snh ccchu k k tip v ngay c khi B nh thi Timer khng hot ng. Tnh nng ny chophp OCR s c khi ng cng mt gi tr nhu TCNT0 m khng kch hot thi gianngt, khi Timer/Counter hot ng.14.5.3 S dng cc n v ng ra so snhKhi nh gi tr cho TCNT0 bt k ch hot ng no th s chn tt c cc kt quso snh ph hp trong mt chu k, c nhng ri ro do thay i TCNT0 khi s dng cc

    OC, khng ph thuc vo Timer/Counter c hot ng hay khng. Nu gi tr gn choTCNT0=OCR0 th b so snh s b qua, gy ra sai dng sng. Tng t khi ta khng tgi tr TCNT0 BOTTOM khi thc hin m xung.Cc thit lp ca OC0 c thc hin trc khi t gi tr cho cc thanh ghi a ch dliu DDR (Data Direction Register) cc chn ca Port xut nhp. Cch d nht tgi tr ca OC0 l s dng bit FOC0 ch d bnh thng. Thanh ghi OC0 s gi nguyngi tr ngay c khi thay i dng sng gia cc ch . Ta thy cc bit COM0[1:0] khngphi l b m hai chiu cng vi so snh gi tr. Thay i bit COM0[1:0] s c hiu lctc th.14.6 n v ng ra so snh ton hcBit COM0[1:0] tong ch COM0 c hai chc nng chnh: My to xung s dng ccbit COM0[1:0] lm gi tr cho b so snh tng k tip. ng thi cc bit COM0[1:0]iu khin chn ngun OC0.Hnh 14-4 Th hin mt s n gin t ng ca cc bit iu khin COM0 [1:0].Thanh ghi I/O , bit I/O, v cc ch s chn c in m. Ch c phn chung ca thanh ghiiu khin I/O (DDR hay PORT) l b nh hng bi cc bit COM0[1:0] c hin th.Khi gi n OC0 ch th n s tham chiu n thanh ghi OC0, ch khng phi l chn

  • 7/30/2019 Time-couter AVR

    5/16

    OC0. Nu ta RESET h thng th thanh ghi OC0=0.

    Thanh ghi OCR0 (Output Compare Register) l mt b m hai chiu khi s dng btk ch iu bin rng xung PWM (Pulse Width Modulation) no. ch bnhthung v CTC (Clear Timer Compare) b m hai chiu khng c thit lp. B mcp nht ng b cho thanh ghi OCR0 cng trn hoc di ca chui m. Can thipvic ng b nh chiu di l, khng ng b bin ca xung iu bin c th c tcng bi ng ra Glitch-free. Thanh ghi OCR0 c v phc tp nhng iu ny khng phinh vy. Khi b m hai chiu c kch hot th b vi x l (CPU) s truy cp vo thanhghi OCR0 m, v ngc li s truy cp trc tip vo thanh ghi OCR0.Ng ra so snh gm ba loi:

    14.5.1 Ng ra so snh cng bc (FOC-Force Output Compare)Khi khng hot ng ch PWM, ng ra tng thch ca b so snh c th c quinh bi bit FOC0 (Force Output Compare). ch FOC th c OCF0 khng b nhhng, nhng chn OC0 s c cp nht nu so snh ph hp vi s kin ( bitCOM0[1:0] c gn gi tr hng bt k chn OC0 b xa hay bin i).14.5.2 So snh chn tng ng TCNT0CPU lp trnh tt c cc hot ng cc thanh ghi TCNT0 c th t ng so snh ccchu k k tip v ngay c khi B nh thi Timer khng hot ng. Tnh nng ny chophp OCR s c khi ng cng mt gi tr nhu TCNT0 m khng kch hot thi gianngt, khi Timer/Counter hot ng.14.5.3 S dng cc n v ng ra so snh

    Khi nh gi tr cho TCNT0 bt k ch hot ng no th s chn tt c cc kt quso snh ph hp trong mt chu k, c nhng ri ro do thay i TCNT0 khi s dng ccOC, khng ph thuc vo Timer/Counter c hot ng hay khng. Nu gi tr gn choTCNT0=OCR0 th b so snh s b qua, gy ra sai dng sng. Tng t khi ta khng tgi tr TCNT0 BOTTOM khi thc hin m xung.Cc thit lp ca OC0 c thc hin trc khi t gi tr cho cc thanh ghi a ch dliu DDR (Data Direction Register) cc chn ca Port xut nhp. Cch d nht tgi tr ca OC0 l s dng bit FOC0 ch d bnh thng. Thanh ghi OC0 s gi nguyn

  • 7/30/2019 Time-couter AVR

    6/16

    gi tr ngay c khi thay i dng sng gia cc ch . Ta thy cc bit COM0[1:0] khngphi l b m hai chiu cng vi so snh gi tr. Thay i bit COM0[1:0] s c hiu lctc th.14.6 n v ng ra so snh ton hcBit COM0[1:0] tong ch COM0 c hai chc nng chnh: My to xung s dng cc

    bit COM0[1:0] lm gi tr cho b so snh tng k tip. ng thi cc bit COM0[1:0]iu khin chn ngun OC0.Hnh 14-4 Th hin mt s n gin t ng ca cc bit iu khin COM0 [1:0].Thanh ghi I/O , bit I/O, v cc ch s chn c in m. Ch c phn chung ca thanh ghiiu khin I/O (DDR hay PORT) l b nh hng bi cc bit COM0[1:0] c hin th.Khi gi n OC0 ch th n s tham chiu n thanh ghi OC0, ch khng phi l chnOC0. Nu ta RESET h thng th thanh ghi OC0=0.

    Mt lnh ngt c th c to ra khi gi tr ca b m t trn gi tr TOP bng cch sdng c OCF0. Nu gin on c kch hot, th tc x l ngt c s dng cpnht gi tr TOP. Tuy nhin, vic chuyn t gi tr TOP xung gi tr BOTTOM khi bm hot ng vi khng hoc gi tr thp ca b m gp trc khi ch CTC khngphi l b m gp hai chiu. Nu cc gi tr mi ghi vo OCR0 thp hn gi tr hin tica TCNT0, b Counter s b l nhng so snh ph hp vi. Cc truy cp sau s mn gi tr ti a (0xFF) v quay li bt u t 0x00 trc khi so snh ph hp c th xyra. to ra mt dng sng u ra trong ch CTC, cc ng ra OC0 c th c thit lpdch chuyn nhng mc logic trn mi so snh ph hp vi cc bit dch chuyn(COM01: 0 = 1). Cc gi tr OC0 s khng c hin th trn chn Port, tr khi d liucho cc hng chn c thit lp. Cc dng sng c to ra s c mt tn s ti a l

    fOC0 = fclk_I/O/2 khi thanh ghi OCR =0 (0x00). Cc dng sng tn s c xc nhbi cc phng trnh sau y:

    g ch ny nu gi tr mi ghio thanh ghi ORC m nh hn gi

    c thi ca b m th1 so snh s b l, khib m s m n gi tr ln nht

    u ri xung gi tr 0 trc khisnh tip theo xut hin.

  • 7/30/2019 Time-couter AVR

    7/16

    Bin N c thay th bi cc ch s (1,8,64,256 hoc 1024). ch hot ng bnh thng c TOV0 c thit lp khi b m m t gi tr lnnht tr v 0.14.7.3 Ch iu bin bin xung nhanh (PWM) ch fast PWM hay WGM01:0=3 cung cp dng sng PWM tn s cao. Fast PWM

    khc vi PWM ty chn ch n hot ng ch 1 sn dc. B Counter m t din Max ri quay li m t di. ch non-inverting th thanh ghi OC0 b xa nu c s sosanh ph hp gia thanh ghi TCNT0 v OCR0, v c t BOTTOM. Khi ch inverting th ng ra c thit lp khi so snh ph hp v t mc BOTTOM. Nhimv ca ch h dn nghing, tn s ca ch fast PWM c th c nhn i bin v gc pha ca ch PWM chun, hay hot ng h dn kp. Tn s cao ny lmcho ch Fast PWM c s dng trong vic to cc ngun chun, chnh lu, ccchng trnh ng dng DAC. Tn s cao cho php ta thu nh kch thc ca cc linhkin (cun cm, t in) gp phn lm gim chi ph h thng. Trong ch fast PWMb Counter m cho n khi gi tr ca n tng ng vi gi tr MAX. B m s b xa chu k xung k tip. Biu thi gian cho ch fast PWM c th hin trn hnh

    14-6. Gi tr ca TCNT0 trn s thi gian th hin biu minh ha cho ch hdn nghing. Biu gm o v khng o sng ra PWM. Cc ng nh ngang nhdu nghing ca TCNT0 khi so snh gia thanh ghi OCR0 v TCNT0.

    C Timer/Counter overflow (TOV0) c thit lp sau mi ln b m t gi tr MAX.Nu ch ngt c kch hot, vic iu khin gin on thng c s dng trongvic cp nht gi tri so snh. Trong ch fast PWM , cc n v so snh ko theo vic

    to ra cc xung trn cc chn OC0. Khi bit COM01:0 = 2 s to ra sng ra khng oPWM, khi bit COM01:0 = 3 to ra cc sng ng ra PWM o Xem bng 14-4 trn trang85-AtAmega32A-815. Sng iu bin bin dc tao ra thng qua vic thit t (hocxa) thanh ghi OC0 khi c s so snh ph hp gia OCR0 v TCNT0, v xa (hay thitt) cc thanh ghi OC0 chu k xung tip theo khi b Counter m t gi tr BOTTOMn gi MAX. Tn s ng ra PWM c tnh bi cng thc:

    C = 0 khi TCNT = OCR, OC = 1 khi TCNT = BOTTOM

    OC = 1 khi TCNT = OCR, OC =0 khi TCNT = BOTTO

    0

  • 7/30/2019 Time-couter AVR

    8/16

    Bin N c th c gn vo cc gi tr(1,8,64 hoc 1024). Khi cc xung ng ra c tora ch fast PWM th cc gi tr ca thanh ghi OCR0 c gn cc gi tr khc nhauty vo tng trng hp. Nu OCR0=BOTTOM, ng ra s t b nhiu mi nhp xung.Nu OCR0=MAX th ng ra mc cao hoc mc thp (dc qui nh bi bit COM01:0).14.7.4 Ch PWM hiu chnh pha chunCh PWM hiu chnh pha chun (ng viWGM0[1:0] =1), cung cp mt phn giicao cho dng sng iu bin bin pha chun. Ch Phase Correct PWM hot ngc bn hn dn kp.B Counter m t BOTTOM n MAX v tip tc t MAXn BOTTOM. Trong ch khng o ng ra OC0, ng ra OC0 c xa khi c s sosnh tng ng gia TCNT0 v OCR0 trong khi m ln v chng cng c thit lptng t khi m xung. Trong ch o OC0 th cng vic c o ngc li. Ch h dn nghing kp c gi tr gim dn so vi gi tr cc i. Tuy nhin, do tnh ixng ca ch h dn kp PWM c u tin cho vic lp trnh iu khin motor.Ch hiu chnh pha chun PWM c dung lng 8 bit. Trong ch ny th BCounter tng dn cho n khi c s ph hp vi gi tr MAX. Khi b Counter m tiMAX thi no thay i hng m. Gi tr cu TCNT0 s bng MAX chu k k tip. Biu thi gian cho giai on ca ch hiu chnh pha chun PWM nh trn Hnh 14-7.Gi tr ca TCNT0 trn s thi gian th hin biu minh ha cho ch h dnnghing. Biu gm o v khng o sng ra PWM. Cc ng nh ngang nh du nghing ca TCNT0 khi so snh gia thanh ghi OCR0 v TCNT0.

  • 7/30/2019 Time-couter AVR

    9/16

    C Timer/Counter overflow (TOV0) c thit lp sau mi ln b m quay tr vBOTTOM. C ngt c th c s dng to ra cc ch ngt mi khi b Counterquay lai gi tr BOTTOM. Ch ny to ra cc xung PWM cc chn OC0.Khi bit COM01:0 =2 s to ra ch khng o PWM, Khi bit COM01:0 =3 s to rach o PWM, (xem Bng 14-5 trn trang 86-AtAmega32A-8155).

    Gi tr OC0 s xut ra trn chn Port, nu d liu c thit lp xut ra cc chn. Sngiu bin bin c tao ra thng qua vic thit t (hoc xa) thanh ghi OC0 khi cs so snh ph hp gia OCR0 v TCNT0 khi m ln, hay khi m xung. Tn s ngra ca ch ny c tnh bi cng thc:

    Gi tr ca thanh ghi OCR0 c gn nhng gi tr cho nhng trng hp c th khi tomt xung iu bin ti ng ra ch iu bin bin pha chun. Nu

    OCR0=BOTTOM th ng ra lin tc mc thp v nu OCR0=MAX thi ng ra lun mc cao trong trng hp khi ch khng o PWM. Trong ch o ng ra PWMth ta o li cc mc logic ch khng o PWM.Trong hai chu k u (Hnh 14-7) OCn c mt chuyn tip t cao n thp mc d khngc So snh Kt hp. Cc im ca chuyn i ny l m bo tinh i xng TOP-BOTTOM. C hai trng hp, cho rng mt chuyn i m khng cn So snh Kt hp: OCR0A thay i c gi tr ca n t Max, nh hnh 14-7. Khi gi tr ca OCR0A lMax chn OCn tng t nh l kt qu ca mt php m xung so snh kt hp. m bo s i xng di BOTTOM l gi tr OCn = MAX phi tng ng vi cc ktqu ca mt php m ln. B Timer bt u m t gi tr cao hn gi tri ca OCR0A v l nguyn nhn gy ra

    cc li so snh ton hc v do OCn cng thay i bng cch thc ny.14.8 S nh thi ca b Timer/CounterB Timer/Counter l mt b thit k ng b v thi gian clock (clkT0) c th hin dng tn hiu s. Cc ch s cho ta bit c thng tin khi no c ngt c thit lp.Hnh 14-8 l dng c bn khi hot ng ca b Timer/Counter. Nhng thng s ny cly khi b m gn gi tr MAX trong tt c cc ch hay c th l ch PhaseCorrect PWM

  • 7/30/2019 Time-couter AVR

    10/16

    Hnh 14-9 Hin th gi tr d liu nh thi tng t, nhng vi cc Prescaler bt.

    Hnh 14-10 Cho thy thit lp ca c OCF0 trong tt c cc ch ngoi tr ch CTC

    Hnh 14-11 cho thy cc thit lp ca c OCF0 v xa bit TCNT0 trong ch CTC.

  • 7/30/2019 Time-couter AVR

    11/16

    14.9 M t thanh ghi14.9.1 TCCR0 (Timer/Counter Control Register) Thanh ghi iu khin bTimer/CounterThanh ghii iu khin ny gm 8 bit: FOC0, WGM00, COM01, COM00, WGM01,CS02, CS01CS00 nh hnh v

    Bit 7 - FOC0: (Force Output Compare)Bit FOC0 ch hot ng khi bit WGM00=0, tc ch hot ng ch khng phi l ch

    PWM. Tuy nhin, m bo tnh tng thch vi cc thit b trong tng lai, bitFOC0=0 khi bit TCCR0=1 v khi hot ng trong ch PWM. Khi c s so snh phhp vi n v to xung (Waveform Generation unit) th bit FOC0=1. Cc ng ra OC0thay i ph thuc vo cc bit iu khin COM01 v COM00. Lu rng bit FOC0 cthc hin nh l mt bit chn. V vy, gi tr hin ti trong cc bit COM0[1:0] quytnh hiu qu ca vic so snh cng bc. Bit chn FOC0 s khng gy ra bt k mthnh ng ngt no, cng khng xa Timer trong ch CTC bng cch s dng thanhghi OCR0 nh TOP.Bit FOC0 lun lun c c gi tr l 0. Bit 6, 3 - WGM01, WGM00 (Wave Generation Mode) Ch to xungBit iu khin chui m vi gi tr ngun ti a l TOP, v loi b to xung c s

    dng Mt s ch hot ng ca b Timer/Counter: Ch bnh thng, ch CTC(Clear Timer on Compare Match), ch PWM-Phase Correct PWM, Fast PWM.Xem Bng 14-2 v "Ch hot ng" trn trang 78-AtAmega32A.

  • 7/30/2019 Time-couter AVR

    12/16

    Lu : 1.Tn ca cc bit CTC0 v PWM0 hin ti khng cn chnh xc. S dng nhngha WGM0[1:0]. Tuy nhin, cc chc nng v v tr ca cc bit l tng thch vi ccphin bn trc ca b Timer. Bit 4,5 - COM00, COM01: (Compare Outout Mode) Ch so snh kt hp:Chc nng: iu khin cc ng ra so snh pin OC0. Nu mt hoc c hai bit COM00v COM01 bng 1 th ng ra OC0 thc hin chc nng nhp d liu t cc pin I/O kt nivi n. Tuy nhin cn ch l bit DDR tng ng vi cc pin OC0 phi bng 1 khi kchhot ng ra iu khin. Khi OC0 c kt ni vi pin, chc nng ca COM01, COM00ph thuc vo bit iu khin WGM01v WGM00. Bng 14-3 Th hin chc nng ca bitCOM01 v COM00 khi bit WGM01 v WGM00 c t ch CTC hay ch bnhthng.

    Bng 14-4 Th hin chc nng ca bit COM01v COM00 khi cc bit WGM01 vWGM00 c t ch Fast PWM.

    Lu : 1. Mt trng hp c bit xy ra khi OCR0 bng TOP v COM01=1. Trongtrng hp ny, b qua vic so snh, nhng vic thit lp hoc xa c th hin khi gi tr BOTTOM. Xem "Ch Fast PWM" trn trang 79-AtAmega32A bit thm chitit.Bng 14-5 Th hin chc nng ca hai bit COM00 v COM01 khi hai bit WGM01 vWGM00 c t ch Phase Correct PWM.

  • 7/30/2019 Time-couter AVR

    13/16

    Lu : 1. Mt trng hp c bit xy ra khi OCR0 bng TOP v COM01=1. Trongtrng hp ny, b qua vic so snh, nhng vic thit lp hoc xa c th hin khi gi tr TOP. Xem "Ch Phase Correct PWM" trn trang 80-AtAmega32A bit thmchi tit. Bit 2:0 - CS02, CS01,CS00 (Clock Select):Chc nng: l bit chn ngun xung s dng cho b Timer/Counter

    Nu ch pin ang c s dng cho Timer/Counter0 l ngun ngoi th xung truynthng qua chn T0 s l xung kch m s kin. Nu pin c thit lp ch xutd liu.14.9.2 TCNT0 (Timer/Counter Register): Thanh ghi nh th

    Thanh ghi Timer/Counter c th c truy xut trc tip c hai ch hot ng xutv nhp. TCNT0 gm 8 bit m. Vic ghi v xa thanh ghi c thc hin chu k k

    tip sau khi c nhng so snh ph hp. Thay i gi tr thanh TCNT0 khi ang hot ngs ko theo nhng li khi so snh gia hai thanh ghi TCNT0 v OCR0.14.9.3 OCR0 (Output Compare Register): Thanh ghi so snh kt hp

  • 7/30/2019 Time-couter AVR

    14/16

    Thanh ghi OCR0 cha mt gi tr 8 bit, gi tr ny c so snh lin tc vi gi tr cathanh ghi Counter TCNT0. Php so snh ny c th c s dng to ra hnh ngngt ng ra hay to xung ng ra ti chn OC0.14.9.4 TIMSK (Timer/Counter Interrupt Mask Register): Thanh ghi mt l ngt ca bTimer/Counter: gm 8 bit OCIE2, TOIE2, TICIE1, OCIE1A, OCIE1B, TOIE1, OCIE0,

    TOIE0

    Bit 1 - OCIE0 (Timer/Counter Output Compare Match Interrupt Enable):Chc nng: So snh ng ra ca Timer/Counter khi tng ng th to hnh ng ngt.Khi bit OCIE0=1, v I-bit trong thanh ghi trng thi (Status Register) bng 1, th bTimer/Counter so snh kt hp ngt c kch hot. Vic thc hin ngt tng ng cthc thi nu c s so snh tng thch gia cc b Timer/Counter. Chng hn khi bitOCF0 =1 th c ngt ca thanh ghi (TIFR-Timer/Counter Interrupt Flag Register cthit lp Bit 0 - TOIE0: Timer/Counter0 overflow Interrupt EnableChc nng: Thc hin ngt khi b Timer/Counter b trn. Khi bit TOIE0=1 v I-bit, trongStatus Register bng 1 th thc hin vic ngt. Tng ng hnh ng ngt s c thchin nu c c trn ca Timer/Counter, v d khi bit TOV0=1 th TIFR=1.14.9.5 TIFR Timer/Counter Interrupt Flag RegisterGm 8 bit: OCF2, TOV2, ICF1, OCF1A, OCF1B, TOV1, OCF0, TOV0

    Bit 1 - OCF0 (Output Compare Flag 0)Chc nng: C so snh ng ra.Bit OCF0=1, khi c cc so snh ph hp gia cc Timer/Counter0 v d liu trongOCR0. OCF0 c xa bi phn cng sau khi thc hin cc hnh ng ngt. Ngoi ra,OCF0 c xa khi c c t mc logic cao. Khi I-bit trong SREG, OCIE0 v OCF0bng 1, th vic so snh v ngt khi tng thch c thc hin.. Bit 0 - TOV0 (Timer/Counter0 overflow Flag): c trn ca b Timer/CounterChc nng: bo trn khi th hin m ca Timer/Counter.Bit TOV0=1 khi xut hin vic trn ca b Timer/Counter. TOV0 c xa bi phncng sau khi thc hin cc hnh ng ngt. Ngoi ra, TOV0 c xa khi c c t

    mc logic cao. Khi I-bit trong SREG, TOIE0 v TOV0 bng 1, th vic so snh v ngtkhi tng thch c thc hin. Trong ch Phase Correct PWM, TOV0=1 khi bTimer/Counter quay li m t $0015. B m gp Timer/Counter0 v Timer/Counter115.1 Tng quanTimer/Counter1 v Timer/Counter0 chia s cng mt m-un ca b m gp trc,nhng b Timer/Counter c th ci t m gp khc nhau. Cc m t di y p dngcho c hai b m Timer/Counter1 v Timer/Counter0.

  • 7/30/2019 Time-couter AVR

    15/16

    15.2 ng h ngun niB Timer/Counter c th c kch trc tip t ng h h thng.bng cch tCSn2:0=1. iu ny to ra ch hot ng nhanh nht vi tn s ln nht ca bTimer/Counter bng tn s ca ng h h thng (fCLK_I/O). Ngoi ra, mt trong bnu ra ca b m gp trc c th c s dng nh l mt xung ng h ngun. B

    m gp trc c tn s hoc l fCLK_I/O/8, fCLK_I/O/64, fCLK_I/O/256, hocfCLK_I/O/1024.15.3 Thit lp li PrescalerCc prescaler chy c lp, ngha l, hot ng c lp vi vic chn xung logic caTimer/Counter, v n c chia s bi Timer/Counter1 v Timer/Counter0. K t khiprescaler l khng b nh hng bi ng h la chn Timer/Counter, b prescaler chs c tc ng cho mt tnh hung m dng h prescaled c s dng. Mt v d caprescaling l xy ra khi Timer c kch hot bi xung t Prescaler (6>CSn2:0>1). Schu k ca ng h h thng khi Timer c kch m ln u t 1 n N+1 chu k, viN mang cc gi tr (8, 64, 256, 1024). Ta c th thit lp li Precaler s dng cho bTimer/Counter ng b t chng trnh ci t. Tuy nhin cng phi ch nu b

    Timer/Counter ang s dng cng b m gp trc Prescaler. Khi thit lp li Prescalerth n s nh hng n nhng b Timer/Counter kt ni vi n.15.4 ng h ngun bn ngoiMt b ng h ngun ngoi khi t vo cc chn T1/T0 c th c s dng nh mtxung clock ca Timer/Counter (clkT1/clkT0). Cc chn T1/T0 l mt trong nhng chu kixung h thng bng cch ng b ha cc chn logic. Cc ng b (sampled) tn hiu sau chuyn qua The Edge Detector. Hnh 15-1 chc nng tng ng cho thy mt khis ca T1/T0 ng b ha v cng logic Edge Detector . Cc thanh ghi c tc dngbi cnh len ca xung clock h thng (clkI/O). B cht l c lp vi chu ki xung hthng. B Edge Detector to ra mt xung clkT1/clkT0 cho mi khng nh (CSn2: 0 = 7)hoc ph nh (CSn2: 0 = 6) n pht hin.

    Cc ng b ha v Edge Detector lm tr ng h h thng t 2.5 n 3.5 chu k, k tlc gi tr ca b m ti chn T1/T0 c p dng.

    Kch hot v v hiu ho ca ng h u vo phi c thc hin khi T1/T0 c nnh t nht mt chu k ng h, nu khng n c th gy ra sai s trong vic nh thi.Mi na chu k ca xung bn ngoi phi c p dng ln hn mt chu k xung cang h h thng m bo ng mu.Tn s xung ngoi cn nh hn tn s xung h thng fExtClk < fclk_I/O/2 s to ra mtchu trnh lm vic 50/50%. Khi b Edge Detector c s dng ly mu, th tn sln nht ca xung ngun ngoi c th d t phng php ly mu Nyquist. Tuy nhin,nhim v thay i tn s ca xung ng h h thng v rng chu k c to bi

  • 7/30/2019 Time-couter AVR

    16/16

    dung sai ca b dao ng ngoi (Thch anh, b cng hng v t), n i hi tn s lnnht ca xung clock ngoi nh hn fclk_I/O/2.5.Mt ng h ngun bn ngoi khng th m gp trc.

    Lu : 1. Cc ng b ha logic trn u vo pins (T1/T0) c th hin hnh 15-1.15.5 M t thanh ghi15.5.1 SFIOR Special Function IO Register

    Bit 0 - PSR10: Prescaler Thit lp li Timer/Counter1 v Timer/Counter0Khi bit PSR10=1, cc Timer/Counter1 v Timer/Counter0 prescaler s c thit lp.Bit PSR10=0 sau khi cc hot ng c thc hin (xa bng phn cng). Khi bit bng 0th s khng c tc dng. Lu rng Timer/Counter1 v Timer/Counter0 chia s cngmt prescaler v mt thit lp ca prescaler ny s nh hng n c hai Timer. Khi khing bit PSR10 lun bng 0.