View Full Version : Gửi dữ liệu trong DSPIC lên máy tính !
daihang86
28-04-2007, 11:48 AM
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:
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);
}
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.