|
Tài trợ cho PIC Vietnam |
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 |
|
Ðiều Chỉnh | Xếp Bài |
28-04-2007, 11:48 AM | #1 |
Đệ 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.
|
28-04-2007, 08:15 PM | #2 |
Đệ tử 9 túi
|
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; }; 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. |
08-08-2008, 08:56 AM | #3 |
Đệ tử 2 túi
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); } |
|
|