PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > dsPIC - Bộ điều khiển tín hiệu số 16-bit

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

dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 28-04-2007, 11:48 AM   #1
daihang86
Đệ tử 1 túi
 
Tham gia ngày: Jun 2005
Bài gửi: 15
:
Gửi dữ liệu trong DSPIC lên máy tính !

Em đang cần gửi tốc độ động cơ đo được từ DSPIC 30F4011 lên máy tính, bác nào biết cách chuyển dữ liệu kiểu int sang char để gửi lên chỉ em phát, hay các bác biết cách nào hay hơn, cho em ý kiến.
daihang86 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 28-04-2007, 08:15 PM   #2
ngohaibac
Đệ tử 9 túi
 
ngohaibac's Avatar
 
Tham gia ngày: Oct 2005
Nơi Cư Ngụ: BKHN
Bài gửi: 231
:
Send a message via Yahoo to ngohaibac
Kiểu unsigned integer 2 byte biểu diễn được các số trong dải từ 0 đến 65535 tức là biểu diễn bằng 5 chữ số thập phân.

Do đó, cần chuyển số int sang chuỗi gồm 5 số.

Chương trình đơn giản như sau:

Code:
unsigned int value_int;
unsigned char  str[5] = "00000"; // Mảng kí tự sau khi chuyển
unsigned char i; // Biến chạy 
unsigned char temp, temp1;

temp = value_int;
i = 5;

while(i--){
     temp1 = temp %10;    // temp1 = temp mod 10
     temp  =  temp/10;      // temp = temp div 10
     str[i] += temp1;
};
Từ xâu đó bạn có thể gửi dữ liệu lên PC rùi đó.

Bạn hoàn toàn có thể thay đổi chương trình cho phù hợp với chuyển kiểu dữ liệu lớn hơn 2 byte.

Chúc bạn thành công.

thay đổi nội dung bởi: ngohaibac, 28-04-2007 lúc 10:42 PM.
ngohaibac vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-08-2008, 08:56 AM   #3
lcd_amptech
Đệ tử 2 túi
 
lcd_amptech's Avatar
 
Tham gia ngày: Feb 2008
Bài gửi: 35
:
số int=2byte, do đó ta có thể tách số int này thành 2 byte rồi gởi lần lượt từng byte một.
Chương trình ví dụ sau sẽ tách 2 byte và truyền về máy tính lần lượt từng byte. Chương trình viết bằng codeVision.

void main (void)
{
unsigned int dulieu;//khai bao bien so int
unsigned char bytethap;
unsigned char bytecao;

dulieu=1234; //giá trị ví dụ
bytethap=dulieu;
bytecao=dulieu>>8;//dịch sang phải 8 bit để lấy byte cao
putchar(bytethap);// truyen byte thap
delay_ms(50);
putchar(bytecao);//truyen byte cao
while(1);

}
lcd_amptech 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à 06:37 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