سلام
1-فرکانس pwm فقط به محاسبات انجام شده در برنامه و فرکانس کریستال وابسته هست ، در صورتی که بر روی هر دو سخت افزار ( برد برد و فیبر مدار چاپی ) یک برنامه رو پروگرام میکنید ، احتمالا مشکل از کریستال هست . ممکنه مقادیر کریستال ها متفاوت باشه .
2-با استفاده از دستور sprintf متغیر اعشاری رو به char تبدیل کنید و بعد اون رو به صورت رشته بر روی lcd نمایش بدید :
کد:
set_adc_channel(0);
adc = read_adc(); // Read a value from the ADC
sprintf(voltage, "%f", (float)adc * .01960784); // Converts adc to text
voltage[4] = '\0'; // Limit shown digits to 3