Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

CÙNG HỌC AVR AVR3– LẬP TRÌNH C CHO AVR: NGẮT VÀ TIMER/COUNTER docx
MIỄN PHÍ
Số trang
27
Kích thước
1.5 MB
Định dạng
PDF
Lượt xem
1027

Tài liệu đang bị lỗi

File tài liệu này hiện đang bị hỏng, chúng tôi đang cố gắng khắc phục.

CÙNG HỌC AVR AVR3– LẬP TRÌNH C CHO AVR: NGẮT VÀ TIMER/COUNTER docx

Nội dung xem thử

Mô tả chi tiết

AUTO.NLU

For more details and questions, contact me: thanhtam.h@gmail.com

CÙNG HỌC AVR

AVR3– LẬP TRÌNH C CHO AVR: NGẮT VÀ TIMER/COUNTER

Thoả thuận: tài liệu này thuộc quyền sở hữu của tác giả, bạn có thể tự do tham khảo

tài liệu nhưng không được phép sử dụng để in thành sách báo, đăng lên các diễn đàn

hay website, nhưng bạn có thể dùng đường link http://www.dieukhientudong.net để

hướng tới tài liệu. Liên hệ tác giả qua email: thanhtam.h@gmail.com.

I. Bạn sẽ đi đến đâu.

Đây là thứ 3 trong loạt bài cùng học AVR. Nếu bài 1 và bài 2 giới thiệu một cách chung nhất

về AVR thì kể từ bài 3 tôi sẽ giới thiệu lập trình điều khiển peripheral (thiết bị ngoại vi hay các

chức năng mở rộng tích hợp sẵn trên các chip AVR). Do là các thiết bị ngoại vi mở rộng nên

không phải tất cả các chip AVR đều có tất cả các thiết bị này, ví dụ chip AVR AT90S2313,

AT90S8515 không có bộ chuyển đổi Analog-Digital (ADC) và giao tiếp TWI (I2

C)…Tuy nhiên,

các chip thuộc dòng Mega có khá nhiều thiết bị ngoại vi phục vụ cho các ứng dụng đo lường, điều

khiển…Chúng ta sẽ tiếp tục sử dụng chip Atmega8 để khảo sát, trong quá trình khảo sát, nếu có

sự khác biệt giữa Atmega8 và các chip mới hơn (như Atmega16, Atmega32, Atmega64,

Atmega128…) tôi sẽ nói rõ để bạn rõ.

Một sự khác biệt lớn giữa AVR3 so với các bài viết trước là tôi sẽ hướng dẫn lập trình bằng

C mà cụ thể là bằng AVR-GCC (được tích hợp trong WinAVR). Các bạn xem phần II để biết rõ

hơn.

Sau bài này, tôi hy vọng bạn sẽ:

- Cài đặt và sử dụng WinAVR, Programmer Notepad.

- Hiểu được một số hàm cơ bản trong thư viện avr-libc.

- Hiểu về INTERRUPT (ngắt), cách sử dụng ngắt bằng C và cả ASM.

- Cải tiến ví dụ trong bài 2 bằng Interrupt.

II. WinAVR.

Tại sao C: như tôi đã trình bày ở các bài học trước, khi bạn đã hiểu về AVR, để thực hiện

các ứng dụng, bạn có thể không nhất thiết phải luôn lập trình bằng ASM. Ngôn ngữ cấp cao như C

sẽ giúp cho bạn xây dựng các ứng dụng nhanh chóng và dễ dàng hơn, tuy nhiên không vì thế mà

bạn “quên” ASM, lập trình bằng C kết hợp ASM là giải pháp hay nhất. Một chú ý là chúng ta chỉ

sử dụng C để đơn giản hóa lập trình tính toán, cấu trúc điều khiển…lập trình C cho AVR không

có nghĩa là bạn không cần biết cấu trúc và cách thức hoạt động của chip!!!

Tại sao WinAVR: WinAVR (đọc là Whenever: theo tác giả của WinAVR) là một bộ phần

mềm mã nguồn mở bao gồm các công cụ cho dòng vi điều khiển AVR . WinAVR chạy trên nền

hệ điều hành Windows, nó bao gồm các công cụ sau:

- Trình biên dịch avr-gcc, GNU GCC là trình biên dịch C, C++ phát triển bởi cộng

đồng mã nguồn mở GNU, avr-gcc phát triển riêng cho AVR.

- Chương trình nạp chip avrdude.

- Chương trình debugger avr-gdb.

AUTO.NLU

For more details and questions, contact me: thanhtam.h@gmail.com

- Programmer Notepad: trình biên tập code hỗ trợ nhiều ngôn ngữ như C, C++,

CSS, HTML, Java,…

- MFile: tiện ích tạo các file Makefile dùng trong quá trình biên dịch code…

Cốt lõi của WinAVR là trình biên dịch GNU GCC và thư viện avr-libc, đây là bộ công cụ

lập trình C miễn phí hoàn chỉnh duy nhất cho AVR. Có thể nói bộ công cụ này góp phần không

nhỏ giúp cho chip AVR ngày càng trở nên phổ biến. WinAVR liên tục được cập nhật và hoàn

thiện bởi rất nhiều người, nguồn tài liệu và chương trình mẫu viết bằng công cụ này là rất

lớn…Đây là những lí do chính khiến tôi chọn WinAVR để giới thiệu với bạn.

Download và cài đặt: có 2 cách để bạn cài đặt bộ công cụ C cho AVR, cách thứ nhất, bạn

download từng phần gồm binutils, gnu-gcc, avr-libc, và avrdude…rồi cài đặt (cách này thường

được sử dụng trên hệ điều hành Linux…tôi sẽ giới thiệu trong 1 tài liệu khác) và cách thứ 2 là

dùng WinAVR (dành cho windows). Bạn có thể download trực tiếp phiên bản mới nhất tại

website chính thức của WinAVR: http://winavr.sourceforge.net/index.html. Quá trình cài đặt

tương đối dễ dàng vì bạn có thể chỉ cần làm theo các lựa chọn mặc định. Sau khi cài đặt WinAVR

vào máy (tôi giả sử thư mục cài đặt của bạn là C:\WinAVR) bạn sẽ có đầy đủ bộ công cụ từ IDE

(Integrated Development Environment) để biên tập code, trình biên dịch, linker, chương trình nạp

chip, tiện ích tạo Makefile…

Programmer Notepad (pn): Programmer Notpad là phần mềm môi trường phát triển tích

hợp (IDE) miễn phí cho việc lập trình các ngôn ngữ như C, C++, CSS, HTML, Java,…Tuy giao

diện của pn khá đơn giản nhưng đây là công cụ rất hoàn hảo và được tích hợp sẵn trong WinAVR,

avr-gcc lugin được tích hợp sẵn trong pn cho WinAVR nên chúng ta có thể biên dịch code,

download chương trình vào chip trực tiếp với pn. (có thể tham khảo thêm về pn tại website

http://www.pnotepad.org/ ) (hey, bạn có thể viết code cho avr-gcc bằng AVRStudio, Eclipse IDE

hay ngay cả với Windows Notepad…makes sense).

MFile: để biên dịch 1 chương trình bằng trình biên dịch gnu gcc, bạn cần 1 file tên là

Makefile không có phần mở rộng, file này chứa thông tin cần thiết như thông tin về trình biên

dịch, target (là các chip AVR trong trường hợp của chúng ta), trình nạp chip…MFile là tiện ích

giúp chúng ta tạo các Makefile nhanh chóng và chinh xác. MFile được tích hợp sẵn trong

WinAVR.

III. Khởi động cùng Programmer Notepad (pn).

Sau khi cài đặt WinAVR, trên desktop của bạn có thể sẽ xuất hiện 2 icon của pn và MFile

như trong hình 1.

Hình 1

Phần này chúng ta tìm hiểu cách viết một chương trình C trong pn thông qua 1 ví dụ đơn

giản. Từ Desktop, hãy khởi động pn, lần đầu chạy pn bạn sẽ thấy giao diện của chương trình như

trong hình 2.

Tải ngay đi em, còn do dự, trời tối mất!