variable declaration problem

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

variable declaration problem

2,955件の閲覧回数
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
ラベル(1)
0 件の賞賛
返信
1 返信

697件の閲覧回数
timotay01
Contributor I
try initializing fl in main(), if this works, perhaps it is because you havent setup properly your .data section.
 
0 件の賞賛
返信