2015-12-23 51 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));