Microcontroller › PIC › GLCD interfacing with pic16f877a
- This topic has 4 replies, 4 voices, and was last updated 11 years, 8 months ago by
AJISH ALFRED.
-
AuthorPosts
-
August 23, 2012 at 5:18 am #1925
Lucky
ParticipantI am writeing GLCD interfacing program using mplab hi-tech compiler.when i am compileing that code it will showes one warning i.e could not find space (460 bytes) for variable _ch1.anyone please help me.my mail ide [email protected]
Here is the my code
/*==================GLCD interfacing with PIC16f877a==================*/#include<pic.h>//#include “laxman.h”void glcd_init(void);void glcd_data(unsigned char);void glcd_cmd(unsigned char);void glcd_clear();void busy_check();void delay();__CONFIG(0x3f72);/*=====================GLCD Connections==========*/#define RS RC0#define RW RC1#define EN RC2#define CS1 RC3#define CS2 RC4#define RST RC5#define data PORTB/*======================Display ADROIT SOLUTIONS on GLCD============*/unsigned char ch1[] = {0x00, 0x00, 0x00, 0x00, 0x00,// (space)0x00, 0x00, 0x5F, 0x00, 0x00,// !0x00, 0x07, 0x00, 0x07, 0x00,// “0x14, 0x7F, 0x14, 0x7F, 0x14,// #0x24, 0x2A, 0x7F, 0x2A, 0x12,// $0x23, 0x13, 0x08, 0x64, 0x62,// %0x36, 0x49, 0x55, 0x22, 0x50,// &0x00, 0x05, 0x03, 0x00, 0x00,// ‘0x00, 0x1C, 0x22, 0x41, 0x00,// (0x00, 0x41, 0x22, 0x1C, 0x00,// )0x08, 0x2A, 0x1C, 0x2A, 0x08,// *0x08, 0x08, 0x3E, 0x08, 0x08,// +0x00, 0x50, 0x30, 0x00, 0x00,// ,0x08, 0x08, 0x08, 0x08, 0x08,// –0x00, 0x30, 0x30, 0x00, 0x00,// .0x20, 0x10, 0x08, 0x04, 0x02,// /0x3E, 0x51, 0x49, 0x45, 0x3E,// 00x00, 0x42, 0x7F, 0x40, 0x00,// 10x42, 0x61, 0x51, 0x49, 0x46,// 20x21, 0x41, 0x45, 0x4B, 0x31,// 30x18, 0x14, 0x12, 0x7F, 0x10,// 40x27, 0x45, 0x45, 0x45, 0x39,// 50x3C, 0x4A, 0x49, 0x49, 0x30,// 60x01, 0x71, 0x09, 0x05, 0x03,// 70x36, 0x49, 0x49, 0x49, 0x36,// 80x06, 0x49, 0x49, 0x29, 0x1E,// 90x00, 0x36, 0x36, 0x00, 0x00,// :0x00, 0x56, 0x36, 0x00, 0x00,// ;0x00, 0x08, 0x14, 0x22, 0x41,// <0x14, 0x14, 0x14, 0x14, 0x14,// =0x41, 0x22, 0x14, 0x08, 0x00,// >0x02, 0x01, 0x51, 0x09, 0x06,// ?0x32, 0x49, 0x79, 0x41, 0x3E,// @0x7E, 0x11, 0x11, 0x11, 0x7E,// A0x7F, 0x49, 0x49, 0x49, 0x36,// B0x3E, 0x41, 0x41, 0x41, 0x22,// C0x7F, 0x41, 0x41, 0x22, 0x1C,// D0x7F, 0x49, 0x49, 0x49, 0x41,// E0x7F, 0x09, 0x09, 0x01, 0x01,// F0x3E, 0x41, 0x41, 0x51, 0x32,// G0x7F, 0x08, 0x08, 0x08, 0x7F,// H0x00, 0x41, 0x7F, 0x41, 0x00,// I0x20, 0x40, 0x41, 0x3F, 0x01,// J0x7F, 0x08, 0x14, 0x22, 0x41,// K0x7F, 0x40, 0x40, 0x40, 0x40,// L0x7F, 0x02, 0x04, 0x02, 0x7F,// M0x7F, 0x04, 0x08, 0x10, 0x7F,// N0x3E, 0x41, 0x41, 0x41, 0x3E,// O0x7F, 0x09, 0x09, 0x09, 0x06,// P0x3E, 0x41, 0x51, 0x21, 0x5E,// Q0x7F, 0x09, 0x19, 0x29, 0x46,// R0x46, 0x49, 0x49, 0x49, 0x31,// S0x01, 0x01, 0x7F, 0x01, 0x01,// T0x3F, 0x40, 0x40, 0x40, 0x3F,// U0x1F, 0x20, 0x40, 0x20, 0x1F,// V0x7F, 0x20, 0x18, 0x20, 0x7F,// W0x63, 0x14, 0x08, 0x14, 0x63,// X0x03, 0x04, 0x78, 0x04, 0x03,// Y0x61, 0x51, 0x49, 0x45, 0x43,// Z0x00, 0x00, 0x7F, 0x41, 0x41,// [0x02, 0x04, 0x08, 0x10, 0x20,// “”0x41, 0x41, 0x7F, 0x00, 0x00,// ]0x04, 0x02, 0x01, 0x02, 0x04,// ^0x40, 0x40, 0x40, 0x40, 0x40,// _0x00, 0x01, 0x02, 0x04, 0x00,// `0x20, 0x54, 0x54, 0x54, 0x78,// a0x7F, 0x48, 0x44, 0x44, 0x38,// b0x38, 0x44, 0x44, 0x44, 0x20,// c0x38, 0x44, 0x44, 0x48, 0x7F,// d0x38, 0x54, 0x54, 0x54, 0x18,// e0x08, 0x7E, 0x09, 0x01, 0x02,// f0x08, 0x14, 0x54, 0x54, 0x3C,// g0x7F, 0x08, 0x04, 0x04, 0x78,// h0x00, 0x44, 0x7D, 0x40, 0x00,// i0x20, 0x40, 0x44, 0x3D, 0x00,// j0x00, 0x7F, 0x10, 0x28, 0x44,// k0x00, 0x41, 0x7F, 0x40, 0x00,// l0x7C, 0x04, 0x18, 0x04, 0x78,// m0x7C, 0x08, 0x04, 0x04, 0x78,// n0x38, 0x44, 0x44, 0x44, 0x38,// o0x7C, 0x14, 0x14, 0x14, 0x08,// p0x08, 0x14, 0x14, 0x18, 0x7C,// q0x7C, 0x08, 0x04, 0x04, 0x08,// r0x48, 0x54, 0x54, 0x54, 0x20,// s0x04, 0x3F, 0x44, 0x40, 0x20,// t0x3C, 0x40, 0x40, 0x20, 0x7C,// u0x1C, 0x20, 0x40, 0x20, 0x1C,// v0x3C, 0x40, 0x30, 0x40, 0x3C,// w0x44, 0x28, 0x10, 0x28, 0x44,// x0x0C, 0x50, 0x50, 0x50, 0x3C,// y0x44, 0x64, 0x54, 0x4C, 0x44,// z0x00, 0x08, 0x36, 0x41, 0x00,// {};/*=========================Delay function==============*/void delay(){unsigned int i;for(i=0;i<=30;i++);}/*===========================Main Function==============*/void main(){int i,j;PORTC=0xFF;TRISC=0xFF;PORTB=0x00;TRISB=0x00;glcd_init(); //GLCD initializationwhile(1){for(j=0;j<8;j++)glcd_cmd(0xB8+j);CS1=1;CS2=0;for(i=0;i<128;i++){if(i==64){CS1=0;CS2=1;}glcd_data(ch1);}}}/*=======================GLCD initialization==================*/void glcd_init(){RST=0;delay();RST=1;delay();EN=0;CS1=0;CS2=0;RW=0;RS=0;glcd_cmd(0x3e); // display offglcd_cmd(0x3f); //display onglcd_cmd(0x40); //glcd_cmd(0xB8);glcd_cmd(0xC0);glcd_clear();}/*======================Glcd data function=====================*/void glcd_data(unsigned char ch1){RS=1;data=ch1;EN=1;EN=0;}/*=======================Glcd command function================*/void glcd_cmd(unsigned char x){RS=0;CS1=1;CS2=1;data=x;EN=1;EN=0;}/*=======================GLCD clear function====================*//*void glcd_clear(){int i,j;CS1=1;CS2=1;for(i=0xb8;i<0xc0;i++){glcd_cmd(i);glcd_cmd(0x40);for(j=0;j<64;j++)glcd_data(0x00);}}*/August 23, 2012 at 6:16 pm #8501AJISH ALFRED
ParticipantHi,
Most probably, your RAM won’t be having that much space to hold the large array. Try changing its type to const char, like
const char ch1[]
so that the data goes to ROM where there will be enough space.
August 24, 2012 at 11:39 am #8504Amrith
Participantya ajish is right.. insufficient RAM space..
May 25, 2013 at 10:43 am #9828baskarkkp
Participantsir,
i also suffer by the same problem of not enough memory in this project.Pls can u say any suggestion to clear this problem.
May 28, 2013 at 4:42 am #9845AJISH ALFRED
ParticipantHi,
One method is to use the ‘const’ key word, other is to increase the stack size somehow, most of the IDEs have such an option.
-
AuthorPosts
- You must be logged in to reply to this topic.