PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 05-12-2009, 02:23 PM   #1
meishun
Đệ tử 6 túi
 
meishun's Avatar
 
Tham gia ngày: Jul 2006
Bài gửi: 135
:
Smile [LED Matrix] Cần giúp đỡ về giải thuật

Chào các bác,

Em đang làm dự án về LED matrix, dùng loại 5x7. Việc hiển thị kí tự ra thì em đã làm được, tuy nhiên, em gặp chút khó khăn trong việc cho LED SÁNG DẦN từ LED 1 đến LED 35 sau mỗi 150ms (xem hình đính kèm). Em đã làm như sau:
- Cho LED1 sáng
- Cho LED1 và LED2 cùng sáng
...
- Cho LED1,2,3,4,5 cùng sáng (lúc này 5 LED sáng dần sau mỗi 150ms, OK, chưa có vấn đề gì)
- Problem: Bật LED thứ 6 sáng (LED này nằm ở hàng 2 cột 1, trong khi yêu cầu là 5 LED trước đó vần sáng). Em cho việc quét 5 LED 1-5 lặp lại đúng 150ms để bật LED 6, lúc này có vẻ ... ổn.
- Khi bật đến LED 13 (làm tương tự trên) thì trình dịch báo lỗi "ROM space error". Em ko hiểu là cho quá nhiều vòng lặp for lồng vào nhau sẽ sinh ra code quá nhiều hay vì trình dịch chọn page bộ nhớ ko được??? Theo em tính toán thì mỗi lần quét 1 LED chỉ tốn cao lắm là vài chục từ nhớ.

==> Mong các cao thủ chỉ em giải thuật nào hay và hiệu quả hơn để em giải quyết bài toán này ạh.
Chân thành cảm ơn
P/S: code C càng tốt ạ ^^
Hình Kèm Theo
File Type: jpg LED5x7_.jpg (87.5 KB, 42 lần tải)
meishun vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-12-2009, 02:57 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Lỗi của bạn liên quan đến cách viết code, nhưng không thấy code của bạn.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 05-12-2009, 08:51 PM   #3
meishun
Đệ tử 6 túi
 
meishun's Avatar
 
Tham gia ngày: Jul 2006
Bài gửi: 135
:
Vâng, đúng là lỗi lập trình anh Nam ạ.
Lí do: em viết chương trình chuối quá, cái hàm điều khiển LED sáng dần từ LED1 đến LED35 quá dài (hơn 550 dòng, ngôn ngữ C). Do đó, khi biên dịch sang mã máy, trình biên dịch ko thể, hoặc ko cho phép, cưa nhỏ cái hàm để bỏ vào 2 trang bộ nhớ của PIC.
Cách giải quyết:
Vẫn dùng lại hàm "củ chuối" của em nhưng em chia đôi cái hàm đó ra làm 2 hàm nhỏ là A_1 và A_2, ví dụ vậy. Trong chương trình main, sau khi gọi gọi và thực thi A_1 xong sẽ tiến hành thực thi đến A_2. Lúc này biên dịch thành công, ko còn báo lỗi ROM space error nữa. LED hiển thị thực tế đúng như yêu cầu ^^

P/S: Ai có giải thuật nào hay hơn xin chỉ giáo. Cảm ơn trước ạ ^^
meishun vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Tags
led matrix


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 02:42 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam