Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

C coding help in MPLAB C18

Status
Not open for further replies.

engr.waqas

Full Member level 3
Joined
Jul 21, 2009
Messages
172
Helped
13
Reputation
26
Reaction score
10
Trophy points
1,298
Location
karachi,Pakistan
Activity points
2,342
mplab c18 lcd

I am putting analog input from 0 to 5 v in PIC 18.
Now the A/D result is saved in a register "result" type int.
Now i want to convert the values stored in "result" to ASCII and then to display on LCD.
I have Vref of A/D as 5 volt and using in 10 bit mode.
I want LCD to show fractional values too like 4.5 etc
can anyone give me its coding??
 

double to ascii c18

please go through the data sheet of the of the target processor and see the equation for the analog to digital conversation. the result in the ADC resister can be converted to the voltage and displayed on the LCD depending on the LCd the diaplay code will change
 

mplab c18 code

Code:
#include <stdio.h>

char buffer[8];

void convert(void)
  {
  int result;
  double voltage;

  voltage = (double)(result * 5.0 / 1024.0);
  sprintf(buffer, "%0.1f", voltage);
  }
 
double to int mplab

Dear Btbass
thanks a lot for your response but now i have problem that LCD data lines are connected to port D(D0 to D7).Now when i use the following code to send data stored in buffer[] i get syntax error.
PORTD=buffer[];
so how can i send the value stored in buffer[] to PORT D.
 

c18 lcd için printf

buffer is an array of char.
If you just want one decimal place, try

PORTD = buffer[0];
PORTD = buffer[1];
PORTD = buffer[2];
PORTD = buffer[3]; /* Will contain NULL */

or you could do it in a loop.
 

mplab c18 lcd printf

Dear engr.waqas

Use the following code to convert the ADC Count to get the Exact voltage Levels

Value = ReadADC(Channel Number)

value = (value * 5.00)/1024;

u get the value in decimal absoultue value. If u want in floating variables

Declare value as float

use this step
value = Readadc(channel number)
value = (value * 5)/1024;
printf("%f",value);

U get the value in floating point.
Check out this. If u need more i help u

Regards
Prabakaran
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top