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 14-11-2009, 05:49 PM   #1
leduy
Nhập môn đệ tử
 
Tham gia ngày: Nov 2008
Bài gửi: 6
:
Smile Cho hỏi: lệnh gán mảng trong CCS

Mình đang làm bài quang báo (dung 7 led đơn để hiển thị chữ mà hay gọi là led POV hay Property Led) dùng PIC 16f84a và viết bằng CCS.

Trong chưởng trình của mình có dùng thuật toán sử dụng gán mảng. Tức là mình đã có 1 mảng rồi (mảng A), và mình muốn dùng 1 mảng trống (mảng B) gán bằng A: B=A;

Nhưng trong CCS mình không biết dùng lệnh như thế nào để gán mảng A cho B cả. (mình đã đọc HELP rồi mà không tìm ra) .

Bác nào biết chỉ mình với.

Thanks!
File Kèm Theo
File Type: txt code.txt (22.6 KB, 165 lần tải)
leduy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-11-2009, 12:29 AM   #2
dung h
Đệ tử 4 túi
 
Tham gia ngày: May 2009
Bài gửi: 74
:
Trích:
Nguyên văn bởi leduy View Post
Mình đang làm bài quang báo (dung 7 led đơn để hiển thị chữ mà hay gọi là led POV hay Property Led) dùng PIC 16f84a và viết bằng CCS.

Trong chưởng trình của mình có dùng thuật toán sử dụng gán mảng. Tức là mình đã có 1 mảng rồi (mảng A), và mình muốn dùng 1 mảng trống (mảng B) gán bằng A: B=A;

Nhưng trong CCS mình không biết dùng lệnh như thế nào để gán mảng A cho B cả. (mình đã đọc HELP rồi mà không tìm ra) .

Bác nào biết chỉ mình với.

Thanks!
bạn chỉ cần thục hiện 1 vòng lặp for gán từng phần tử của mảng a[i] cho mảng b[i]

int8 i;
for(i=0;i<so_pt_mang;i++)
b[i]=a[i];

khi đó sẽ sao chép từng phần tử mảng a sng mảng b
bạn thử xem!
dung h vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 19-11-2009, 11:02 PM   #3
leduy
Nhập môn đệ tử
 
Tham gia ngày: Nov 2008
Bài gửi: 6
:
Trích:
Nguyên văn bởi dung h View Post
bạn chỉ cần thục hiện 1 vòng lặp for gán từng phần tử của mảng a[i] cho mảng b[i]

int8 i;
for(i=0;i<so_pt_mang;i++)
b[i]=a[i];

khi đó sẽ sao chép từng phần tử mảng a sng mảng b
bạn thử xem!
UHM, CẢM ƠN BẠN NHÉ. KHI MÌNH DÙNG THUẬT NÀY THÌ DÙNG OK.

SẲNG CHO MÌNH HỎI, BÁC NÀO CÓ TỪNG HAY ĐANG LÀM VỀ CÁI LED ĐƠN QUAY HIỂN THỊ NÀY CHƯA (DUNG 1 MOTOR RỒI ĐẶT CẢ BOARD MẠCH LÊN ĐÓ ĐỂ QUAY, ĐỂ DÙNG LED ĐƠN VÀ HIỂN THỊ RA CHỮ) . MÌNH ĐANG LÀM ĐỒ ÁN MÔN HỌC CÁI NÀY (hiii ) . NÓI CHUNG LÀ CŨNG CHƯA HOÀNH THÀNH. ĐANG LÀM THÔI. BÁC NÀO LÀM RỒI MÌNH TRAO ĐỔI KINH NGHIÊM NHÉ. MÌNH DUNG PIC 16F84A.

CHƯƠNG TRÌNH MÌNH VIẾT NÓ CHIẾM 94%ROM VÀ 75%RAM ,THẤY CHIẾM NHIỀU DUNG LƯỢNG QUÁ NÊN MÌNH KO DÁM NẠP. SỢ CHÉT PIC QUÁ.
MÀ KHÔNG NẠP THÌ CHẢNG BIẾT THẾ NÀO. CÁI NÀY KHÔNG THỂ MÔ PHỎNG ĐƯỢC.

CÁC BÁC NGHĨ SAO? CHO MÌNH Ý KIẾN VỚI.
leduy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 20-11-2009, 12:27 AM   #4
dung h
Đệ tử 4 túi
 
Tham gia ngày: May 2009
Bài gửi: 74
:
cái này người ta dùng động cơ bước và các led đơn để làm. bằnn cách tính góc quay của động cơ bước thì tại góc đó ta cho led nào sáng .khi động cơ quay nhanh thì do hiện tương lưu ảnh của mắt nên ta có thể hiện dc các chữ.
Code:
 CHƯƠNG TRÌNH MÌNH VIẾT NÓ CHIẾM 94%ROM VÀ 75%RAM ,THẤY CHIẾM NHIỀU DUNG LƯỢNG QUÁ NÊN MÌNH KO DÁM NẠP. SỢ CHÉT PIC QUÁ.
MÀ KHÔNG NẠP THÌ CHẢNG BIẾT THẾ NÀO. CÁI NÀY KHÔNG THỂ MÔ PHỎNG ĐƯỢC.
bạn có thể mượn dòng pic khác có dung lượng bộ nhớ cao hơn để thử vd pic 18f chẳng hạn nó có 16k đấy
chương trình bạn viết song phải test thử trên mạch thật cho nó trực quan chứ!!!!
mong bạn có thể hoàn thành dc nó!!!1
dung h vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2013, 11:15 PM   #5
vinhtdh
Nhập môn đệ tử
 
Tham gia ngày: Mar 2013
Bài gửi: 4
:
anh chị ơi . cho em hỏi chuyển từ đoạn code này từ c sang asm làm như thế nào em dùng asm để lập trình cho con pic 16f84 ) help me:
a0=a1
a1= PỎTA,0
if (a0=1 && a1==0)
{
x=x+1
}
thanks mọi người nhiu nha
vinhtdh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-04-2013, 11:17 PM   #6
vinhtdh
Nhập môn đệ tử
 
Tham gia ngày: Mar 2013
Bài gửi: 4
:
Help me (pic16f84)

anh chị ơi . cho em hỏi chuyển từ đoạn code này từ c sang asm làm như thế nào em dùng asm để lập trình cho con pic 16f84 ) help me:
a0=a1
a1= PORTA,0
if (a0=1 && a1==0)
{
x=x+1
}
thanks mọi người nhiu nha
vinhtdh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-11-2009, 03:01 PM   #7
dung h
Đệ tử 4 túi
 
Tham gia ngày: May 2009
Bài gửi: 74
:
Trích:
Nguyên văn bởi bbaacc01 View Post
Sao bạn không thử cho địa chỉ của mảng B trùng mảng A luôn, khi đó mảng B sẽ có các phần tử chứa giá trị y chang mảng A vì nó cùng một địa chỉ.
Giả sử sau phép gán B = A bạn muốn sử dụng mảng A vào chuyện gì đó, rồi lại gán B = A thì truớc khi đổi địa chỉ B = A, bạn cho địa chỉ B vào một giá trị tạm, rồi cho địa chỉ B bằng A, sau đó cho địa chỉ A bằng giá trị tạm (tức là thao tác đổi địa chỉ cho nhau)
Bạn xem thêm khái niệm con trỏ ( pointer?) để làm việc này nhé.
nếu bạn làm vậy thì khi thây đổi mảng A thì dẫn tới thay đổi luôn giá trị mảng B ,2 mảng này là 1
thế thì bạn cần gì khai báo 2 mảng ?
mục đích của ta là cất giá trị của nó đi vào vùng nhớ khác chống mất dữ liêu hay đem xử lý yêu cầu khác liên quan tới 1 số giá trị của A
dung h 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


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