Sorry, I assumed you were using an 18F, which can have problems with EEPROM Math.
Since you are using a 16F628, please ignore my previous comment.
Not sure why you would get that error with a 16F, so give this a try and let me know what happens.
Set you're OSC and LCD defines first ...
Code:<font color="#0000FF"><b><i>'----[EEPROM DATA]---------------------------------------------------------- </i></b></font><b>EEstring1 </b><font color="#008000"><b>DATA </b></font><font color="#FF0000">"Hello World!"</font>,<font color="#800000"><b>0 </b></font><font color="#0000FF"><b><i>; null-terminated strings in EEPROM </i></b></font><b>EEstring2 </b><font color="#008000"><b>DATA </b></font><font color="#FF0000">"Didn't expect That."</font>,<font color="#800000"><b>0 </b></font><font color="#0000FF"><b><i>'----[Variables / Aliases]-------------------------------------------------- </i></b></font><b>Idx </b><font color="#008000"><b>VAR BYTE </b></font><font color="#0000FF"><b><i>' String Index pointer </i></b></font><b>Char </b><font color="#008000"><b>VAR BYTE </b></font><font color="#0000FF"><b><i>' Character to display </i></b></font><b>String </b><font color="#008000"><b>VAR BYTE </b></font><font color="#0000FF"><b><i>' Pointer to String in EEPROM memory '----[Initialization]------------------------------------------------------- </i></b></font><b>CMCON </b>= <font color="#800000"><b>7 </b></font><font color="#008000"><b>LCDOUT </b></font><font color="#800000"><b>$FE</b></font>,<font color="#800000"><b>1</b></font>:<b>FLAGS</b>=<font color="#800000"><b>0</b></font>:<font color="#008000"><b>PAUSE </b></font><font color="#800000"><b>250</b></font>:<font color="#008000"><b>LCDOUT </b></font><font color="#800000"><b>$FE</b></font>,<font color="#800000"><b>1</b></font>:<font color="#008000"><b>PAUSE </b></font><font color="#800000"><b>250 </b></font><font color="#0000FF"><b><i>' Initialize LCD '----[Main program loop]---------------------------------------------------- </i></b></font><b>Main</b>: <font color="#008000"><b>LCDOUT </b></font><font color="#800000"><b>$FE</b></font>, <font color="#800000"><b>1 </b></font><font color="#0000FF"><b><i>' Clear LCD screen </i></b></font><b>String </b>= <b>EEstring1 </b>: <font color="#008000"><b>GOSUB </b></font><b>EEString2LCD </b><font color="#0000FF"><b><i>' Display String1 </i></b></font><font color="#008000"><b>PAUSE </b></font><font color="#800000"><b>1000 </b></font><font color="#008000"><b>LCDOUT </b></font><font color="#800000"><b>$FE</b></font>,<font color="#800000"><b>$C0 </b></font><font color="#0000FF"><b><i>' move cursor to Line2 </i></b></font><b>String </b>= <b>EEstring2 </b>: <font color="#008000"><b>GOSUB </b></font><b>EEString2LCD </b><font color="#0000FF"><b><i>' Display String2 </i></b></font><font color="#008000"><b>PAUSE </b></font><font color="#800000"><b>1000 </b></font><font color="#008000"><b>GOTO </b></font><b>Main </b><font color="#0000FF"><b><i>' Rinse & Repeat '----[Display the specified EE string]-------------------------------------- </i></b></font><b>EEString2LCD</b>: <b>Char </b>= <font color="#800000"><b>$FF </b></font><font color="#0000FF"><b><i>' Make sure Char > 0 to start </i></b></font><b>Idx </b>= <font color="#800000"><b>0 </b></font><font color="#0000FF"><b><i>' start at beginning of string </i></b></font><font color="#008000"><b>WHILE </b></font><b>Char </b>> <font color="#800000"><b>0 </b></font><font color="#0000FF"><b><i>' do Null-terminated string </i></b></font><font color="#008000"><b>Read </b></font><b>String </b>+ <b>Idx</b>, <b>Char </b><font color="#0000FF"><b><i>' get the character </i></b></font><font color="#008000"><b>IF </b></font><b>Char </b>> <font color="#800000"><b>0 </b></font><font color="#008000"><b>THEN LCDOUT </b></font><b>Char </b><font color="#0000FF"><b><i>' display the character,If>0 </i></b></font><b>Idx </b>= <b>Idx </b>+ <font color="#800000"><b>1 </b></font><font color="#0000FF"><b><i>' point to next character </i></b></font><font color="#008000"><b>WEND RETURN </b></font>




Bookmarks