Em dùng bản CCS 4.104 thấy có vấn đề như sau không biết có ai gặp chưa:
Khi thao tác sử dụng kiểu con trỏ đế truy cập biến 16 hoặc 32 bit thì gặp rắc rối như sau:
vd:
int16 giatri=1000;
int16 *bien;
int16 temp;
int8 hi_byte,lo_byte;
*bien=giatri;
lo_byte= (int8*)*(bien);
high_byte = (int8*)*(bien+1);
///ket qua lo_byte = 0xE8; hi_byte = 0 (dung ra hi_byte=0x03);
/// luon luon gia tri hi_byte =0 tuc la em chi nhan duoc 1 byte thap la OK thoi.
///////////
Em test cach khac nhu sau:
lo_byte = *(&giatri);
hi_byte = *(&giatri+1);
//ket qua van nhu cu, tuc la gia tri hi_byte =0;
////
Em chuyen sang dung CCS 3.248 de compile thi ket qua luon dung, con voi CCS 1.104 thi ket qua luon sai o cac byte khac, em nghi dung ban crack cua em chua on dinh, co le no chua cho phep thao tac kieu con tro.
Ai co ban 4.104 on dinh mot chut (da duoc kiem chung) thi share cho em voi. Em muon dung Version nay de thao tac voi dsPIC.
Thanks nhieu
|