Trích:
Nguyên văn bởi conglong
Thầy Nam cho em hỏi: giả sử em đã có hàm hiện thị LCD là:
Void LCD_putstr(char *buffer)
Vậy em phải làm sao để hiển thị giá trị của một thanh ghi nào đó (ví dụ như thanh ghi PR1) lên LCD hả thầy?.
Em đã thử gọi như sau nhưng không được :
LCD_putstr(PR1) ;
Trong khi đó em gọi hàm này với đối số là chuối kí tự thì được.
Em cảm ơn thầy nhiều !
Trân trọng !
|
Thanh ghi PR1 là một thanh ghi 16-bit, và được trình biên dịch xem như một số có kiểu int. Do đó, bạn không thể dùng nó làm đối số cho hàm LCD_putstr() của bạn.
Để hiển thị giá trị của thanh ghi này lên LCD, bạn cần chuyển giá trị int của nó thành một chuỗi ký tự. Với MPLAB C30, bạn có thể dùng hàm sprintf() để làm việc này. Ví dụ cụ thể với chuỗi buffer của bạn:
Code:
sprintf(buffer, "%d", PR1);
Sau lệnh này, buffer sẽ chứa chuỗi ký tự biểu diễn giá trị của PR1 trong hệ thập phân. Phần format ("%d") giống như của printf(), bạn tham khảo thêm về các option định dạng khác.
Thân,