//***************************************************************************** // Pixel // Input: Zeile,Spalte,Set/Clear // Output: - //***************************************************************************** void glcd_PIXEL(unsigned int ui_x,unsigned int ui_y, unsigned char uc_show1) { unsigned int ui_addr; // memory address of byte containing pixel to write unsigned int ui_xn; unsigned int ui_pixels; if ((ui_x >= glcd_XMAX) || (ui_y >= glcd_YMAX)) return; if (glcd_BYTES_PER_ROW > 30) ui_pixels = 6; else ui_pixels = 8; ui_addr = ui_y * glcd_BYTES_PER_ROW * ui_pixels + ui_x; //Pixel, was veraendert werden soll ui_xn = ui_addr; ui_addr = ui_addr /ui_pixels; //n-tes Byte ermitteln ui_xn= ui_xn - ui_addr * ui_pixels; //Bitposition ermitteln ui_addr = ui_addr + G_BASE; //RAM Adresse ermitteln glcd_set_address(ui_addr); // set LCD addr. pointer if (uc_show1) glcd_cput(0xf8 | ((ui_pixels -1) - ui_xn %8)); //entsprechende Bitposition setzen else glcd_cput(0xf0 | ((ui_pixels -1) - ui_xn %8)); //oder ruecksetzen } void glcd_setpixel(int column, int row) // set single pixel in 240x64 array { glcd_PIXEL(column,row,1); } void glcd_clrpixel(int column, int row) // set single pixel in 240x64 array { glcd_PIXEL(column,row,0); } //***************************************************************************** // GetPixel // Input: x,y // Output: 0,1 //***************************************************************************** unsigned char glcd_GETPIXEL(unsigned int ui_x, unsigned int ui_y) { unsigned int ui_pixeldata; unsigned int ui_addr; // memory address of byte containing pixel to write unsigned int ui_pixels; unsigned int ui_xn; if ((ui_x >= glcd_XMAX) || (ui_y >= glcd_YMAX)) return(0); if (glcd_BYTES_PER_ROW > 30) ui_pixels = 6; else ui_pixels = 8; ui_addr = ui_y * linechars * ui_pixels + ui_x; ui_xn = ui_addr; ui_addr = ui_addr /ui_pixels; ui_xn= ui_xn - ui_addr * ui_pixels; ui_addr = ui_addr + G_BASE; glcd_set_address(ui_addr); // set LCD addr. pointer glcd_cput(0xE0); ui_pixeldata = glcd_dget(); return(((ui_pixeldata & 0x00FF) >> ((ui_pixels -1) - ui_xn %8)) & 0x01); }