variable declaration problem

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

variable declaration problem

2,736 Views
pallavaggarwal
Contributor I
i have written a code for LCD display but in out fuction if statment is casing error while simulating in real timesimulator of codewarrior it is giving
 
error at location 0080 (fl)
attempt to use invalid or uninitiasized memory
 
i have defined fl as unsigned char (=0 initially) globaly but when i call in out function it is giving the error 
 
//Programm to display AC Voltage & Current/DC Voltage
//AC/DC Display Selection by jumper
//Voltage/Current range selection by jumpers
//onboard Reset/Mon8 connector
//AD0 & AD1 used as analog input
//PTB0-3 LCD Display data
//PTB4 Enable
//PTB5 RS
//PTB6 -7Voltage range selection by jumper.
//PTA4 Current range selection
//PTA5 AC/DC Diplay Selection
#include <hidef.h> /* for EnableInterrupts macro */
#include <MC68HC908QY2.h> /* include peripheral declarations */
 
//macro defination for PORTB out
#define setbit(A,B) A|=(1<<B)
#define clrbit(A,B) A&=~(1<<B)
unsigned char fl=0;
void delay()
{
 int del;
 for(del=0;del<234;del++);
}
void del()
{
 int d1,d2;
 for(d2=0;d2<1;d2++)
 {
 for(d1=0;d1<350;d1++);
 }
}
void out(unsigned char lcd_data)
{
 // higher nibble 1st then lower nibble
 
 //initialisation
 DDRB = 0x3F; // 0011 1111  
 PTB=0;//initially PTB out =0
 PTBPUE=0xC0; //11 00 0000
 
 PTB = (lcd_data & 0xF0)>>4;
 
 if(fl == 1)
 setbit(PTB,5); // rs = 1;
 
 setbit(PTB,4); // en = 1;
 setbit(PTB,4); // en = 1;
 setbit(PTB,4); // en = 1;
 clrbit(PTB,4); // en = 0;
 
 PTB = lcd_data & 0x0F;
 
 if(fl == 1) 
 setbit(PTB,5); // rs = 1;
 
 setbit(PTB,4); // en = 1;
 setbit(PTB,4); // en = 1;
 setbit(PTB,4); // en = 1;
 clrbit(PTB,4); // en = 0;
   
 clrbit(PTB,5); //  rs = 0;
 
 fl = 0;
 delay();
}
 

void main(void)
{
//initialization code
 delay();//power up delay
 delay();
 delay();
 delay();
 
 CONFIG1=0x01; //disable COP
 //main function
 
 //initializing LCD
 out(0x30);//commands
 out(0x30);
 out(0x30);
 out(0x20);
 out(0x28);
 out(0x0c);
 out(0x06);
 out(0x02);
 out(0x01);
 
  while(1)
  {
    out( 0x80);
    
    fl=1;
     out('D');
    out('C');
     out(' ');
     out('V');
     out('o');
     out('l');
     out('t');
     out(' ');
     out(' ');
     out(' ');
  }
  
}
 
please help as soon as possible
 
best regards
Pallav
Labels (1)
0 Kudos
1 Reply

478 Views
timotay01
Contributor I
try initializing fl in main(), if this works, perhaps it is because you havent setup properly your .data section.
 
0 Kudos