PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   dsPIC - Bộ điều khiển tín hiệu số 16-bit (http://www.picvietnam.com/forum/forumdisplay.php?f=29)
-   -   Gửi dữ liệu trong DSPIC lên máy tính ! (http://www.picvietnam.com/forum/showthread.php?t=1087)

daihang86 28-04-2007 11:48 AM

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.

ngohaibac 28-04-2007 08:15 PM

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.

lcd_amptech 08-08-2008 08:56 AM

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);

}


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

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam