Jump to content
Sign in to follow this  
Gues7

Hd44780 Lcd Woes...

Recommended Posts

I have been trying to get the LCD Driver routines working on the PIC16F684 (Which is properly defined in the project file) however, when executing the lcd_setup(), lcd_clear() and lprintf() functions I get errors, the lcd_driver.h file is definitely included. I have also checked the lcd sample project to ensure I wasnt missing any other header or library files from the project, I dont believe I am...

 

The code I am using is:

/*

BoostC HD44780 Interface

*/

#include <system.h>
#include <lcd_driver.h>

//#prgama CLOCK_FREQ 8000000
#pragma DATA _CONFIG, _BOD_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & 0x3FFC & _HS_OSC & _CP_OFF & _IESO_OFF & _FCMEN_OFF & _CPD_OFF
/*						1			2			3			4			5				6			7			8			9			10
1: BROWNOUT DETECT DISABLED
2: MCLR DISABLED
3: POWER UP TIMER ENABLED
4: WATCH DOG TIMER DISABLED
5: INTERNAL OSC, NO OUTPUT
6: HIGH SPEED OSC
7: CODE PROTECT DISABLED
8: INTERNAL/EXTENRAL SWITCHOVER DISABLED
9: FAIL SAFE CLOCK MONITOR DISABLED
10: EEPROM CODE PROTECT DISABLED */

#define LCD_ARGS	 2, 1, portc, trisc, porta, trisa, 0, 1, 2
/*				   1  2  3	  4	  5	  6	  7  8  9
1: 4BIT INTERFACE MODE, NOW NIBBLE
2: USE BUSY SIGNAL, NOT DELAYS
3: USE PORTC FOR DATA REGISTER
4: THE TRIS ADDRESS FOR PORTC
5: USE PORTA FOR CONTROL REGISTER
6: THE TRISS ADDRESS FOR PORTA
7: BIT NUMBER OF CONTROL PORT FOR RS
8: BIT NUMBER OF CONTROL PORT FOR RW
9: BIT NUMBER OF CONTROL PORT FOR EN */

void main(void){
cmcon0 = 0;		//DISABLE COMPARATORS
adcon1 = 14;
porta = 0;		//CLEAR PORTA
portc = 0;		//CLEAR PORTC

//char myString[5] = ['G', 'u', 'e', 's', '7'];		//THE STRING TO BE OUTPUT
int i;

lcd_setup();	//ENSURE EVERYTHING IS READY FOR THE LCD
lcd_clear();	//CLEAR THE LCD

for(i=0; i<=4; i++) {	//LOOP THROUGH THE ELEMENTS IN THE ARRAY
	lprintf("Gues7");	//AND PRINT THEM TO THE LCD
}//rof

while(1);

}//naim

 

And the errors I receive are:

Building...

BoostC Optimizing C Compiler Version 6.81 (for PIC16 architecture)

http://www.sourceboost.com

Copyright© 2004-2007 Pavel Baranov

Copyright© 2004-2007 David Hobday

 

Licensed to MAPL50468 under Single user Standard License for 1 node(s)

Limitations: PIC12,PIC16 max code size:4096 words, max RAM banks:Unlimited, Non commercial use only

 

 

HD44780.c

 

failure

C:\Program Files\SourceBoost\Samples\C\BoostC\myProjects\HD44780.c(46:2): error: failed to generate expression

C:\Program Files\SourceBoost\Samples\C\BoostC\myProjects\HD44780.c(47:2): error: failed to generate expression

C:\Program Files\SourceBoost\Samples\C\BoostC\myProjects\HD44780.c(50:2): error: failed to generate expression

"C:\Program Files\SourceBoost\boostc.pic16.exe" HD44780.c -t PIC16F684

Exit code was 1.

Removing target: HD44780.obj

Failed to locate output file 'C:\Program Files\SourceBoost\Samples\C\BoostC\myProjects\HD44780.hex'

Done

 

Failed

 

At the minute, I am just trying to learn all og the functions of the BoostC libraries so in the event of having to use them, I can do it in a snap, any help on the matter would be much appreciated.

 

Thanks :P

 

 

Also... just an FYI for Dave, I got an error regarding _INTRC_OSC_NOCLK when I was using it in my device configuration... so I read the value out of the header file and that works without a problem... it seems the compiler had not got _INTRC_OSC_NOCLK defined, although it IS in the header file, and it IS spelled correctly (first thing I checked)

Share this post


Link to post
Share on other sites

Anyone have any ideas? I've tried a load of things such as including the header files in the project, copying the template out into it... I cant find any significant difference between this and the example...

 

Thanks in advance :P

Share this post


Link to post
Share on other sites

Many thanks Carlos, it is indeed working now, it appears the #define arguments for the lcd display must be included BEFORE the #include <lcd_driver.h>.

 

Also, there is an error in my #define LCD_ARGS thingy :P

 

Thanks Carlos!

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×