Bài tập thực hành vi điều khiển H8SX1582
ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH ---------W X--------- BÀI TẬP THỰC HÀNH VI ĐIỀU KHIỂN H8SX/1582 TP.HỒ CHÍ MINH,12 - 2007 Mục Lục Bài 1: Biên dịch và debug một chương trình đơn giản ..................................................1 1.1. Nội dung ................................................................................................................1 1.2. Project workspace ..................................................................................................1 1.3. Build project tutorial..............................................................................................4 1.4. Download và chạy chương trình tutorial ...............................................................9 1.5. Các file trong project ...........................................................................................13 Bài 2: Khảo sát I/O port...................................................................................................16 2.1. Nội dung ..............................................................................................................16 2.2. Tóm tắt lý thuyết..................................................................................................16 2.3. Lập trình C ...........................................................................................................19 2.4. Bài tập ..................................................................................................................21 Bài 3: Xử lý ngoại lệ và ngắt quãng ................................................................................24 3.1. Nội dung ..............................................................................................................24 3.2. Tóm tắt lý thuyết..................................................................................................24 3.3. Thực hành – Bài tập.............................................................................................36 Bài 4: Khảo sát các bộ định thời .....................................................................................37 4.1. Nội dung ..............................................................................................................37 4.2. Tổng quan về bộ định thời 16 bit (TPU) .............................................................37 4.3. Các thanh ghi của bộ định thời ............................................................................37 4.4. Cách sử dụng interval timer.................................................................................40 4.5. Cách sử dụng TPU làm bộ phát xung clock ........................................................41 4.6. Bài tập ..................................................................................................................42 Bài 5: Khảo sát kỹ thuật quét LED.................................................................................43 5.1 Nội dung...............................................................................................................43 5.2 Khảo sát kỹ thuật quét LED.................................................................................43 5.3 Hiển thị ảnh trên ma trận LED.............................................................................44 5.4 Bài tập ..................................................................................................................45 Bài 6: Khảo sát kỹ thuật quét phím, chống rung phím nhấn.......................................47 6.1. Nội dung ..............................................................................................................47 6.2. Khảo sát kỹ thuật quét phím ................................................................................47 6.3. Khảo sát kỹ thuật chống rung phím.....................................................................49 6.4. Bài tập ..................................................................................................................53 Bài 7: Khảo sát bộ truyền nhận nối tiếp SCI của H8SX/1582......................................55 7.1 Nội dung ..............................................................................................................55 7.2 Tổng quan về bộ truyền nhận dữ liệu nối tiếp SCI..............................................55 7.3 Các thanh ghi của bộ truyền nhận dữ liệu nối tiếp SCI .......................................55 7.4 Các hoạt động của bộ giao tiếp nối tiếp SCI .......................................................60 7.5 Bài tập ..................................................................................................................64 Bài 8: Khảo sát module LCD của Starter Kit................................................................66 8.1 Nội dung ..............................................................................................................66 8.2 Tổng quan về module LCD .................................................................................66 8.3 Bài tập ..................................................................................................................69 Bài 9: Khảo sát bộ A/D của H8SX/1582 .........................................................................70 9.1 Nội dung ..............................................................................................................70 9.2 Tổng quan về bộ A/D ..........................................................................................70 9.3 Các thanh ghi của bộ A/D....................................................................................70 9.4 Các hoạt động của bộ A/D...................................................................................72 9.5 Bài tập ..................................................................................................................75 Bài 10: Khảo sát bộ truyền dữ liệu DTC (Data Tranfer Controller) ..........................76 10.1 Nội dung bài thí nghiệm ......................................................................................76 10.2 Tổng quan về bộ truyền dữ liệu DTC ..................................................................76 10.3 Các thanh ghi của DTC........................................................................................76 10.4 Các chế độ hoạt động của DTC ...........................................................................80 10.5 Ví dụ sử dụng DTC..............................................................................................82 10.6 Bài tập ..................................................................................................................83 Bài 11: Khảo sát bộ điều khiển DMA .............................................................................84 11.1 Nội dung...............................................................................................................84 11.2 Tổng quan về bộ điều khiển DMA ......................................................................84 11.3 Các thanh ghi của DMA ......................................................................................84 11.4 Các chế độ hoạt động của DMA..........................................................................93 11.5 Ví dụ sử dụng DMA ............................................................................................94 11.6 Bài Tập.................................................................................................................96 Bài 12: Khảo sát bộ phát sinh xung khả lập trình PPG................................................97 12.1 Nội dung...............................................................................................................97 12.2 Tổng quan về bộ phát sinh khả lập trình PPG .....................................................97 12.3 Các thanh ghi của PPG ........................................................................................97 12.4 Các chế độ hoạt động.........................................................................................101 12.5 Ví dụ sử dụng PPG ............................................................................................101 Bài tập thực hành H8SX/1582 ĐH. Bách Khoa TP. HCM Bài 1: Biên dịch và debug một chương trình đơn giản 1.1. Nội dung Phần hướng dẫn này sẽ giải thích các vấn đề sau đây: • Cách biên dịch, link, download và chạy một chương trình đơn giản trên RSK. • Cách xây dựng một ứng dụng nhúng. • Cách sử dụng các công cụ của Renesas. Công cụ tạo project sẽ tạo ra một project tutorial với 2 cách build có thể chọn lựa được: • Debug: project được build để chạy với sự hỗ trợ của thiết bị debug. • Release: project được build thành sản phẩm, không cần thiết bị debug 1.2. Project workspace 1.2.1. Giới thiệu HEW là một công cụ phát triển được tích hợp, cho phép người dùng viết, biên dịch, lập trình và debug một phần mềm ứng dụng trên bất cứ vi điều khiển nào của Renesas. HEW sẽ được cài đặt khi cài đặt khi cài đặt phần mềm cho RSK. Để bắt đầu sử dụng RSK, phần hướng dẫn này sẽ mô tả các bước để tạo và debug các ví dụ được cung cấp sẵn. 1.2.2. Tạo một project workspace mới Tạo một workspace mới từ menu File → New Workspace, hoặc chọn “Create a new project workspace” khi hộp thoại “Welcome!” hiện lên. Khoa học & Kỹ thuật máy tính -1- Bài tập thực hành H8SX/1582 ĐH. Bách Khoa TP. HCM Ví dụ trên cho thấy một hộp thoại New Project Workspace với các lựa chọn như sau: • Chọn họ CPU “H8S, H8/300” và Tool-chain “Hitachi H8S, H8/300 Standard” • Chọn loại project là “RSKH8SX1582” trong danh sách project • Nhập tên cho workspace, tất cả các file sẽ được lưu vào một thư mục có cùng tên này. Vùng tên của project sẽ được tự động thêm vào để phù hợp với tên workspace đã nhập. Tên này cũng có thể thay đổi tùy theo người dùng. Lưu ý là HEW cho phép thêm nhiều project vào chung 1 workspace. Có thể bạn sẽ thêm một project với các code mẫu sau này, do đó nên chọn một tên phù hợp cho project tutorial. • Nhấn để bắt đầu tạo project. Hộp thoại sau sẽ hiện ra Khoa học & Kỹ thuật máy tính -2- Bài tập thực hành H8SX/1582 ĐH. Bách Khoa TP. HCM Chọn “Tutorial code” (sẽ giải thích sau trong phần hướng dẫn này). Phần “Sample code” cung cấp một số ví dụ sử dụng các thiết bị ngoại vi. Phần “Application” dùng để xây dựng các ứng dụng với thiết bị debug đã được cấu hình sẵn. Nhấn để bắt đầu tạo project, một hộp thoại xác nhận sẽ hiện lên, chọn để tạo project và thêm các file cần thiết cho project. Một cấu trúc cây sẽ cho thấy tất cả các file trong project, để xem file main.c, double click vào tên file, một cửa sổ mới sẽ cho thấy code trong file đó. 1.2.3. Thiết lập cơ chế build Workspace đã được tạo ra có thể được build theo 2 cách. Các cách build này cho phép 1 project được build với nhiều chọn lựa khác nhau của trình biên dịch. Cách build chương trình được chọn từ drop list bên trái trên toolbar. Có 2 lựa chọn là “Debug” và “Release”. Khi chọn “Debug”, chương trình sẽ được build để chạy với sự hỗ trợ của thiết bị debug, ngược lại, khi chọn “Release”, chương trình sẽ được build để có thể nạp thẳng vào ROM. Chọn cách build “Debug” Sau đó chọn tiếp “Session_H8SX_1582_Hmon” trong droplist bên phải Khoa học & Kỹ thuật máy tính -3- Bài tập thực hành H8SX/1582 ĐH. Bách Khoa TP. HCM 1.3. Build project tutorial 1.3.1. Build mã nguồn Có 3 cách để build mã nguồn nhanh: trên toolbar. Cách này sẽ build tất cả các mã • Chọn nút “Build All” nguồn có trong project, kể cả thư viện chuẩn. trên toolbar. Cách này sẽ build tất cả các file có sự • Chọn nút “Build” thay đổi kể từ lần build trước đó. Thư viện chuẩn sẽ không được build, trừ khi có một sự thay đổi nào đó. • Nhấn , tương đương với nhấn nút “Build” trên toolbar. Hãy build project tutorial bằng cách nhấn hoặc một trong các nút build đã nói trên. Trong suốt quá trình build, mỗi trạng thái sẽ được báo trên cửa sổ thông báo. Quá trình build sẽ kết thúc với số lỗi và số warning gặp được. 1.3.2. Kết nối thiết bị debug Phần này mặc định là đã cài đặt driver cho thiết bị debug E8, đồng thời không cần phải cấp nguồn cho board, nguồn sẽ được lấy từ cổng USB của máy tính. • Nối thiết bị debug với cổng USB trên máy tính. • Nối thiết bị debug với board mạch, chỗ kết nối được đánh dấu “E8” và nằm gần với chỗ cắm nguồn. 1.3.3. Kết nối với board bằng E8Direct và HMon Phần này sẽ hướng dẫn cách kết nối với thiết bị, lập trình bộ nhớ Flash và thực thi chương trình. E8 cung cấp một interface gọi là E8Direct, cho phép kết nối chương trình debug HMon với board mạch chính. Để có thể lập trình bộ nhớ Flash, ta cần phải thiết lập cấu hình trước. Việc cấu hình này chỉ cần làm một lần cho mỗi project. • Chọn “FDT Wizard” từ thanh công cụ FDT Nếu flash kernel đã được cấu hình trước thì một cửa sổ xác nhận sẽ được mở ra với các thiết lập trước đó của kernel. Để sửa lại cấu hình này chỉ cần double click vào thành phần muốn sửa. Nếu FDT đã được cấu hình sẵn thì có thể bỏ qua phần này và đọc tiếp phần “Kết nối với HMon”. Bước đầu tiên là chọn thiết bị phù hợp từ các kernel đã được cài đặt sẵn, các kernel này nằm sẵn trong drop list, người dùng chỉ cần chọn lựa đúng thiết bị. Trong trường hợp phải build lại kernel (ví dụ tần số của thạch anh trên board bị thay đổi) thì Khoa học & Kỹ thuật máy tính -4- Bài tập thực hành H8SX/1582 đường dẫn để cài đặt lại Installation>\Kernels\ProtC\1582\Renesas\1_0_00.RSK> ĐH. Bách Khoa TP. HCM kernel là [...]... để thực thi chương trình chính 1.5.2 Đoạn mã khởi động phần cứng (Hwsetup.c/ hwsetup.h) Có 4 bước chung để thiết lập ban đầu cho vi điều khiển, do đó đoạn mã thực hiện quá trình này cũng được chia nhỏ thành 4 hàm tương ứng như sau: Khoa học & Kỹ thuật máy tính -14- Bài tập thực hành H8SX/1582 1.5.3 ĐH Bách Khoa TP HCM Đoạn mã chính (main.c/ main.h) Khoa học & Kỹ thuật máy tính -15- Bài tập thực hành. .. TP HCM -20- Bài tập thực hành H8SX/1582 ĐH Bách Khoa TP HCM Kiểu định nghĩa như trên được tập hợp vào một file có tên là “iodefine.h” Môi trường phát triển của Renesas cho phép bạn include file này vào chương trình của mình để sử dụng như trong ví dụ sau đây 2.4 Bài tập Tạo một workspace mới tên là “Exercises” cho các bài tập Workspace có dạng là “Application”, mỗi bài tập sau này sẽ thành một project... thanh ghi có thể đọc/ghi 8-bit nó điều khiển buffer cổng nhập Khoa học & Kỹ thuật máy tính -32- Bài tập thực hành H8SX/1582 ĐH Bách Khoa TP HCM Cấu hình thanh ghi : (5) Thanh ghi điều khiển chức năng Port Chức năng : Thanh ghi PFCR lựa chọn nhiều chức năng cho các chân xuất nhập 3.2.5 Ví dụ ngắt quãng mode 0 3.2.6 Điều khiển ngắt quãng chế độ 2 Ở chế độ này CPU điều khiển ngắt quãng với 7 cấp độ ưu... không hỗ trợ ICR Bảng 3.2 Chế độ điều khiển ngắt quãng Chế độ điều khiển ngắt quãng 0 1 2 3 INTCR INTM0 INTM1 0 0 1 1 Khoa học & Kỹ thuật máy tính 0 1 0 1 Thanh ghi thiết lập độ ưu tiên ICR ICR IPR ICR, IPR Mask bit của ngắt quãng I I, UI I2 ~ I0 I, UI, I2 ~ I0 Số cấp độ của đa ngắt 0 2 7 7 -26- Bài tập thực hành H8SX/1582 ĐH Bách Khoa TP HCM 3.2.3.1.Thanh ghi điều khiển ngắt quãng Thanh ghi này dùng... tính -25- Bài tập thực hành H8SX/1582 3.2.2 ĐH Bách Khoa TP HCM Chương trình xử lý ngắt quãng Để định nghĩa một trình xử lý ngắt ta có thể khai báo một hàm như sau : interrupt (vect = ) void (void) { … } Ví dụ khai báo và hiện thực trình xử lý ngắt cho IRQ0 Trong hợp ngữ ta định nghĩa như sau 3.2.3 Điều khiển ngắt quãng chế độ 0 Bảng 3.2 cho biết các chế độ điều khiển ngắt... dùng làm điểm bắt đầu thực sự của chương trình hoặc là sẽ được gọi trong quá trình khởi động môi trường Khoa học & Kỹ thuật máy tính -13- Bài tập thực hành H8SX/1582 ĐH Bách Khoa TP HCM Vi c khởi tạo các biến sử dụng trong trình biên dịch C và khởi tạo các con trỏ stack được thực hiện trong hàm _INITSCT Hàm “HardwareSetup()” sẽ khởi động phần cứng của thiết bị và các thiết bị ngoại vi cần sử dụng Sau... các thanh ghi của port 1, port 2 và thực hiện các công vi c sau đây: • Vi t chương trình nhận vào các nút nhấn SW1, SW2, SW3 và mở các LED tương ứng như sau: nếu SW1 được nhấn thì chỉ sáng LED0, nếu SW2 được nhấn thì chỉ sáng LED1, nếu SW3 được nhấn thì chỉ sáng LED2 Khoa học & Kỹ thuật máy tính -22- Bài tập thực hành H8SX/1582 ĐH Bách Khoa TP HCM • Vi t chương trình nhận vào các nút nhấn SW1, SW2 và... hình rồi chọn Khoa học & Kỹ thuật máy tính -8- Bài tập thực hành H8SX/1582 ĐH Bách Khoa TP HCM HMon sẽ kết nối với board mạch, nếu thành công thì thông báo “Connected” sẽ xuất hiện trong cửa sổ output 1.4 Download và chạy chương trình tutorial Khi mã nguồn đã được build, cần phải dowwnload nó xuống board để thực thi Sau khi đã kết nối thiết bị, một thành phần mới sẽ được thêm vào workspace, có tên... workspace này 2.4.1 Bài 1 Nội dung: làm quen với cách sử dụng port I/O bằng cách định nghĩa theo đơn vị byte, xuất dữ liệu làm sáng/ tắt các đèn LED trên board Tạo một project có tên là 01_port trong workspace “Exercises” vừa tạo Khoa học & Kỹ thuật máy tính -21- Bài tập thực hành H8SX/1582 ĐH Bách Khoa TP HCM Trong file “main.c” của project, định nghĩa các port như sau: Trong hàm main sinh vi n thêm vào... để thoát • Mở file “main.c” • Đặt một điểm breakpoint tại hàm “StaticsTest();” Hàm StaticsTest() dùng để minh họa vi c sao chép thành công toàn bộ các biến đã được khởi tạo từ bộ nhớ flash vào RAM • Nhấn nút “Reset Go” trên toolbar Khoa học & Kỹ thuật máy tính -12- Bài tập thực hành H8SX/1582 ĐH Bách Khoa TP HCM Chương trình sẽ chạy đến điểm breakpoint (nhấn một nút bất kì trên board để thoát khỏi ... máy tính -45- Bài tập thực hành H8SX/1582 ĐH Bách Khoa TP HCM 5.4.4 Bài tập Sử dụng LED thực đếm BCD (mô hoạt động đếm vòng từ đến 999) Khoa học & Kỹ thuật máy tính -46- Bài tập thực hành H8SX/1582... bit) để tiến hành kiểm tra ma trận phím (4x4 phím) có nhận hay không Do số cổng vi điều khiển thường không nhiều, vi điều khiển lại thực nhiều nhiệm vụ khác Chính lẽ mà cổng vi điều khiển phải... Có bước chung để thiết lập ban đầu cho vi điều khiển, đoạn mã thực trình chia nhỏ thành hàm tương ứng sau: Khoa học & Kỹ thuật máy tính -14- Bài tập thực hành H8SX/1582 1.5.3 ĐH Bách Khoa TP HCM