Mục tiêu: Download và cài đặt phần mềm Code Composer Studio, cũng như download nhiều tài liệu và phần mềm hỗ trợ để sử dụng trong toàn bộ các bài lab.. Double click vào shortcut Code
Trang 1Lab1: Hardware and Software Set Up
I Mục tiêu:
Download và cài đặt phần mềm Code Composer Studio, cũng như download nhiều tài liệu và phần mềm hỗ trợ để sử dụng trong toàn bộ các bài lab
Tìm hiểu các thành phần của kit và kiểm tra hoạt động của chương trình demo
đã được nạp sẵn trên kit
Các công cụ phát triển này sẽ được sử dụng trong xuyên suốt các bài lab về sau
II Các bước tiến hành:
Thực hiện các bài lab trên kit EK-LM4F120XL.
Trang 2 Một multi – meter
Download và cài đặt Code Composer Studio
2 Download phần mềm Code Composer Studio (CCS) 5.x web installer từ địa chỉ
http://processors.wiki.ti.com/index.php/Download_CCS (không download bất kì bản dùng thử nào) Yêu cầu kết nối mạng cho đến khi quá trình hoàn tất Nếu không có kết nối mạng thì có thể sử dụng offline version để cài đặt
3 Nếu sử dụng file offline, chạy file ccs_setup_5.xxxxx.exe trong folder sau khi giải
nén
4 Đồng ý Software License Agreement và click Next
5 Ngoại trừ việc muốn cài đặt CCS ở một vị trí khác, thì tốt nhất nên chọn folder mặc định theo chương trình cài đặt và Click Next
6 Chọn “Custom” cho phần Setup type và Click Next
Trang 37 Trong hộp thoại tiếp theo, chọn processors mà CCS sẽ hỗ trợ Chọn “Stellaris Cortex M MCUs” để thực hiện các bài lab Ngoài ra, nếu quan tâm tới MSP430 thì có thể chọn “MSP430 Low Power MCUs” Có thể chọn thêm các kiến trúc khác, tuy nhiên sẽ mất thời gian cài đặt cũng như kích thước cài đặt sẽ lớn Click Next
8 Trong hộp thoại Component, giữ mặc định các lựa chọn và Click Next
Trang 49 Trong hộp thoại Emulator, bỏ chọn Blackhawk and Spectrum Digital emulators, trừ khi có ý định sử dụng chúng.
10 Khi tới đến hộp thoại cài đặt cuối cùng, Click Next Quá trình cài đặt sẽ bắt đầu
Khi hoàn tất quá trình cài đặt, không chạy CCS
Trang 5Cài đặt StellarisWare
11 Download và cài đặt version cuối cùng của StellarisWare từ địa chỉ:
http://www.ti.com/tool/sw-lm3s Nếu có thể, nên cài đặt StellarisWare vào folder mặc định C:\StellarisWare.
Cài đặt LM Flash Programmer
12 Download, giải nén, và cài đặt mới nhất LM Flash Programmer (LMFLASHPROGRAMMER) từ http://www.ti.com/tool/lmflashprogrammer
Download ICDI Drivers
13 Download phiên bản mới nhất của in-circuit debug interface drivers từ địa chỉ
http://www.ti.com/tool/stellaris_icdi_drivers Giải nén file di chuyển folder
stellaris_icdi_drivers vào trong địa chỉ C:\StellarisWare
Download và cài đặt Workshop Lab Files
14 Download the lab installation file từ địa chỉ Wiki site bên dưới Các file lab sẽ
được cài đặt trong C:\StellarisWare\boards\MyLaunchPadBoard Do đó, phải chắc chắn rằng StellarisWare phải được cài đặt trước đó
www.ti.com/StellarisLaunchPadWorkshop
Download Workshop Workbook Lab Files
15 Có thể download file Tiếng Anh hướng dẫn các bài lab này với nhiều bài lab hơn theo địa chỉ sau:
www.ti.com/StellarisLaunchPadWorkshop
Terminal Program
16 Nếu sử dụng Window XP, có thể sử dụng HyperTerminal Window 7 không có chương trình terminal, nên phải sử dụng một phần mềm khác Các câu lệnh trong các bài labs sử dụng HyperTerminal và PuTTY Có thể download PuTTY từ địa chỉ sau:
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
Window-side USB Examples
17 Download và cài đặt StellarisWare Windows-side USB examples từ địa chỉ:
www.ti.com/sw-usb-win
Download và cài đặt GIMP
18 Chúng ta sẽ cần một công cụ thao tác đồ họa có khả năng xử lí các ảnh định dạng PNM GIMP có thể làm điều đó Download và cài đặt GIMP từ địa chỉ:
www.gimp.org
Trang 6LaunchPad Board Schematic
19 Để tham khảo, schematic sẽ có ở phần cuối của tài liệu này
Các tài liệu và trang web tham khảo hữu dụng
20 Có rất nhiều tài liệu hữu dụng, tuy nhiên ít nhất bạn nên có các tài liệu sau
Tìm trong C:\StellarisWare\docs sẽ thấy:
Peripheral Driver User’s Guide (SW-DRL-UGxxxx.pdf)
USB Library User’s Guide (SW-USBL-UGxxxx.pdf)
Graphics Library User’s Guide (SW-GRL-UGxxxx.pdf)
LaunchPad Board User’s Guide (SW-EK-LM4F120XL-UG-xxxx.pdf )
21 Vào địa chỉ: http://www.ti.com/product/lm4f120h5qr và download LM4F120H5QR Data Sheet Stellaris Data Sheet thực sự là một hướng dẫn sử dụng đầy đủ cho các device
22 Download the ARM Optimizing C/C++ Compilers User Guide từ địa chỉ
http://www.ti.com/lit/pdf/spnu151 (SPNU151)
23 Các gợi ý được trình bày trong cuối mỗi bài labs (nếu có) để cung cấp các thông tin hữu dụng khi gặp phải các vấn đề trong các bài labs
24 Tìm kiếm ở TI website cho các tài liệu tham khảo thêm:
SPMU287: Stellaris Driver Installation Guide (for ICDI and FTDI drivers)
SPMU288: BoosterPack Development Guide
SPMU289: LaunchPad Evaluation Board User’s Manual (includes schematic)
Có thể tìm thêm thông tin ở các websites sau:
Main page: www.ti.com/launchpad
Stellaris LP: www.ti.com/stellaris-launchpad
EK-LM4F120XL product page: http://www.ti.com/tool/EK-LM4F120XL
BoosterPack webpage: www.ti.com/boosterpack
LaunchPad WiKi: www.ti.com/launchpadwiki
LM4F120H5QR folder: http://www.ti.com/product/lm4f120h5qr
Kit
25 Mở hộp kit ra
Trang 7Sẽ có trong đó:
The LM4F120H5QR LaunchPad Board
USB cable (A-male to micro-B-male)
README First card
Cài đặt Board ban đầu
26 Kết nối board với máy tính và cài đặt drivers
LM4F120 LaunchPad Board ICDI USB port (có ghi nhãn trên board là DEBUG
và có thể thấy như trong hình dưới) là cổng USB và bao gồm 3 kết nối:
Stellaris ICDI JTAG/SWD Interface - debugger connection Stellaris ICDI DFU Device - firmware update connection Stellaris Virtual Serial Port - a serial data connection
Drivers sẽ được cài đặt tự động
Trang 828 Phần mềm trong LM4F120H5QR sử dụng timers như là pulse-width modulators (PWMs) để thay đổi cường độ của tất cả 3 màu trên Led đơn RGB (red, green, and blue) Bởi vậy, mắt sẽ cảm nhận được nhiều màu sắc khác nhau được tạo ra thông qua việc kết hợp các màu cơ bản
Hai plushbuttons ở phía dưới của board được đánh nhãn SW1 (bên trái) và SW2 (ở bên phải ) Nhấn hoặc nhấn và giữ SW1 để di chuyển về phía phổ màu đỏ ở cuối Nhấn hoặc nhấn và giữ SW2 để di chuyển về phổ màu tím ở cuối
Nếu không nhấn nút nào trong vòng 5 giây, phần mềm sẽ tự động quay về thay đổi màu sắc như mặc định
29 Nhấn và giữ cả 2 nút nhấn SW1 và SW2 trong vòng 3 giây sẽ đi vào hibernate
mode (chế độ ngủ) Trong chế độ này màu sắc cuối cùng sẽ nhấp nháy 1/2 giây sau mỗi 3 giây Giữa các khoảng nhấp nháy, thiết bị ở chế độ ngủ VDD3ON với
realtime-clock (RTC) đang chạy Nhấn SW2 ở bất kì lúc nào sẽ đánh thức thiết bị
và quay về chương trình hiển thị màu sắc một cách tự động
30 Ta có thể giao tiếp với board thông qua UART UART được kết nối như là cổng nối tiếp ảo thông qua kết nối USB giả lập
Các bước sau đây sẽ hướng dẫn làm cách nào mở kết nối với board sử dụng HyperTerminal (trong Window XP) và PuTTY (trong Window 7 hoặc 8)
31 Ta cần tìm COM port number của Stellaris virtual Serial Port trong Device
Manager Bỏ qua bước 32 nếu đạng sử dụng Window 7 hoặc 8
Window XP:
A Click chuột phải ở My Computer và chọn Properties
B Trong cửa sổ System Properties, chọn tab Hardware
C Click nút Device Manager
Mở Ports heading và viết số của Stellaris Virtual Serial Port ở đây: COM
Trang 932 Window 7 hoặc 8:
A Click chuột phải ở My Computer và chọn Properties
B Chọn Device Manager ở hộp thoại bên trái
Mở Ports heading và viết số của Stellaris Virtual Serial Port ở đây: COM
Trang 1033 Trong Win XP, mở HyperTerminal Trong hộp thoại hiện ra, chọn kết nối sử
dụng COM##, với ## là số của cổng COM đã ghi chú ở bước trước Click OK Chọn các thiết lập như hình sau và click OK
Khi cửa sổ terminal được mở, nhấn ENTER một lần và LaunchPad board sẽ phản hồi là xác nhận giao tiếp đã mở Bỏ qua bước 31
Trang 1134 Trong Win 7 hoặc 8, double click vào putty.exe Thiết lập các cài đặt như hình
dưới và sau đó click Open COM Port number sẽ là số mà ta đã ghi chú lại trước đây
Khi cửa sổ terminal được mở, nhấn ENTER một lần và LaunchPad board sẽ phản hồi là xác nhận giao tiếp đã mở Bỏ qua bước 31
35 Bạn có thể giao tiếp bằng cách gõ các dòng lệnh sau và nhấn ENTER:
help: sẽ tạo ra một danh sách các lệnh và thông tin
hib: sẽ đưa thiết bị vào chế độ ngủ Nhấn SW2 để đánh thức thiết bị
rand: sẽ bắt đầu một chuỗi pseudo-random màu sắc
intensity: điều chỉnh độ sáng của LED từ 0 tới 100% Với 100 sẽ làm LED hiển
thị sáng nhất
rgb: theo sau là một “6 hex character value” để thiết lập cường độ của tất cả 3
LEDs Ví dụ: rgb FF0000 LED sáng màu đỏ, rgb 00FF00 LED sáng màu xanh dương và rgb 0000FF LED sáng màu xanh lá
36 Đóng chương trình Terminal
Hoàn thành!
Trang 12Lab 2: Code Composer Studio
I Mục tiêu:
Mục tiêu của lab này là làm quen với cách sử dụng Code Composer Studio một cách cơ bản
II Load the Lab 2 Project
Mở Code Composer Studio
1 Double click vào shortcut Code Composer trên Destop để mở CCS Khi hộp thoại “Select a workspace” xuất hiện, trỏ đến folder My Computer:
(In WinXP) C:\Documents and Settings\<user>\My Documents (In Win7) C:\Users\<user>\My Documents
Ngoài ra, cũng có thể trỏ đến folder mong muốn của bạn Click OK
Tên của workspace là không quan trọng, tuy nhiên hãy sử dụng MyWorkspaceLM4F120
Trang 13Không chọn ô “Use this as the default and do not ask again”
Click OK
Nếu không có licensed Code Composer, bạn sẽ được hỏi trong những bước cài đặt tiếp theo Khi đó, chọn “Evaluation” Ngay khi máy tính được kết nối với LaunchPad board, Code Composer sẽ có đầy đủ chức năng, miễn phí Bạn có thể quay lại và thay đổi license nếu cần thiết bằng cách chọn Help -> Code Composer Studio Licensing Information -> Upgrade tab -> Launch License Setup…
Khi cửa sổ “TI Resource Explorer” and/or “Grace” xuất hiện, đóng các tabs Vào lúc đó các công cụ chỉ hỗ trợ MSP430
Tạo Lab2 Project
2 Trên CCS menu bar chọn File -> New -> CCS Project Thiết lập các tùy chọn như
bên dưới Phải chắc chắn rằng bỏ chọn “Use default location” và chọn đường dẫn chính xác Bước này là quan trọng để làm cho project của bạn linh động
và để cho liên đới tới công việc một cách trực tiếp Gõ “120” trong ô variant để
đưa lên 4 phiên bản của thiết bị Chọn “Empty Project (with main.c)” cho project mẫu Click Finish
Trang 143 File main.c sẽ được mở trong editor tab Xóa nội dung và gõ hoặc copy/paste
đoạn code sau vào trong file Đừng băn khoăn về code bây giờ; đã sẽ đi vào chi tiết về code trong lab 3 Lưu ý các câu hỏi xuất hiện bên trái của các câu lệnh
include Điều này cho biết rằng Code Composer không biết đường dẫn đến các
nguồn Ta sẽ sữa điều đó ở phần sau
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3);
while(1)
{
// Turn on the LED
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, LED);
// Delay for a bit
SysCtlDelay(2000000);
// Cycle through Red, Green and Blue LEDs
if (LED == 8) {LED = 2;} else {LED = LED*2;}
Trang 15}
}
Click nút Save trên menu bar để để lưu lại Nếu có bất kì vấn đề gì, bạn có thể
tìm code trong folder Lab2/ccs trong file main.txt
Nếu code thụt vào thụt ra không rõ ràng, nhấn Ctrl-A, click chuột phải và chọn Source -> Correct Indentation
4 Mở rộng project trong Project Explorer pane (ở phía bên trái) bằng cách click vào dấu + hoặc dấu của Lab 2 Danh sách này cho thấy được tất cả các file được sử
dụng để build project Một trong các file này là startup_ccs.c mà ta đã đưa vào
trong folder của lab (file này sẵn có trong mỗi StellarisWare example) click vào file để mở nó File này định nghĩa “stack and the interrupt vector table structure” trong những thứ khác Các cài đặt này là cần thiết cho Code Composer
Double-để build project Không thay đổi bất kì nội dung nào trong file này và đóng lại
Cài đặt Build Options
5 Ở trên đã đề cập đến những câu hỏi xuất hiện sau hàng lệnh include Hai bước
tiếp theo sẽ giúp giải quyết vấn đề đó để tìm ra nguồn của các file cần thiết cho biên dịch code
Click chuột phải ở Lab2 trong Project Explorer pane và chọn Properties Click
Include Options dưới ARM Compiler Ở bên dưới, khung include search path,
click Add button và thêm vào include search path sau Bạn có thể muốn
copy/paste từ workbook pdf với 2 bước tiếp theo
${PROJECT_ROOT}/ / / /
Đường dẫn này cho phép trình biên dịch (compiler) tìm chính xác folder driverlib,
với 4 mức trên tính từ folder project Chú ý rằng, nếu bạn để folder project của bạn ở vị trí khác thì đường dẫn trên không hoạt động
Trang 166 Phía dưới ARM Linker click File Search Path Thêm vào cửa sổ ở phía trên file
library sau:
${PROJECT_ROOT}/ / / / /driverlib/ccs-cm4f/Debug/driverlib-cm4f.lib
Trang 17Bước này cho phép trình liên kết (linker) tìm thấy chính xác file lib Chú ý rằng nếu bạn không để project ở một vị trí khác thì đường dẫn trên cũng không hoạt động
Click OK để lưu lại các thay đổi
Chạy Code chương trình
7 Phải chắc chắn rằng LaunchPad board đã được cắm vào Kiểm tra rằng Lab2 là Active Project bằng cách click vào project trong khung Project Explorer, click nút Debug trên CCS menu bar để build và tải Lab2 project Khi quá trình hoàn thành, CCS sẽ ở trong giao diện Debug (lưu ý 2 tabs ở phía trên bên phải của màn hình … kéo chúng qua bên trái một chút để bạn có thể nhìn thấy chúng hoàn toàn)
8 Click nút Run trên CCS menu bar để chạy chương trình Quan sát LED ba màu sáng đỏ, lục và lam trên LaunchPad board
Một vài đặc trưng của CCS
9 Click nút Suspend trên CCS menu bar Nếu chương trình dừng với một báo
hiệu “No source available …” , click vào tab main.c Hầu hết thời gian trong vòng lặp while() là ở trong các hàm delay và source file này không linked vào trong
project
10 Breakpoints
Trong cửa sổ chương trình ở giữa màn hình, double-click vào vùng xám ở bên trái
của line number của hang lệnh GPIOPinWrite() để thiết lập breakpoint (nó trông
giống thế này ) Click nút Resume để restart lại chương trình Chương trình
sẽ dừng lại ở điểm breakpoint và bạn sẽ thấy một mũi tên bên trái của line number, xác định rằng bộ đếm chương trình đã được dừng trên hang này của
code Chú ý rằng ICDI driver hiện tại không hỗ trợ thêm vào/bỏ bớt breakpoints trong khi processor đang chạy Click nút Resume một vài lần hoặc
nhấn phím F8 để chạy chương trình Quan sát LED trên LaunchPad board
12 Memory View
Trang 18Click View -> Memory Browser để kiểm tra processor memory Gõ 0x00 trong ô trống và nhấn Enter Bạn có thể thấy memory và có thể click vào một vị trí và thay đổi giá trị trực tiếp trong vị trí bộ nhớ đó
13 Expressions View
Phải chắc chắn rằng bạn có thể thấy khung Expressions ở góc trên bên phải màn hình Bạn có thể phải click vào tab Expressions Click chuột phải vào khung và chọn Remove All để làm cho chắc chắn rằng không còn gì hiển thị trong expressions
Trong cửa sổ code, double-click vào biến LED xung quanh dòng 18 Click chuột phải vào biến được chọn và chọn Add Watch Expression và sau đó click OK Cửa
sổ ở trên bên phải sẽ chuyển sang Expression view và bạn sẽ thấy biến đó đã được liệt kê Chạy chương trình vài lần Mỗi lần code thực hiện tới điểm breakpoint, giá trị hiển thị sẽ được cập nhật, Giá trị đã được cập nhật được bôi nền màu vàng
Xóa tất cả các điểm breakpoint mà bạn đã thiết lập bằng cách click Run -> Remove All Breakpoints từ menu bar Một lần nữa, breakpoint chỉ có thể được xóa khi processor không chạy
14 Click vào Terminate để quay về môi trương soạn thảo Click phải chuột vào Lab2 trong khung Project Explorer và chọn Close Project để đóng project Minimize CCS
LM Flash Programmer
15 LM Flash Programmer là một giao diện lập trình độc lập mà cho phép bạn lập trình flash của của một thiết bị Stellaris thông qua nhiều port Tạo ra nhiều file cần thiết cho bước build rời rạc trong Code Composer mà sẽ được thấy trong trang tiếp theo của bài lab này
Nếu không sẵn có, cài đặt LM Flash Programmer vào máy của bạn
16 Phải chắc chắn rằng Code Composer Studio không chạy code trong môi trường CCS Debug … bằng không CCS và Flash Programmer sẽ xung đột trong việc điều khiển USB port
Đó sẽ là Shortcut của LM Flash Programmer trong Destop
của bạn, double-click vào đó để mở công cụ Nếu không thấy
shortcut trên Destop, vào Start -> All Programs -> Texas
Trang 19Instruments -> Stellaris -> LM Flash Programmer và click vào LM Flash Programmer
17 Hiện tại board của bạn đang chạy ứng dụng của Lab2 Nếu User LED không sáng, nhấn nút RESET trên board Ta sẽ lập trình ứng dụng ban đầu trở lại trên LM4F120H5QR
Click vào tab Configuration Chọn LM4F120 LaunchPad từ Quick Set menu thả xuống của Configuration tab Xem user’s guide để thêm thông tin về cách nào
cấu hình bằng tay công cụ cho một thiết bị mà không phải là evaluation boards
18 Click vào tab Program Sau đó click vào nút Browse và điều khiển đến:
Trang 2019 Click vào nút Program
Bạn sẽ thấy quá trình programming và verification ở phía dưới của cửa sổ Sau khi các bước này hoàn thành, quickstart application sẽ chạy trên kit
20 Đóng LM Flash Programmer
Tuỳ chọn: Tạo một bin File cho Flash Programmer
Nếu bạn muốn tạo một bin file để sử dụng bởi stand-alone programmer trong một vài bài labs, sử dụng các bước sau đây Nhớ rằng project phải được mở trước khi bạn có thể thay đổi đặc tính của nó
In Code Composer 5.2 and Earlier:
Trong Code Composer, trong Project Explorer, click chuột phải vào project và chọn Properties Ở bên trái, click Build và và sau đó Steps tab Dán các câu lệnh sau vào trong Post-build steps Command box:
"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin"
"${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin"
"${CG_TOOL_ROOT}/bin/ofd470" "${CG_TOOL_ROOT}/bin/hex470"
"${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"
In Code Composer 5.3 and Later:
Trong Code Composer, trong Project Explorer, click chuột phải vào project và chọn Properties Ở bên trái, click Build và và sau đó Steps tab Dán các câu lệnh sau vào trong Post-build steps Command box:
trong project bằng cách click vào Debug folder
Hoàn Thành!
Trang 21Lab 3: Khởi tạo và GPIO
I Mục tiêu:
Trong bài lab này ta sẽ học được làm cách nào khởi tạo clock hệ thống và ngoại vi GPIO Sau đó ta sẽ sử dụng các GPIO ouput để làm sang LED trên board
II Các bước tiến hành:
Tạo Lab3 project
1 Maximine Code Composer Trên CCS menu bar chọn File -> New-> CCS
Project Làm các chọn lựa như bên dưới Phải chắc chắn rằng không chọn vào ô
“Use default location” và chọn đường dẫn chính xác tới “ccs” folder mà bạn tạo
ra Bước này quan trọng vì nó sẽ làm project của bạn linh động và để include
các đường dẫn để làm việc cho đúng Trong hộp variant, gõ “120” để thu hẹp
các kết quả trong hộp bên phải Trong cửa sổ Project templates and examples, chọn Empty Project (with main.c) Click Finish
Trang 22hw_memmap.h: Macros định nghĩa memory map của thiết bị Stellaris Include
này định nghĩa các vị trí peripheral base address như là GPIO_PORTF_BASE
Trang 23hw_types.h: định nghĩa common types và macros như là tBoolean và
HWREG(x)
sysctl.h: định nghĩa và macros cho System Control API của DriverLib Cái này
bao gồm API functions như là SysCtlClockSet và SysCtlClockGet
gpio.h: định nghĩa và macros cho GPIO API của DriverLib Cái này bao gồm API
functions như là GPIOPinTypePWM và GPIOPinWrite
int PinData=2; : tạo một biến integer được gọi là PinData và khởi tạo giá trị của
nó là 2 Nó sẽ được sử dụng để quay vòng qua 3 LED, sáng một lần ở một thời điểm
Bạn sẽ thấy câu hỏi xuất hiện bên trái của dòng include trong main.c được hiển thị
trong Code Composer Ta chưa định nghĩa đường dẫn tới include folders, do đó Code Composer không thể tìm thấy chúng Ta sẽ sửa lỗi này sau
ở 40MHz Đưa hàng code sau vào trong hàm main():
SysCtlClockSet(SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHZ|SYSCTL_OSC_MAIN);
Biểu đồ dưới đây là một bản vẽ vắn tắt của clock tree để nhấn mạnh đường Clock
hệ thống và sự lựa chọn
Trang 24Biểu đồ bên dưới là một phần được trích từ LaunchPad board Schematic Lưu ý rằng thạch anh gắn liền với đầu vào dao động chính là 16MHz, trong khi thạch anh gắn với đầu vào real-time clock (RTC) là 32,768MHz
GPIO Configuration
5 Trước khi gọi bất kỳ hàm ngoại vi cụ thể driverLib, ta phải tích cực clock cho
ngoại vi đó Nếu bạn thất bại, nó sẽ trả về kết quả là một Fault ISR (address fault) Đây là một lỗi chung của một số người dùng thường mắc phải Hàng lệnh thứ 2 bên dưới cấu hình 3 chân GPIO kết nối với LEDs như là ngõ ra Một phần sơ đồ bên dưới của LaunchPad board schematic chỉ rõ các chân PF1, PF2 và PF3 là được kết nối với LEDs
Trang 25Cách ra một hàng, sau đó đưa 2 hàng code sau vào trong main() sau hang lệnh ở
GPIO Port A (APB): 0x4000.4000 GPIO Port A (AHB): 0x4005.8000 GPIO Port B (APB): 0x4000.5000 GPIO Port B (AHB): 0x4005.9000 GPIO Port C (APB): 0x4000.6000 GPIO Port C (AHB): 0x4005.A000 GPIO Port D (APB): 0x4000.7000 GPIO Port D (AHB): 0x4005.B000 GPIO Port E (APB): 0x4002.4000 GPIO Port E (AHB): 0x4005.C000
GPIO Port F (APB): 0x4002.5000
GPIO Port F (AHB): 0x4005.D000
While() Loop
6 Cuối cùng, tạo một vòng lặp while(1) để gửi một “1” hay “0” tới một pin GPIO
cho trước, với một hàm delay giữa 2 lệnh
Trang 26SysCtlDelay() là một vòng lặp timer được cung cấp trong StellarisWare Tham số
đếm là số vòng lặp, không phải thời gian delay thực sự trong chu kì clock
Để ghi vào chân GPIO, sử dụng GPIO API function được gọi là GPIOPinWrite Phải chắc chắn đọc và hiểu được làm thế nào GPIOPinWrite function được sử dụng trong Datasheet
Trong ví dụ bên dưới, ta đang ghi giá trị trong biến PinData lên tất cả 3 pin GPIO
mà được kết nối tới LEDs Chỉ có 3 pin đó được sẽ được ghi giá trị dựa trên bit mask đã được xác định trước đó
Bây giờ có lẽ là thời điểm tốt để nhìn vào Datasheet cho Stellaris device Xem chương GPIO để hiểu cách duy nhất GPIO data register được thiết kế và ưu điểm của phương pháp
Bỏ trống một hàng và thêm đoạn code sau vào trong hàm main():
if(PinData==8) {PinData=2;} else {PinData=PinData*2;}
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3); while(1)
{
GPIOPinWrite(GPIO_PORTF_BASE, GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3, PinData);
Trang 27Startup Code
8 Ngoài các file chính đã tạo ra, bạn cũng cần có một startup file cụ thể để chuỗi công cụ mà bạn đang sử dụng File này chứa đựng vector table, startup routines để sao chép data khởi tạo cho RAM, xóa bss section, và lỗi mặc định ISRs File này
đã đưa vào trong folder của bạn
Double-click vào startup_ccs.c trong Project Explorer pane và có một cái nhìn
tổng quan Đừng thay đổi điều gì vào lúc này
Set the Build Options
9 Click chuột phải vào Lab3 trong Project Explorer pane và chọn Properties Click
Include Options dưới ARM Compiler Ở phía dưới, include search path pane, click nút Add và thêm vào “search path” sau: