![]() |
Lại thắc mắc lệnh printf("%u",val_adc) , ADC 10 bit
Em đã làm dc giao tiếp ADC 8 bit gởi lên PC , bây giờ e đang làm 10 bit nhưng đang bí mong các bác chỉ giúp các thắc mắc sau:
#############thắc mắc 1 ################## int16 val_adc ; //biến đọc 10 bit ADC ..... val_adc = read_adc(); printf("%u",val_adc);// khi dịch thì chương trình báo lỗi " printf format type is invalid " // nếu em khai báo " int val_adc; " thì không báo lỗi. trong C thì int có kích thước là 2 byte. CCS thì int có kích thước 1 byte, int16 có kích thước 2 byte.Thực hư là thế nào ? Vậy với yêu cầu đọc ADC 10 bit em khai báo " int16 val_adc ;" là đúng chứ ? mà sao khi dịch thì bị báo lỗi như trên. ############ thắc mắc 2 ################### Ví dụ: val_adc = 1023 ; printf("%u",val_adc); // có phải sẽ gửi lần lượt gửi 1 ,0 , 2 , 3, không ? Rất mong các bác chỉ giúp thanks |
bạn xem kỷ lại xem trong hàm printf("%u",val_adc) biến nhập vào (val_adc) là dạng biến ji theo mình nó là unsigned char trong ccs nó là unsigned int8 do bạn
biến nhập hiện tại bạn đua vào là int16 báo lổi là chính xác %u là cho u int8 chú ý là bạn nên khai báo chình xác unsigned int16 hoặc là signed int16 thì se dùng: printf("%Lu",val_adc) hoặc printf("%Lu",val_adc) xem bảng này nha //============= c Character s String or character u Unsigned int d Signed int Lu Long unsigned int Ld Long signed int x Hex int (lower case) X Hex int (upper case) Lx Hex long int (lower case) LX Hex long int (upper case) f Float with truncated decimal g Float with rounded decimal e Float in exponential format w Unsigned int with decimal place inserted. Specify two numbers for n. The first is a total field width. The second is the desired number of decimal places. //============= >>Ví dụ: val_adc = 1023 ; >>printf("%u",val_adc); // có phải sẽ gửi lần lượt gửi 1 ,0 , 2 , 3, >>không ? theo mình là không .... |
%u in số 8 bits không dấu
%Lu in số 16 bits không dấu Trích:
|
%u in số 8 bits không dấu
%Lu in số 16 bits không dấu |
A ! em làm dc rồi.Vui quá !!!!!!!!!!!!!!!!! Cảm ơn các bác nhiều
Thank u so much much |
Cho em hỏi là lệnh printf này thực hiện trong bao lâu, em tìm hoài không thấy...cảm ơn các anh trước!
|
Trích:
|
Múi giờ GMT. Hiện tại là 05:41 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam