2015-12-23 13 views
0

我寫一個DS1307定時器MIKROC對於AVR所以我的代碼是:「無效的表達式」錯誤在MIKROC布簾對於AVR

// Lcd module connections 
sbit LCD_RS at PORTC2_bit ; 
sbit LCD_EN at PORTC3_bit; 
sbit LCD_D4 at PORTC4_bit ; 
sbit LCD_D5 at PORTC5_bit ; 
sbit LCD_D6 at PORTC6_bit ; 
sbit LCD_D7 at PORTC7_bit ; 

sbit LCD_RS_Direction at DDC2_bit; 
sbit LCD_EN_Direction at DDC3_bit; 
sbit LCD_D4_Direction at DDC4_bit; 
sbit LCD_D5_Direction at DDC5_bit; 
sbit LCD_D6_Direction at DDC6_bit; 
sbit LCD_D7_Direction at DDC7_bit; 

int Temp1; 
int Temp2; 
int Temp3; 
unsigned short Temp4; 


#define inc(x)   x=x+1; 
#define lo(x)   Lo(x); 
#define hi(x)   Hi(x); 
#define and    &&; 
#define mod    %; 
#define Mod    %; 
#define div    /; 
#define or    ||; 



void shamsi_to_milady(int ShamsiMonth,int ShamsiDay,int ShamsiYear) { 
// Declare a constant array which holds number of days in each month: 
//const Gmonth_a as byte[12] = (31,28,31,30,31,30,31,31,30,31,30,31) 
int miladiYear2,miladiYear,marchDayDiff,Temp5,remainDay ; 


int farvardin1st_iMonth; int farvardin1st_iDay; int dayCount; int i ; 
//dim miladiDate_iMonth,miladiDate_iDay,miladiDate_iYear as integer 
char Mmonth_a[12]; 
//const char ss=1; 
/* 
struct farvardin1st_2 { 
    int iMonth; 
    int iDay ; 
} 
    */ 

//ss=1; 
//const Mmonth_a as byte[12] = (30,31,30,31,31,30,31,30,31,31,28,31) 
     Mmonth_a[1] = 30 ; 
     Mmonth_a[2] = 31; 
     Mmonth_a[3] = 30 ; 
     Mmonth_a[4] = 31 ; 
     Mmonth_a[5] = 31 ; 
     Mmonth_a[6] = 30 ; 
     Mmonth_a[7] = 31 ; 
     Mmonth_a[8] = 30 ; 
     Mmonth_a[9] = 31 ; 
     Mmonth_a[10] = 31 ; 
     Mmonth_a[11] = 28; 
     Mmonth_a[12] = 31; 

     miladiYear = ShamsiYear + 621; 
     miladiYear2=miladiYear; 
     Temp1 = miladiYear2 % 4; 
     Temp2 = miladiYear2 % 100; 
     Temp3 = miladiYear2 % 400; 
     Temp4 = ((Temp2 <> 0) && (Temp1 = 0)); 
     Temp5=((Temp2 = 0) && (Temp3 == 0)); 


} 
void main() { 
     Lcd_Init() ; 
     Lcd_Cmd(_LCD_CLEAR);    // Clear display 
     Lcd_Cmd(_LCD_CURSOR_OFF);   // Cursor off 
     Lcd_Out(1,6,txtw); 
} 

我在這一行有錯誤:

Temp4 = ((Temp2 <> 0) && (Temp1 = 0)); 

這個錯誤:

Invalid expression 

我認爲,誤差必須在變量小姐匹配。 主要代碼在附件中。

非常感謝。

附件: file

+0

看起來你有一個錯字,您使用=來比較,而不是== – tbrisker

回答

0
Temp4 = ((Temp2 <> 0) && (Temp1 = 0)); 

必須是:

Temp4 = ((Temp2 != 0) && (Temp1 == 0));