Hi !
Ich wollte mal probieren mit c (c18-compiler von microchip) ein mein display anzusteuern. aber irgendwie klappt wohl die Initialisierung des Displays nicht. Aber ich finde den Fehler nicht Könnt ihr da vielleicht mal drüber gucken? danke schonmal
Gruß

Code:
/** I N C L U D E S **********************************************************/

#include <p18f242.h>

#include "delays.h"

 

/** C O N F I G U R A T I O N ************************************************/

#pragma config OSC  = HS   //CPU=20 MHz

#pragma config PWRT = ON

#pragma config BOR  = OFF

#pragma config WDT  = OFF  //Watchdog Timer

#pragma config LVP  = OFF  //Low Voltage ICSP



/** D E C L A R A T I O N S **************************************************/

#define XRS  LATCbits.LATC4

#define XWR  LATCbits.LATC5

#define E    LATCbits.LATC6

#define text HALLO



#define DISPLAY_BREITE 20



/** C O D E **************************************************/

#pragma code



void LCD_Init(void);

void LCD_send_cmd(char command);

void send(void);

void main(void)

{

  LATB  = 0x00; 

  TRISB = 0x00;

  LATC  = 0x00;

  TRISC = 0x8f; //10001111, RC0 - RC3 input, RC4 - RC6 output

  LCD_Init();

} //end main 





//******************************** LCD ************************************
//*************************************************************************
//	LCD_Init():
//
//	Initialisierung des LCD-Displays.
//
//*************************************************************************

void LCD_Init()
{

	LCD_send_cmd(0x38); // Interface data length: 8 bit, zweizeilig, 5x7 Dots
	LCD_send_cmd(0x38); // Interface data length: 8 bit, zweizeilig, 5x7 Dots
	LCD_send_cmd(0x38); // Interface data length: 8 bit, zweizeilig, 5x7 Dots
	LCD_send_cmd(0x38); // Interface data length: 8 bit, zweizeilig, 5x7 Dots
	LCD_send_cmd(0x0E); // Display On: ON, Cursor ON, ohne Blinken
	LCD_send_cmd(0x01); // clear display
	LCD_send_cmd(0x06); // Entry Mode Set: inkrementieren / Cursor automatisch

} // LCD_Init

//*************************************************************************
//	LCD_send_char(char zeichen):
//
//	Ausgabe des Zeichens <zeichen> an der aktuellen Cursorposition.
//
//*************************************************************************

void LCD_send_char(char zeichen)
{


	LATB  = zeichen;
	send();
	Delay10KTCYx(63);


} // LCD_send_char

//*************************************************************************
//	LCD_send_cmd(char command):
//
//	Senden des Befehls <command> zum LCD-Display
//
//*************************************************************************

void LCD_send_cmd(char command)
{


	LATB 	= command;
	send();
	Delay10KTCYx(255);


} // LCD_send_cmd

//*************************************************************************
//	LCD_outtext(char x, char y,const char *text):
//
//	Ausgabe von <text> an der aktuellen Cursorposition.
//
//*************************************************************************

void LCD_outtext(char x, char y, const char *text)
{

	switch(y)
	{
		case 1:

			LCD_send_cmd(x + 0x07F);
			break;
		
		case 2:
			LCD_send_cmd(x + 0x0BF);
			break;

		case 3:
			LCD_send_cmd(x + 0x093);
			break;
			
		case 4:
			LCD_send_cmd(x + 0x0D3);
			break;
			
	} // switch(y)

	while(*text && (x++ <= DISPLAY_BREITE)) LCD_send_char(*text++);
	
} // LCD_outtext



void send()

{

	XWR   	= 0;

	XRS   	= 1;

	E	 	= 1;

	Delay10TCYx(1);

	E		= 0;

	XRS		= 0;
	XWR   	= 1;

}