PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT 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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 12-11-2006, 10:55 PM   #1
bien_van_khat
...Damned...
 
bien_van_khat's Avatar
 
Tham gia ngày: Apr 2006
Nơi Cư Ngụ: Hồ Chí Minh
Bài gửi: 522
:
Trích:
Nguyên văn bởi minhpic View Post
Anh em cho mình hỏi, trong CCS nếu mình khai báo một string trong ROM thì làm cách nào lấy ra để hiển thị lên LCD vậy?
Thì cứ khai báo
Code:
const rom char tuila = "mot nguoi nao do";
xong rồi coi nó như một con trỏ hằng kiểu char.
À nếu sai thì bạn thông cảm nhé, vì có khi tớ lộn với C18
bien_van_khat vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-11-2006, 11:05 PM   #2
minhpic
Đệ tử 9 túi
 
Tham gia ngày: Nov 2005
Bài gửi: 99
:
Bạn chưa thử đúng không?
không được đâu bạn ạ, mình cũng đã thử nhưng k được
minhpic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 13-11-2006, 11:33 PM   #3
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
Theo tài liệu của CCS:

Để khai báo:
Code:
BYTE CONST TABLE [10]= {9,8,7,6,5,4,3,2,1,0};
Để dùng:
Code:
x = TABLE [i];
hay
Code:
x = TABLE [5];
Nhưng không được dùng con trỏ như sau:
Code:
ptr = &TABLE [i];
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 14-11-2006, 06:57 AM   #4
minhpic
Đệ tử 9 túi
 
Tham gia ngày: Nov 2005
Bài gửi: 99
:
Không tui hỏi là khai báo một mảng string trong rom, ban chưa hiểu ý mình rồi!!!!!!!
minhpic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-11-2006, 06:39 PM   #5
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
Trích:
Nguyên văn bởi minhpic View Post
Không tui hỏi là khai báo một mảng string trong rom, ban chưa hiểu ý mình rồi!!!!!!!
String được lưu như một array of byte trong ROM. Bạn có thể dùng:

Code:
BYTE CONST STRING [10] = "Hello";
Đừng máy móc quá khi học PIC nói riêng và vi điều khiển nói chung.

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 15-11-2006, 10:35 AM   #6
minhpic
Đệ tử 9 túi
 
Tham gia ngày: Nov 2005
Bài gửi: 99
:
ha ha, the ban da thu khai bao mot mang tring chu khong phai 1 tring nhu vay, sau do hien thi len lcd ntn?
minh nho cac ban giup
minhpic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-11-2006, 04:07 PM   #7
nhh
Đệ tử 9 túi
 
nhh's Avatar
 
Tham gia ngày: Feb 2006
Bài gửi: 174
:
Send a message via Yahoo to nhh
Trích:
Nguyên văn bởi minhpic View Post
ha ha, the ban da thu khai bao mot mang tring chu khong phai 1 tring nhu vay, sau do hien thi len lcd ntn?
minh nho cac ban giup
Không biết mục tiêu của bác là gì ?????
Bác muốn khai báo một mảng chứa nhiều string, thì có khác gì một mảng bình thường đâu.

Ví dụ bác có 3 string để hiển thị lên LCD là
+ "Chao em"
+ "Em xinh qua!"
+ "Em xinh the!"
Bác có thể khai báo một mảng:

int hi[] = "Chao emEm xinh qua!Em xinh the!";

Muốn hiển thị lên LCD string 1, bác cho 1 biến đếm tăng dần rồi truy xuất đến chuỗi cần hiển thị của bác là OK rồi.

Nhưng làm như vậy rất khó chịu, cứ khai báo 3 mảng khác nhau chứa 3 string trên.Khi cần truy xuất sẽ dễ dàng và chương trình nhìn sáng sủa hơn nhiều.

Chào!
__________________
Ngày mai bắt đầu từ ngày hôm nay

Bạn có thắc mắc, bạn cần sự hỗ trợ của các thành viên. Hãy đọc luồng này:
http://www.picvietnam.com/forum//showthread.php?t=1263
nhh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-11-2006, 06:28 PM   #8
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
Trích:
Nguyên văn bởi nhh View Post
Không biết mục tiêu của bác là gì ?????
Bác muốn khai báo một mảng chứa nhiều string, thì có khác gì một mảng bình thường đâu.

Ví dụ bác có 3 string để hiển thị lên LCD là
+ "Chao em"
+ "Em xinh qua!"
+ "Em xinh the!"
Bác có thể khai báo một mảng:

int hi[] = "Chao emEm xinh qua!Em xinh the!";

Muốn hiển thị lên LCD string 1, bác cho 1 biến đếm tăng dần rồi truy xuất đến chuỗi cần hiển thị của bác là OK rồi.

Nhưng làm như vậy rất khó chịu, cứ khai báo 3 mảng khác nhau chứa 3 string trên.Khi cần truy xuất sẽ dễ dàng và chương trình nhìn sáng sủa hơn nhiều.

Chào!
nhh chú ý: Bạn này đang hỏi về cách sử dụng Flash để lưu các hằng string.

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 15-11-2006, 06:26 PM   #9
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
Trích:
Nguyên văn bởi minhpic View Post
ha ha, the ban da thu khai bao mot mang tring chu khong phai 1 tring nhu vay, sau do hien thi len lcd ntn?
minh nho cac ban giup
Tôi không có hứng thú với CCS, cũng không có ý định thử những vấn đề mà bạn cần thực hiện trên mạch thực. Tôi chỉ đọc tài liệu của CCS và nhận thấy đó là cách thực hiện điều bạn đang muốn làm. Việc thử nghiệm là của bạn, nếu bạn có lòng muốn giúp đỡ các bạn khác thì post kết quả thử nghiệm lên đây.

Hơn nữa, ban đầu bạn hỏi cách khai báo và truy xuất một string trong ROM. Bây giờ bạn đang đặt câu hỏi tiếp theo hay cho rằng câu trả lời không đúng?

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 15-11-2006, 09:47 PM   #10
minhpic
Đệ tử 9 túi
 
Tham gia ngày: Nov 2005
Bài gửi: 99
:
Đúng là bạn chỉ đọc tài liệu thật, mình đã làm và thấy rất bất cập nên mới hỏi các bạn, đâu có thách đố ai, vả lại mình cần vì nó phụ thuộc vào thuật toán mình đang làm, có lẽ bạn cũng không thể biết, CCs còn đang lỗi về kiểu khai báo này, có rất nhiều điều có trong help nhưng lại không thể thực hiện được, mình nói lại mình chẳng có ý định gì cả, những điều mình hỏi là vì không làm được, bạn cũng chưa biết là viết hàm hiển thị một string lưu trong rom đúng không? mình nghĩ là chỉ xem help thôi thì bạn đừng nên quy chụp vội, tôi chưa bao giờ thách đố ai cả, vì trình độ tôi còn kém lắm, và mình cũng rất ngưỡng mộ kiến thức của bạn
minhpic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-11-2006, 10:25 PM   #11
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
Trích:
Nguyên văn bởi minhpic View Post
Đúng là bạn chỉ đọc tài liệu thật, mình đã làm và thấy rất bất cập nên mới hỏi các bạn, đâu có thách đố ai, vả lại mình cần vì nó phụ thuộc vào thuật toán mình đang làm, có lẽ bạn cũng không thể biết, CCs còn đang lỗi về kiểu khai báo này, có rất nhiều điều có trong help nhưng lại không thể thực hiện được, mình nói lại mình chẳng có ý định gì cả, những điều mình hỏi là vì không làm được, bạn cũng chưa biết là viết hàm hiển thị một string lưu trong rom đúng không? mình nghĩ là chỉ xem help thôi thì bạn đừng nên quy chụp vội, tôi chưa bao giờ thách đố ai cả, vì trình độ tôi còn kém lắm, và mình cũng rất ngưỡng mộ kiến thức của bạn
Tất nhiên là tôi biết cách hiển thị một string trong Flash lên LCD chứ, bạn có thể đọc tutorial 3 về dsPIC của tôi để kiểm tra. Tôi biết rằng CCS có một số nhược điểm, do đó tôi không có hứng thú với nó. Nhưng bạn vẫn muốn dùng CCS nên tôi mới đọc tài liệu giúp bạn. Tôi sẽ thử hiển thị một mảng string trong ROM lên LCD với CCS, và sẽ cho bạn biết kết quả sau.

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

thay đổi nội dung bởi: namqn, 15-11-2006 lúc 11:16 PM. Lý do: Nhầm số thứ tự tài liệu và số thứ tự của tutorial
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-11-2006, 02:01 PM   #12
minhpic
Đệ tử 9 túi
 
Tham gia ngày: Nov 2005
Bài gửi: 99
:
Rất cám ơn bạn, mình hiện tại vẫn phải đi đường vòng bằng cách xử dụng hàm strcopy để đưa các string từ rom sang ram, điều này rất bất tiện, mong bạn tìm cách khác hợp lý hơn giúp mình. Chân thành cảm ơn bạn.
minhpic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-11-2006, 06:21 PM   #13
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
Dưới đây là một ví dụ hiển thị mảng string gồm 2 string trong Flash lên LCD, tôi dùng PORTB để giao tiếp với LCD. Code đã được chạy thử. Tôi tin là bạn biết cách kết nối phần cứng giữa LCD và PIC.

Code:
#define use_portb_lcd TRUE

#if defined(__PCM__)
#include <16F877.H>
#device *=16
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)

#elif defined(__PCH__)
#include <18F452.H>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)
#endif

#include <lcd.c>

// CONSTANTS
byte const str_table [2][10] = {"Hello!", "Xin chao!"};

void main()   {

   lcd_init();
   delay_ms(6);
   
   //Print first line to LCD
   lcd_putc(str_table[0]);

   //Move to the beginning of the second line
   lcd_gotoxy(1, 2);
   
   //Print second line to LCD
   lcd_putc(str_table[1]);

   // loop always
   while(TRUE);
}
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 17-11-2006, 04:14 AM   #14
minhpic
Đệ tử 9 túi
 
Tham gia ngày: Nov 2005
Bài gửi: 99
:
Mình không biết nhưng lcd_putc() là hàm hiển thị lên lcd một ký tự mà bạn, bạn có nhầm không
minhpic vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-11-2006, 06:10 PM   #15
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
Trích:
Nguyên văn bởi minhpic View Post
Mình không biết nhưng lcd_putc() là hàm hiển thị lên lcd một ký tự mà bạn, bạn có nhầm không
Tài liệu của CCS nói rằng tuy lcd_putc() là hàm hiển thị ký tự, nhưng nó chấp nhận một string. Đó là điểm mở rộng của hàm vì nó sẽ thuận lợi hơn cho người sử dụng.

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
Trả lời


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

Similar Threads
Ðề tài Người gửi Chuyên mục Trả lời Bài mới
Đọc ghi Flash Program Memory hungpq MPASM 27 28-10-2009 04:43 PM
Ai giúp tôi làm mạch đo giao tiếp theo chuẩn 485 hp_dk1 Giao tiếp cổng COM và LPT 3 16-07-2008 01:27 PM
Chuẩn ICSP-BLD của picvietnam falleaf Cơ bản về vi điều khiển và PIC 1 24-01-2007 10:04 AM
về Pickit 1 FLASH Starter Kit hawinter Cơ bản về vi điều khiển và PIC 2 19-12-2006 01:16 AM
Nguồn chuẩn cho ADC của PIC16F877 mamen2006 PIC - Thiết kế và Ứng dụng 0 13-09-2006 05:23 PM


Múi giờ GMT. Hiện tại là 03:20 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