I have written a code for getting input from ADC 0804 and then display the value on 16x2 lcd I need help in writing a function to convert ADC output into a value which can be displayed in 16x2 lcd. ADC is used to convert temperature output from lm35. 5V supply voltage and Vref=2.5V. I need code for - convert_display(value) Also keil compiler gives error - adc_inter.c(16): error C141: syntax error near '='. I am unable to understand what should be done?
#include <reg51.h> #include <stdio.h> #include <string.h> void msdelay(unsigned int time); void convert_display(unsigned char value); #define RD P2^5; #define WR P2^6; #define INTR P2^7; unsigned long MYDATA;
void main() { unsigned char value; MYDATA = P1; MYDATA = 0xFF; INTR = 1; RD = 1; WR = 1; while(1) { WR=0; WR=1; while(INTR==1) { } RD=0; value=MYDATA; convert_display(value); RD=1; } }
void msdelay(unsigned int time) { unsigned char x,y; for(x=0;x<=time;x++) for(y=0;y<=1275;y++); }
The #defines don't need semicolons?
oh! that was big shot. thanks for help. Still I am unable to understand bit handling. for expression - RD = 1; I get an error - " syntax error near '=' " I didn't get what does it mean?
I didn't get what does it mean? It means you may have thanked us for the help, but you didn't actually follow it.
So post the current failing code, using PRE tags so the formatting is clear.
#include <reg51.h> #include <stdio.h> #include <string.h> void msdelay(unsigned int time); void convert_display(unsigned char value);
int INTR; #define RD = P2^5 #define WR = P2^6; unsigned long MYDATA;
void main() { unsigned char value; RD = 1; WR = 1; INTR = P2^7; INTR = 1; MYDATA = P1; MYDATA = 0xFF; while(1) { WR=0; WR=1; while(INTR==1) { } RD=0; value=MYDATA; convert_display(value); RD=1; } }
void convert_display(unsigned char value) { unsigned char x,d1,d2,d3; x=value/10; d1=value%10; d2=value/10; d3=x/10; P0=d1; msdelay(250); P0=d2; msdelay(250); P0=d3; msdelay(250); }
Error is displayed at line 15,16,23,27,30. Error - "syntax error near '=' ". At every line I pass some int value to WR,RD, error is displayed.
The preprocessor is an _almost_ totally stupid search-and-replace function.
You have
#define RD P2^5;
So where you use RD, the preprocesor removes RD and inserts "P2^5;". How fun is that in your expression:
RD = 1;
where you end up with
P2^5; = 1;
Does the above look like valid C code? How many ';' does it take for a single C statement?
int INTR; #define RD = P2^5 #define WR = P2^6 unsigned long MYDATA;
Error - syntax error near '='. I think I'm making some mistake in passing value to RD,WR
Read the posting notes lest it be obvious you didn't bother. Place source code between PRE tags, otherwise the line relationships are lost. http://www.keil.com/forum/tips.asp
Too late - it is obvious!
And if you can so totally fail to spot & follow such such obviously-placed, clearly-stated, easy instruction - even having had them pointed-out to you several times - that doesn't bode well for success in any kind of programming.
www.danlhenry.com/.../keil_code.png
View all questions in Keil forum