PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > MPASM

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

MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 07-02-2010, 08:26 AM   #1
nbb3i
Đệ tử 2 túi
 
Tham gia ngày: Aug 2008
Nơi Cư Ngụ: Hà Nội
Bài gửi: 45
:
Hỏi về lệnh ASM tương đương và số chu kỳ máy mà PIC xử lý

Trước đây mình mới chỉ tìm hiểu về PIC thông qua ngôn ngữ C và trình dịch CCS. Bây giờ muốn quay lại nghiên cứu lại ngôn ngữ ASM để có thể hiểu sâu hơn về phương thức làm việc của dòng vi xử lý này.
Bạn nào có thể giúp mình giải đáp thắc mắc sau đây với:
Code:
#define DATA input(PIN_B0)
int32 pointer[];
int32 counter=0,timer=0;
for(counter=1;counter<10000000;counter++)
{
    if (DATA==1) 
    {
         pointer[timer]=counter;
         timer++;
    }
    while(DATA==1) counter++;
}
Đoạn trên mình định lập trình để ghi lại sườn lên của một tín hiệu chu kỳ lớn nhưng bề rộng xung nhỏ. trong vòng for gồm 2 lệnh là tăng counter và so sánh DATA. Tuy nhiên thắc mắc của mình là:
- Những lệnh trên có thể viết lại bằng ASM như thế nào?
- Số chu kỳ lệnh tương xứng với các lệaanh ASM đó có tính được hay không?

Ai biết xin giải đáp giúp mình với nhé! Xin cảm ơn!

thay đổi nội dung bởi: nbb3i, 07-02-2010 lúc 11:02 AM.
nbb3i vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 09-02-2010, 06:34 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
Trích:
Nguyên văn bởi nbb3i View Post
Trước đây mình mới chỉ tìm hiểu về PIC thông qua ngôn ngữ C và trình dịch CCS. Bây giờ muốn quay lại nghiên cứu lại ngôn ngữ ASM để có thể hiểu sâu hơn về phương thức làm việc của dòng vi xử lý này.
Bạn nào có thể giúp mình giải đáp thắc mắc sau đây với:
Code:
#define DATA input(PIN_B0)
int32 pointer[];
int32 counter=0,timer=0;
for(counter=1;counter<10000000;counter++)
{
    if (DATA==1) 
    {
         pointer[timer]=counter;
         timer++;
    }
    while(DATA==1) counter++;
}
Đoạn trên mình định lập trình để ghi lại sườn lên của một tín hiệu chu kỳ lớn nhưng bề rộng xung nhỏ. trong vòng for gồm 2 lệnh là tăng counter và so sánh DATA. Tuy nhiên thắc mắc của mình là:
- Những lệnh trên có thể viết lại bằng ASM như thế nào?
- Số chu kỳ lệnh tương xứng với các lệaanh ASM đó có tính được hay không?

Ai biết xin giải đáp giúp mình với nhé! Xin cảm ơn!
Nếu bạn chỉ muốn biết các lệnh trên được viết thế nào bằng hợp ngữ thì có thể mở file listing của trình dịch C để xem đoạn mã hợp ngữ tương ứng (tính năng này thường có trong các trình dịch C, nhưng tôi không dùng CCS C nên không rõ trình dịch đó có tính năng này hay không, với các trình dịch C của Microchip thì tôi biết chắc là có tính năng này).

Nếu đã có đoạn mã hợp ngữ thì có thể tính được số chu kỳ lệnh tươ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 18-02-2010, 11:03 PM   #3
nghia_tdh21
Đệ tử 3 túi
 
nghia_tdh21's Avatar
 
Tham gia ngày: Oct 2006
Bài gửi: 46
:
Như anh Nam đã nói, muốn biết câu lệnh ASM tương ứng như thế nào thì trong mỗi trình dịch đều có chức năng View Assembly (MikroC). Tuy nhiên nếu nbb3i muốn làm các ứng dụng đòi hỏi đáp ứng thời gian thực có độ chính xác cỡ mili giây tốt nhất là nên dùng ngắt timer thì chính xác và chương trình cũng dễ kiểm soát hơn.
__________________
http://www.hieunghia.info
Lướt web thoải mái với USB3G của Viettel
http://www.hieunghia.info/tin-cong-n...3g-vietel.html
-----------------------------------------------------------------------------------
Một chút giận,hai chút tham,lận đận cả đời ri cũng khổ.
Trăm điều lành,ngàn điều nhịn,thong dong tấc dạ rứa mà vui
nghia_tdh21 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à 07:38 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