Hallo,

ich habe das Problem gefunden. Hier nochmal mein kompletter Code für EasyPIC6 - GLCD:
main.c
Code:
#include "glcd.h"
int q = 0;

void main() {
  ANSEL  = 0;            // Configure AN pins as digital
  ANSELH = 0;
  C1ON_bit = 0;          // Disable comparators
  C2ON_bit = 0;
     glcd_init();
     glcd_delete_display();
    while(1)
    {
            glcd_draw_point(68,q,1);
            q = q+1;
            Delay_ms(500);
            if(q == 63){
                 q = 0;
                 
            }
    }

     while(1);//Endlosschleife

}
glcd.c
Code:
#include "glcd.h"
  char page = 0;
  char b = 0;
  char n = 0;
  char input = 0;
void glcd_init(){
/*Initialize the display.*/
 Delay_ms(250);
  TCS1 = 0; //Pin: output
  TCS2 = 0;
  TRS  = 0;
  TRW = 0;
  TE = 0;
  TDB = 0;
  //Values:
  CSE = 0;
  CSZ = 0;
  RS = 0;
  RW = 0;
  E = 0;
  DB = 0;
   glcd_display_select(1);//Choose IC1
   glcd_display_off();
   glcd_display_on();
   glcd_display_select(2);//Choose IC2
   glcd_display_off();
   glcd_display_on();

}
void glcd_draw_point(char x, char y, char filled){
/*
x : x-chord
y: y-chord
filled: 1: filled or 0: unfilled
*/
      page = y / 8;
      b = glcd_read_page(x, page);
      n = page * 8;
      n = y - n;
      n = 1 << n;
      if(filled > 0 ){
                glcd_draw(x, page, (b | n));
      }else{
            n = !n;
            glcd_draw(x, page, (b & n));
      }

}

void  glcd_display_select(char controller){
/*Chip select*/
       if(controller == 1){
           CSE = 0;
           CSZ = 1;
       }else{
            CSE = 1;
            CSZ = 0;
       }
}
void glcd_draw(char x, char page, char byte){
/*Write byte to DDRAM(x |page).*/
     if(x>=64){
               glcd_display_select(2);
               glcd_setAddress(x-64);
      }else{
            glcd_display_select(1);
            glcd_setAddress(x);
      }
     glcd_setPage(page);
     glcd_write(byte);
}
void glcd_display_off(){
/*Switch the display off*/
     RS = 0;
     RW = 0;
     DB = 62;
     glcd_execute();
}
void glcd_display_on(){
/*Switch the display on*/
     RS = 0;
     RW = 0;
     DB = 63;
     glcd_execute();
}
void glcd_execute(){
      //Executes the comand on DB
      E = 1;
      //Delay_ms(0);
      E = 0;
      Delay_ms(1);
}
void glcd_setAddress(char address){
//Set the Address in DDRAM
       RS = 0;
       RW = 0;
       DB = 64 + address;
       glcd_execute();
}
void glcd_setPage(char page){
//Set the Page in DDRAM
       RS = 0;
       RW = 0;
       DB =  184 + page;
       glcd_execute();
}
void glcd_write(char byte){
//Write byte into the display
     DB = byte;
     RS = 1;
     RW = 0;
     glcd_execute();
}
void glcd_delete_display(){
//Delete all points
     b = 0;
     while(b < 8){
       n = 0;
       while(n < 128){
               glcd_draw(n, b, 0);
               n++;
       }
       b++;
     }
}
char glcd_read_page(char x, char page){
//Returns read page
       if(x>=64){
              glcd_display_select(2);
              glcd_setAddress(x-64);
     }else{
              glcd_display_select(1);
              glcd_setAddress(x);
     }
     glcd_setPage(page);
     return glcd_read();
}
char glcd_read(){
//Read the ddram
  TDB = 0xFF; //Databus-Pins: Input
  RS = 1;  //Control-wires: RS: H / R/W: H
  RW = 1;
  E = 1;        ///Dummy-Read
    Delay_ms(1); //Wait 1 ms
  E = 0;
    Delay_ms(1); //Wait 1 ms
  Delay_ms(1); //Wait 1 ms
  E = 1; //ENABLE: H
  Delay_ms(1); //Wait 1 ms
  input = DB;  //Read Databus
  E = 0;  //ENABLE: L
  RS = 0;
  RW = 0;
  TDB = 0;  //Databus-Pins: Output

  return input;
}
glcd.h:
Code:
#define TCS1 TRISB.F0
#define TCS2 TRISB.F1
#define TRS TRISB.F2
#define TRW TRISB.F3
#define TE TRISB.F4
#define TDB TRISD
#define TRST TRISB.F5
#define CSE PORTB.F0
#define CSZ PORTB.F1
#define RS PORTB.F2
#define RW PORTB.F3
#define E PORTB.F4
#define DB PORTD
#define RST PORTB.F5

void glcd_init();
void glcd_draw_point(char x, char y, char filled);
void glcd_draw(char x, char page, char byte);
void glcd_display_select(char controller);
void glcd_display_on();
void glcd_display_off();
void glcd_execute();
void glcd_setAddress(char address);
void glcd_setPage(char page);
void glcd_write(char byte);
void glcd_delete_display();
char glcd_read();
char glcd_read_page(char x, char page);
MfG Sebastian