0
1
00:00:04,770 --> 00:00:12,510
我們正在使用的TiVC啟動板和其他cortex M微控制器具有12個計時器塊。而這12個計時器
1

2
00:00:12,540 --> 00:00:23,160
塊被劃分為六個16位乘32位定時器和六個32位乘64位定時器
2

3
00:00:23,160 --> 00:00:33,420
計時器。 32位乘64位定時器通常稱為寬定時器，因此我用
3

4
00:00:33,690 --> 00:00:40,260
w在這里和16位乘32位的計時器是正常計時器，因此，我在這裡添加了n。
4

5
00:00:40,310 --> 00:00:42,730
我將對此稍作解釋。
5

6
00:00:42,870 --> 00:00:47,110
因此，每個計時器塊都有計時器A和計時器B。
6

7
00:00:47,160 --> 00:00:56,550
因此，我們可以有計時器1A和計時器1B。如果單獨使用這些計時器，那麼我們只能得到16個
7

8
00:00:56,550 --> 00:00:58,020
一點點。
8

9
00:00:58,380 --> 00:01:05,670
因此，我們可以讓計時器1A執行一種計時機制，並讓計時器1B執行另一種計時機制
9

10
00:01:05,670 --> 00:01:14,100
計時機制。但是，我們可以只使用計時器1，然後獲得32位大小的計時器。
10

11
00:01:14,100 --> 00:01:17,340
這就是為什麼它是一個16 x 32位定時器
11

12
00:01:17,730 --> 00:01:25,260
有了寬定時器，我們可以單獨使用它們來擁有一個定時器
12

13
00:01:25,260 --> 00:01:30,280
定時器1A和定時器1B的大小均為32位。
13

14
00:01:30,330 --> 00:01:40,590
或者我們可以將其與計時器1組合在一起，並用作64位大小的計時器，通過組合此處，只需選擇
14

15
00:01:40,740 --> 00:01:41,580
一個選項。
15

16
00:01:41,610 --> 00:01:45,240
您知道這只是啟用寄存器中的特定位。
16

17
00:01:45,400 --> 00:01:52,830
但是，如果我們仍然想單獨使用它們，並且需要更大的計時器大小，
17

18
00:01:52,860 --> 00:02:00,480
有一個選項可以將普通定時器增加8位預分頻器，因此我們仍然可以使用定時器
18

19
00:02:00,480 --> 00:02:09,450
1A，16位加8位給我們一個24位定時器，使用寬定時器
19

20
00:02:09,450 --> 00:02:15,440
該選項最多可添加16位預分頻器，最終得到48位定時器大小。
20

21
00:02:15,600 --> 00:02:22,770
因此，如果我們確實需要這麼多的計時器，那麼我們可以擁有計時器1A和計時器1B，每個計時器48位
21

22
00:02:22,770 --> 00:02:26,290
我們不想犧牲將a和b放在一起。
22

23
00:02:26,460 --> 00:02:29,690
因此，我們擁有所有這些選擇。
23

24
00:02:29,820 --> 00:02:34,550
現在，讓我們看一下初始化期間將要做出的其他選擇。
24

25
00:02:34,560 --> 00:02:41,300
我們還必須做出的另一選擇是確定我們是否希望計時器成為單發計時器或
25

26
00:02:41,300 --> 00:02:43,350
定期計時器。
26

27
00:02:43,350 --> 00:02:50,800
另一個選擇是決定我們要減計數器還是增計數器。對於一桿計數器，
27

28
00:02:50,990 --> 00:02:58,220
超時後計時器停止計數。對於定期計時器，計時器將在超時後繼續計數
28

29
00:02:58,250 --> 00:03:02,630
我的意思是重置並重新開始計數。
29

30
00:03:02,670 --> 00:03:10,860
因此它是連續和遞減計數器，顧名思義，計數器從設定值計數到零。
30

31
00:03:10,860 --> 00:03:18,180
就像我們之前看到的操縱桿時間和向上計數器一樣，計數器從零計數到設定值。
31

32
00:03:18,180 --> 00:03:23,580
因此，讓我們看看如何初始化計時器。
32

33
00:03:23,730 --> 00:03:26,700
所以說我們有這段代碼。
33

34
00:03:26,710 --> 00:03:34,200
此偽代碼在此處無效計時器init。我們要做的第一件事是訪問計時器塊。
34

35
00:03:34,200 --> 00:03:39,520
請記住，現代微控制器中存在時鐘門控機制
35

36
00:03:39,540 --> 00:03:46,350
他們要做的是，關閉微控制器的不同方面，這意味著時鐘源不是
36

37
00:03:46,350 --> 00:03:53,310
提供給這些零件，而您只為需要使用的零件提供時鐘。
37

38
00:03:53,310 --> 00:03:58,110
這有助於現代微控制器非常省電。
38

39
00:03:58,470 --> 00:04:01,170
這就是時鐘門控機制。
39

40
00:04:01,170 --> 00:04:05,510
這就是為什麼我們必須訪問RCGCGPIO的原因。
40

41
00:04:05,760 --> 00:04:08,000
喚醒GPIO端口F
41

42
00:04:08,190 --> 00:04:15,360
因此，在這裡我們必須喚醒RCGC計時器塊，這是我們想要的特定計時器塊，因此我們
42

43
00:04:15,360 --> 00:04:21,090
如您所知，請啟用計時器塊的時鐘，然後下一步是禁用
43

44
00:04:21,090 --> 00:04:27,720
更改配置之前的計時器。然後我們必須選擇計時器模式
44

45
00:04:28,260 --> 00:04:36,390
一個16或32位定時器，然後我們必須選擇定時器模式，無論是想要一個拍攝時間還是周期性的
45

46
00:04:36,480 --> 00:04:43,950
還是我們想要一個遞增計數器或遞減計數器，然後我們說將其加載到加載寄存器的時間間隔
46

47
00:04:44,520 --> 00:04:51,900
然後清除超時標誌，然後啟用計時器，然後等待超時標誌設置。
