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 Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 19-04-2011, 02:13 PM   #1
tornado1990
Nhập môn đệ tử
 
Tham gia ngày: May 2010
Bài gửi: 2
:
Về char trong CCS

Xin chào mọi người!
Mình tham gia diễn đàn khá lâu rồi tuy nhiên chưa có đóng góp nào cả. Mặc dù vậy cũng mong các bậc đàn anh chỉ bảo thêm các vấn đề mà bản thân còn chưa hiểu
Code:
 //chuong trinh chuyen ki tu can hien thi ra ma font
void Convert(unsigned int source)
{
	unsigned int position,i;
	position=(source>39)? (source-40)*6:0;
	position=(source==32)? 88*6:position;
	position=(source==87)? 87*6:position;
	for(i=position;i<(position+6);i++)
	{
		Array[d]=ma[i];
		if(source==0) Array[d]=0;
		d++;
	}
	
}
là một đoạn code để chuyển string sang mã led hiển thị trên led matrix, ma[] là một mảng lớn chứa các mã font 7x6 của các chữ cái phục vụ quét
Code:
unsigned char code ma[]={0,
0,62,65,65,0,0,			//(				0
0,65,65,62,0,0,			//)			  	1
16,56,60,56,16,0,		//*				2
8,8,127,8,8,0,			//+				3
0,0,9,18,28,0,			//,				4
8,8,8,8,8,0,			//-				5
0,7,5,7,0,0,			//.				6
1,2,28,32,64,0,			///				7
62,65,65,65,62,0,		//0				8
17,33,127,1,1,0,		//1				9
35,69,73,73,49,0,		//2				10
34,65,73,73,54,0,		//3				11
12,20,36,79,4,0,		//4				12
114,73,73,73,70,0,		//5				13
62,73,73,73,38,0,		//6				14 
65,66,68,72,112,0,		//7				15
54,73,73,73,54,0,		//8				16
50,73,73,73,62,0,		//9				17
0,0,99,99,0,0,			//:				18
0,0,101,102,0,0,		//;				19
0,8,20,34,65,0,			//<				20
9,9,9,9,9,0,			//=				21
65,34,20,8,0,0,			//>				22
0,48,64,77,48,0,		//?				23
62,65,89,56,0,0,		//@				24
63,68,68,68,63,0,		//A				25
127,73,73,73,54,0,		//B				26
62,65,65,65,34,0,		//C				27
127,65,65,65,62,0,		//D				28
127,73,73,73,65,0,		//E				29
127,72,72,72,64,0,		//F				30
62,65,73,73,46,0,		//G				31
127,8,8,8,127,0,		//H				32
65,65,127,65,65,0,		//I				33
70,65,65,126,64,0,		//J				34
127,8,20,34,65,0,		//K				35
127,1,1,1,1,0,			//L				36
127,32,24,32,127,0,		//M				37
127,32,16,8,127,0,		//N				38

....// còn nhiều nữa
....//
}
Code:
void send_str(unsigned char *str,unsigned char color,unsigned char position,bit shi)
{
	unsigned char x,y=0;
	g_r=color;
	//nap font 12 ki tu vao mang Array de hien thi
	d=0;
	y=0;
	while(y<12)
	{
		if(*str!='\0')
		{
			Convert(*str);
			str++;
		}
		if(*str=='\0') Convert(0);
....//// còn nữa
Vấn đề của em là chỗ "unsigned char *str" dấu * ở đây có ý nghĩa gì, biến kiểu này em biết là 8bit không dấu nhưng trong bài giá trị cho ra của nó là gì? Chẳng hạn send_str("A") thì *str là số có giá trị ra sao? Có phải là mã ASCII không? Các chỗ so sánh *str=='\0' có ý nghĩa như thế nào?
Code:
send_str("Nhiet do phong hien tai la:",orange,0,1);
Em là newbie trong vụ CCS này, tuy có đọc nhiều tài liệu do các anh gởi nhưng cũng chưa thể "thông" hết được. Code trên là của một bài mẫu do một thành viên post lên tuy nhiên bài đã khá lâu rồi với lại do download nhiều quá nên cũng chả nhớ phải tìm lại ở đâu!
Rất mong nhận được sự giúp đỡ của mọi người!
tornado1990 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 

Tags
ccs, led matrix, quang báo, xử lý chuỗi

Ðiều Chỉnh
Xếp Bà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


Múi giờ GMT. Hiện tại là 09:06 PM.


Đượ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