diff options
Diffstat (limited to 'build/default/production')
| -rwxr-xr-x | build/default/production/ds3231.i | 244 | ||||
| -rwxr-xr-x | build/default/production/ds3231.p1 | 898 | ||||
| -rwxr-xr-x | build/default/production/ds3231.p1.d | 5 | ||||
| -rwxr-xr-x | build/default/production/i2c.i | 65 | ||||
| -rwxr-xr-x | build/default/production/i2c.p1 | 165 | ||||
| -rwxr-xr-x | build/default/production/lcd.i | 49 | ||||
| -rwxr-xr-x | build/default/production/lcd.p1 | 381 | ||||
| -rwxr-xr-x | build/default/production/main.i | 737 | ||||
| -rwxr-xr-x | build/default/production/main.p1 | 1960 | ||||
| -rwxr-xr-x | build/default/production/main.p1.d | 1 | 
10 files changed, 2880 insertions, 1625 deletions
| diff --git a/build/default/production/ds3231.i b/build/default/production/ds3231.i index c360bea..97a8948 100755 --- a/build/default/production/ds3231.i +++ b/build/default/production/ds3231.i @@ -7,7 +7,11 @@  # 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\language_support.h" 1 3  # 2 "<built-in>" 2  # 1 "ds3231.c" 2 -# 15 "ds3231.c" + + + + +  # 1 "./ds3231.h" 1  # 1 "./conf.h" 1  # 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3 @@ -1738,16 +1742,23 @@ extern __bank0 __bit __timeout;  # 1 "./ds3231.h" 2 +char dayOfWeek[7][4]; +char monthOfYear[12][4]; +  int BCD_2_DEC(int);  int DEC_2_BCD(int); +unsigned int Get_DayOfWeek(unsigned int, unsigned int, unsigned int); +unsigned int Get_Days_In_Month(unsigned int, unsigned int); +unsigned int Get_Is_Leap_Year(unsigned int); +char* Get_WeekDay(unsigned int);  void Read_Alarms_Temp(void);  void Set_Date(void); -void Set_DayOfWeek(void); +void Set_DayOfWeek(int); +void Set_Sqwe(int);  void Set_Time(void); -void Set_Time_Date(void);  void Update_Current_Date_Time(void);  void Write_Alarms(void); -# 15 "ds3231.c" 2 +# 6 "ds3231.c" 2  # 1 "./i2c.h" 1  void I2C_Master_Init(const unsigned long); @@ -1757,68 +1768,185 @@ void I2C_Master_Repeated_Start(void);  void I2C_Master_Stop(void);  void I2C_Master_Write(unsigned);  unsigned short I2C_Master_Read(unsigned short); -# 16 "ds3231.c" 2 +# 7 "ds3231.c" 2  # 1 "./main.h" 1 +# 1 "./lcd.h" 1 +# 1 "./conf.h" 1 + + + +#pragma config FOSC = HS +#pragma config WDTE = OFF +#pragma config PWRTE = ON +#pragma config BOREN = ON +#pragma config LVP = OFF +#pragma config CPD = OFF +#pragma config WRT = OFF +#pragma config CP = OFF +# 1 "./lcd.h" 2 + + +void Lcd_Port(char); +void Lcd_Cmd(char); +void Lcd_Clear(void); +void Lcd_Set_Cursor(char, char); +void Lcd_Init(void); +void Lcd_Write_Char(char); +void Lcd_Write_String(char *); +void Lcd_Shift_Right(void); +void Lcd_Shift_Left(void); + + + +void Vfd_Set_Brightness(int); +# 1 "./main.h" 2 -unsigned int sec = 30; -unsigned int min = 42; -unsigned int hour = 21; -unsigned int dayOfWeek = 7; -unsigned int date = 27; -unsigned int month = 7; -unsigned int year = 19; -unsigned int century = 20; -unsigned int alarm1_sec, alarm1_min, alarm1_hour; -unsigned int alarm2_min, alarm2_hour; -unsigned int status_reg, alarm1_status, alarm2_status; -unsigned int control_reg; +# 1 "./i2c.h" 1 +void I2C_Master_Init(const unsigned long); +void I2C_Master_Wait(void); +void I2C_Master_Start(void); +void I2C_Master_Repeated_Start(void); +void I2C_Master_Stop(void); +void I2C_Master_Write(unsigned); +unsigned short I2C_Master_Read(unsigned short); +# 2 "./main.h" 2 +# 1 "./ds3231.h" 1 +# 1 "./conf.h" 1 -unsigned int temperature_lsb = 0; -int temperature_msb = 0; -unsigned char temp_sign = ' '; -char* weekday; +#pragma config FOSC = HS +#pragma config WDTE = OFF +#pragma config PWRTE = ON +#pragma config BOREN = ON +#pragma config LVP = OFF +#pragma config CPD = OFF +#pragma config WRT = OFF +#pragma config CP = OFF +# 1 "./ds3231.h" 2 -unsigned int sec_chg = 0; +char dayOfWeek[7][4]; +char monthOfYear[12][4]; +int BCD_2_DEC(int); +int DEC_2_BCD(int); +unsigned int Get_DayOfWeek(unsigned int, unsigned int, unsigned int); +unsigned int Get_Days_In_Month(unsigned int, unsigned int); +unsigned int Get_Is_Leap_Year(unsigned int); +char* Get_WeekDay(unsigned int); +void Read_Alarms_Temp(void); +void Set_Date(void); +void Set_DayOfWeek(int); +void Set_Sqwe(int); +void Set_Time(void); +void Update_Current_Date_Time(void); +void Write_Alarms(void); +# 3 "./main.h" 2 -unsigned char sec_0, sec_1; -unsigned char min_0, min_1; -unsigned char hour_0, hour_1; -unsigned char day_0, day_1; -unsigned char month_0, month_1; -unsigned char year_0, year_1; -unsigned char temp_0, temp_1, temp_2; -unsigned char alarm1_sec_0, alarm1_sec_1, alarm1_min_0, alarm1_min_1, -        alarm1_hour_0, alarm1_hour_1; -unsigned char alarm2_min_0, alarm2_min_1, alarm2_hour_0, alarm2_hour_1; -char buf[40]; +# 1 "./adc.h" 1 +# 1 "./conf.h" 1 -void format_DateTimeChars(void); +#pragma config FOSC = HS +#pragma config WDTE = OFF +#pragma config PWRTE = ON +#pragma config BOREN = ON +#pragma config LVP = OFF +#pragma config CPD = OFF +#pragma config WRT = OFF +#pragma config CP = OFF +# 1 "./adc.h" 2 -void format_Temperature(void); -void getWeekDay(unsigned int); +void Adc_Init(void); -void Get_Alarm_Status(void); +unsigned int Adc_Read(unsigned int); +# 6 "./main.h" 2 + + +# 1 "./beep.h" 1 +# 1 "./conf.h" 1 + + + +#pragma config FOSC = HS +#pragma config WDTE = OFF +#pragma config PWRTE = ON +#pragma config BOREN = ON +#pragma config LVP = OFF +#pragma config CPD = OFF +#pragma config WRT = OFF +#pragma config CP = OFF +# 1 "./beep.h" 2 + + +void alarm(unsigned int); +# 9 "./main.h" 2 +# 18 "./main.h" +unsigned int ldr; + + + + +unsigned int brtlvl_chg; + + +unsigned int update; + + +unsigned int edit_datetime; + + +extern unsigned int sec; +extern unsigned int min; +extern unsigned int hour; +extern unsigned int day; +extern unsigned int date; +extern unsigned int month; +extern unsigned int year; +extern unsigned int century; +extern unsigned int alarm1_sec, alarm1_min, alarm1_hour; +extern unsigned int alarm2_min, alarm2_hour; +extern unsigned int status_reg, alarm1_status, alarm2_status; +extern unsigned int control_reg; + + +extern unsigned int temperature_lsb; +extern int temperature_msb; +unsigned char temp_sign; +# 60 "./main.h" +void display_Digit(unsigned int);  void display_Intro(void);  void display_Lcd_Layout(void); +void edit_Date_Time(void); + + +void format_Temperature(void); + + +void Get_Alarm_Status(void); +  void update_Display(void); -# 17 "ds3231.c" 2 +# 8 "ds3231.c" 2 + + + +char dayOfWeek[7][4] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; +char monthOfYear[12][4] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", +    "Aug", "Sep", "Oct", "Nov", "Dec"}; +  int BCD_2_DEC(int to_convert) {      return (to_convert >> 4) * 10 + (to_convert & 0x0F);  } @@ -1827,6 +1955,23 @@ int DEC_2_BCD(int to_convert) {      return ((to_convert / 10) << 4) + (to_convert % 10);  } +unsigned int Get_DayOfWeek(unsigned int y, unsigned int m, unsigned int d) { +    return (d += m < 3 ? y-- : y - 2, 23 * m / 9 + d + 4 + y / 4 - y / 100 + y / 400) % 7 + 1; +} + +unsigned int Get_Days_In_Month(unsigned int y, unsigned int m) { +    return (m == 2) ? +            (28 + Get_Is_Leap_Year(y)) : 31 - (m - 1) % 7 % 2; +} + +unsigned int Get_Is_Leap_Year(unsigned int y) { +    return (year % 4) || ((year % 100 == 0) && (year % 400)) ? 0 : 1; +} + +char* Get_WeekDay(unsigned int d){ +    return dayOfWeek[d - 1]; +} +  void Read_Alarms_Temp() {      I2C_Master_Start();      I2C_Master_Write(0xD0); @@ -1862,35 +2007,29 @@ void Set_Date() {      I2C_Master_Stop();  } -void Set_DayOfWeek() { +void Set_DayOfWeek(int dow) {      I2C_Master_Start();      I2C_Master_Write(0xD0);      I2C_Master_Write(3); -    I2C_Master_Write(dayOfWeek); +    I2C_Master_Write(dow);      I2C_Master_Stop();  } -void Set_Time() { +void Set_Sqwe(int contvalue) {      I2C_Master_Start();      I2C_Master_Write(0xD0); -    I2C_Master_Write(0); -    I2C_Master_Write(DEC_2_BCD(sec)); -    I2C_Master_Write(DEC_2_BCD(min)); -    I2C_Master_Write(DEC_2_BCD(hour)); +    I2C_Master_Write(0x0E); +    I2C_Master_Write(contvalue);      I2C_Master_Stop();  } -void Set_Time_Date() { +void Set_Time() {      I2C_Master_Start();      I2C_Master_Write(0xD0);      I2C_Master_Write(0);      I2C_Master_Write(DEC_2_BCD(sec));      I2C_Master_Write(DEC_2_BCD(min));      I2C_Master_Write(DEC_2_BCD(hour)); -    I2C_Master_Write(1); -    I2C_Master_Write(DEC_2_BCD(date)); -    I2C_Master_Write(DEC_2_BCD(month)); -    I2C_Master_Write(DEC_2_BCD(year));      I2C_Master_Stop();  } @@ -1899,14 +2038,15 @@ void Update_Current_Date_Time() {      I2C_Master_Start();      I2C_Master_Write(0xD0);      I2C_Master_Write(0); -    I2C_Master_Repeated_Start(); +    I2C_Master_Stop(); +    I2C_Master_Start();      I2C_Master_Write(0xD1);      sec = BCD_2_DEC(I2C_Master_Read(1));      min = BCD_2_DEC(I2C_Master_Read(1));      hour = BCD_2_DEC(I2C_Master_Read(1)); -    weekday = I2C_Master_Read(1); +    day = I2C_Master_Read(1);      date = BCD_2_DEC(I2C_Master_Read(1));      month = BCD_2_DEC(I2C_Master_Read(1));      year = BCD_2_DEC(I2C_Master_Read(1)); diff --git a/build/default/production/ds3231.p1 b/build/default/production/ds3231.p1 index c573cb5..09768c7 100755 --- a/build/default/production/ds3231.p1 +++ b/build/default/production/ds3231.p1 @@ -1,19 +1,76 @@  Version 4.0 HI-TECH Software Intermediate Code
 +"10 ./ds3231.h
 +[; ;./ds3231.h: 10: unsigned int Get_Is_Leap_Year(unsigned int);
 +[; ;./ds3231.h: 10: unsigned int Get_Is_Leap_Year(unsigned int);
 +[v _Get_Is_Leap_Year `(ui ~T0 @X0 0 ef1`ui ]
 +"38 ./main.h
 +[; ;./main.h: 38: extern unsigned int year;
 +[v _year `ui ~T0 @X0 0 e ]
  "3 ./i2c.h
  [; ;./i2c.h: 3: void I2C_Master_Start(void);
 +[; ;./i2c.h: 3: void I2C_Master_Start(void);
  [v _I2C_Master_Start `(v ~T0 @X0 0 ef ]
  "6
  [; ;./i2c.h: 6: void I2C_Master_Write(unsigned);
 +[; ;./i2c.h: 6: void I2C_Master_Write(unsigned);
  [v _I2C_Master_Write `(v ~T0 @X0 0 ef1`ui ]
  "4
  [; ;./i2c.h: 4: void I2C_Master_Repeated_Start(void);
 +[; ;./i2c.h: 4: void I2C_Master_Repeated_Start(void);
  [v _I2C_Master_Repeated_Start `(v ~T0 @X0 0 ef ]
 -"7
 +"40 ./main.h
 +[; ;./main.h: 40: extern unsigned int alarm1_sec, alarm1_min, alarm1_hour;
 +[v _alarm1_sec `ui ~T0 @X0 0 e ]
 +"7 ./i2c.h
 +[; ;./i2c.h: 7: unsigned short I2C_Master_Read(unsigned short);
  [; ;./i2c.h: 7: unsigned short I2C_Master_Read(unsigned short);
  [v _I2C_Master_Read `(us ~T0 @X0 0 ef1`us ]
 -"5
 +"40 ./main.h
 +[; ;./main.h: 40: extern unsigned int alarm1_sec, alarm1_min, alarm1_hour;
 +[v _alarm1_min `ui ~T0 @X0 0 e ]
 +[v _alarm1_hour `ui ~T0 @X0 0 e ]
 +"41
 +[; ;./main.h: 41: extern unsigned int alarm2_min, alarm2_hour;
 +[v _alarm2_min `ui ~T0 @X0 0 e ]
 +[v _alarm2_hour `ui ~T0 @X0 0 e ]
 +"43
 +[; ;./main.h: 43: extern unsigned int control_reg;
 +[v _control_reg `ui ~T0 @X0 0 e ]
 +"42
 +[; ;./main.h: 42: extern unsigned int status_reg, alarm1_status, alarm2_status;
 +[v _status_reg `ui ~T0 @X0 0 e ]
 +"47
 +[; ;./main.h: 47: extern int temperature_msb;
 +[v _temperature_msb `i ~T0 @X0 0 e ]
 +"46
 +[; ;./main.h: 46: extern unsigned int temperature_lsb;
 +[v _temperature_lsb `ui ~T0 @X0 0 e ]
 +"5 ./i2c.h
 +[; ;./i2c.h: 5: void I2C_Master_Stop(void);
  [; ;./i2c.h: 5: void I2C_Master_Stop(void);
  [v _I2C_Master_Stop `(v ~T0 @X0 0 ef ]
 +"36 ./main.h
 +[; ;./main.h: 36: extern unsigned int date;
 +[v _date `ui ~T0 @X0 0 e ]
 +"37
 +[; ;./main.h: 37: extern unsigned int month;
 +[v _month `ui ~T0 @X0 0 e ]
 +"32
 +[; ;./main.h: 32: extern unsigned int sec;
 +[v _sec `ui ~T0 @X0 0 e ]
 +"33
 +[; ;./main.h: 33: extern unsigned int min;
 +[v _min `ui ~T0 @X0 0 e ]
 +"34
 +[; ;./main.h: 34: extern unsigned int hour;
 +[v _hour `ui ~T0 @X0 0 e ]
 +"35
 +[; ;./main.h: 35: extern unsigned int day;
 +[v _day `ui ~T0 @X0 0 e ]
 +"42
 +[; ;./main.h: 42: extern unsigned int status_reg, alarm1_status, alarm2_status;
 +[v _alarm1_status `ui ~T0 @X0 0 e ]
 +[v _alarm2_status `ui ~T0 @X0 0 e ]
  [v F842 `(v ~T0 @X0 1 tf1`ul ]
  "92 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic.h
  [v __delay `JF842 ~T0 @X0 0 e ]
 @@ -214,480 +271,619 @@ Version 4.0 HI-TECH Software Intermediate Code  [p x WRT = OFF ]
  "11
  [p x CP = OFF ]
 -"2 ./main.h
 -[; ;./main.h: 2: unsigned int sec = 30;
 -[v _sec `ui ~T0 @X0 1 e ]
 -[i _sec
 --> -> 30 `i `ui
 -]
 -"3
 -[; ;./main.h: 3: unsigned int min = 42;
 -[v _min `ui ~T0 @X0 1 e ]
 -[i _min
 --> -> 42 `i `ui
 -]
 +[v F851 `uc ~T0 @X0 -> 4 `i t ]
 +"3 ./ds3231.h
 +[; ;./ds3231.h: 3: char dayOfWeek[7][4];
 +[; ;./ds3231.h: 3: char dayOfWeek[7][4];
 +[v _dayOfWeek `F851 ~T0 @X0 -> 7 `i e ]
 +[v F853 `uc ~T0 @X0 -> 4 `i t ]
  "4
 -[; ;./main.h: 4: unsigned int hour = 21;
 -[v _hour `ui ~T0 @X0 1 e ]
 -[i _hour
 --> -> 21 `i `ui
 -]
 +[; ;./ds3231.h: 4: char monthOfYear[12][4];
 +[; ;./ds3231.h: 4: char monthOfYear[12][4];
 +[v _monthOfYear `F853 ~T0 @X0 -> 12 `i e ]
 +"4 ./conf.h
 +[p x FOSC = HS ]
  "5
 -[; ;./main.h: 5: unsigned int dayOfWeek = 7;
 -[v _dayOfWeek `ui ~T0 @X0 1 e ]
 -[i _dayOfWeek
 --> -> 7 `i `ui
 -]
 +[p x WDTE = OFF ]
  "6
 -[; ;./main.h: 6: unsigned int date = 27;
 -[v _date `ui ~T0 @X0 1 e ]
 -[i _date
 --> -> 27 `i `ui
 -]
 +[p x PWRTE = ON ]
  "7
 -[; ;./main.h: 7: unsigned int month = 7;
 -[v _month `ui ~T0 @X0 1 e ]
 -[i _month
 --> -> 7 `i `ui
 -]
 +[p x BOREN = ON ]
  "8
 -[; ;./main.h: 8: unsigned int year = 19;
 -[v _year `ui ~T0 @X0 1 e ]
 -[i _year
 --> -> 19 `i `ui
 -]
 +[p x LVP = OFF ]
  "9
 -[; ;./main.h: 9: unsigned int century = 20;
 -[v _century `ui ~T0 @X0 1 e ]
 -[i _century
 --> -> 20 `i `ui
 -]
 +[p x CPD = OFF ]
  "10
 -[; ;./main.h: 10: unsigned int alarm1_sec, alarm1_min, alarm1_hour;
 -[v _alarm1_sec `ui ~T0 @X0 1 e ]
 -[v _alarm1_min `ui ~T0 @X0 1 e ]
 -[v _alarm1_hour `ui ~T0 @X0 1 e ]
 +[p x WRT = OFF ]
  "11
 -[; ;./main.h: 11: unsigned int alarm2_min, alarm2_hour;
 -[v _alarm2_min `ui ~T0 @X0 1 e ]
 -[v _alarm2_hour `ui ~T0 @X0 1 e ]
 -"12
 -[; ;./main.h: 12: unsigned int status_reg, alarm1_status, alarm2_status;
 -[v _status_reg `ui ~T0 @X0 1 e ]
 -[v _alarm1_status `ui ~T0 @X0 1 e ]
 -[v _alarm2_status `ui ~T0 @X0 1 e ]
 -"13
 -[; ;./main.h: 13: unsigned int control_reg;
 -[v _control_reg `ui ~T0 @X0 1 e ]
 -"16
 -[; ;./main.h: 16: unsigned int temperature_lsb = 0;
 -[v _temperature_lsb `ui ~T0 @X0 1 e ]
 -[i _temperature_lsb
 --> -> 0 `i `ui
 -]
 -"17
 -[; ;./main.h: 17: int temperature_msb = 0;
 -[v _temperature_msb `i ~T0 @X0 1 e ]
 -[i _temperature_msb
 --> 0 `i
 -]
 -"18
 -[; ;./main.h: 18: unsigned char temp_sign = ' ';
 +[p x CP = OFF ]
 +"4
 +[p x FOSC = HS ]
 +"5
 +[p x WDTE = OFF ]
 +"6
 +[p x PWRTE = ON ]
 +"7
 +[p x BOREN = ON ]
 +"8
 +[p x LVP = OFF ]
 +"9
 +[p x CPD = OFF ]
 +"10
 +[p x WRT = OFF ]
 +"11
 +[p x CP = OFF ]
 +[v F916 `uc ~T0 @X0 -> 4 `i t ]
 +"3 ./ds3231.h
 +[; ;./ds3231.h: 3: char dayOfWeek[7][4];
 +[; ;./ds3231.h: 3: char dayOfWeek[7][4];
 +[v _dayOfWeek `F916 ~T0 @X0 -> 7 `i e ]
 +[v F918 `uc ~T0 @X0 -> 4 `i t ]
 +"4
 +[; ;./ds3231.h: 4: char monthOfYear[12][4];
 +[; ;./ds3231.h: 4: char monthOfYear[12][4];
 +[v _monthOfYear `F918 ~T0 @X0 -> 12 `i e ]
 +"4 ./conf.h
 +[p x FOSC = HS ]
 +"5
 +[p x WDTE = OFF ]
 +"6
 +[p x PWRTE = ON ]
 +"7
 +[p x BOREN = ON ]
 +"8
 +[p x LVP = OFF ]
 +"9
 +[p x CPD = OFF ]
 +"10
 +[p x WRT = OFF ]
 +"11
 +[p x CP = OFF ]
 +"4
 +[p x FOSC = HS ]
 +"5
 +[p x WDTE = OFF ]
 +"6
 +[p x PWRTE = ON ]
 +"7
 +[p x BOREN = ON ]
 +"8
 +[p x LVP = OFF ]
 +"9
 +[p x CPD = OFF ]
 +"10
 +[p x WRT = OFF ]
 +"11
 +[p x CP = OFF ]
 +"18 ./main.h
 +[; ;./main.h: 18: unsigned int ldr;
 +[v _ldr `ui ~T0 @X0 1 e ]
 +"23
 +[; ;./main.h: 23: unsigned int brtlvl_chg;
 +[v _brtlvl_chg `ui ~T0 @X0 1 e ]
 +"26
 +[; ;./main.h: 26: unsigned int update;
 +[v _update `ui ~T0 @X0 1 e ]
 +"29
 +[; ;./main.h: 29: unsigned int edit_datetime;
 +[v _edit_datetime `ui ~T0 @X0 1 e ]
 +"48
 +[; ;./main.h: 48: unsigned char temp_sign;
  [v _temp_sign `uc ~T0 @X0 1 e ]
 -[i _temp_sign
 --> -> 32 `ui `uc
 +[v F981 `uc ~T0 @X0 -> 4 `i t ]
 +"11 ds3231.c
 +[; ;ds3231.c: 11: char dayOfWeek[7][4] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
 +[v _dayOfWeek `F981 ~T0 @X0 -> 7 `i e ]
 +[i _dayOfWeek
 +:U ..
 +:U ..
 +-> 83 `c
 +-> 117 `c
 +-> 110 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 77 `c
 +-> 111 `c
 +-> 110 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 84 `c
 +-> 117 `c
 +-> 101 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 87 `c
 +-> 101 `c
 +-> 100 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 84 `c
 +-> 104 `c
 +-> 117 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 70 `c
 +-> 114 `c
 +-> 105 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 83 `c
 +-> 97 `c
 +-> 116 `c
 +-> 0 `c
 +..
 +..
  ]
 -"21
 -[; ;./main.h: 21: char* weekday;
 -[v _weekday `*uc ~T0 @X0 1 e ]
 -"24
 -[; ;./main.h: 24: unsigned int sec_chg = 0;
 -[v _sec_chg `ui ~T0 @X0 1 e ]
 -[i _sec_chg
 --> -> 0 `i `ui
 +[v F983 `uc ~T0 @X0 -> 4 `i t ]
 +"14
 +[; ;ds3231.c: 14: char monthOfYear[12][4] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
 +[v _monthOfYear `F983 ~T0 @X0 -> 12 `i e ]
 +[i _monthOfYear
 +:U ..
 +:U ..
 +-> 74 `c
 +-> 97 `c
 +-> 110 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 70 `c
 +-> 101 `c
 +-> 98 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 77 `c
 +-> 97 `c
 +-> 114 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 65 `c
 +-> 112 `c
 +-> 114 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 77 `c
 +-> 97 `c
 +-> 121 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 74 `c
 +-> 117 `c
 +-> 110 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 74 `c
 +-> 117 `c
 +-> 108 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 65 `c
 +-> 117 `c
 +-> 103 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 83 `c
 +-> 101 `c
 +-> 112 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 79 `c
 +-> 99 `c
 +-> 116 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 78 `c
 +-> 111 `c
 +-> 118 `c
 +-> 0 `c
 +..
 +:U ..
 +-> 68 `c
 +-> 101 `c
 +-> 99 `c
 +-> 0 `c
 +..
 +..
  ]
 -"27
 -[; ;./main.h: 27: unsigned char sec_0, sec_1;
 -[v _sec_0 `uc ~T0 @X0 1 e ]
 -[v _sec_1 `uc ~T0 @X0 1 e ]
 -"28
 -[; ;./main.h: 28: unsigned char min_0, min_1;
 -[v _min_0 `uc ~T0 @X0 1 e ]
 -[v _min_1 `uc ~T0 @X0 1 e ]
 -"29
 -[; ;./main.h: 29: unsigned char hour_0, hour_1;
 -[v _hour_0 `uc ~T0 @X0 1 e ]
 -[v _hour_1 `uc ~T0 @X0 1 e ]
 -"30
 -[; ;./main.h: 30: unsigned char day_0, day_1;
 -[v _day_0 `uc ~T0 @X0 1 e ]
 -[v _day_1 `uc ~T0 @X0 1 e ]
 -"31
 -[; ;./main.h: 31: unsigned char month_0, month_1;
 -[v _month_0 `uc ~T0 @X0 1 e ]
 -[v _month_1 `uc ~T0 @X0 1 e ]
 -"32
 -[; ;./main.h: 32: unsigned char year_0, year_1;
 -[v _year_0 `uc ~T0 @X0 1 e ]
 -[v _year_1 `uc ~T0 @X0 1 e ]
 -"33
 -[; ;./main.h: 33: unsigned char temp_0, temp_1, temp_2;
 -[v _temp_0 `uc ~T0 @X0 1 e ]
 -[v _temp_1 `uc ~T0 @X0 1 e ]
 -[v _temp_2 `uc ~T0 @X0 1 e ]
 -"34
 -[; ;./main.h: 34: unsigned char alarm1_sec_0, alarm1_sec_1, alarm1_min_0, alarm1_min_1,
 -[v _alarm1_sec_0 `uc ~T0 @X0 1 e ]
 -[v _alarm1_sec_1 `uc ~T0 @X0 1 e ]
 -[v _alarm1_min_0 `uc ~T0 @X0 1 e ]
 -[v _alarm1_min_1 `uc ~T0 @X0 1 e ]
 -"35
 -[; ;./main.h: 35:         alarm1_hour_0, alarm1_hour_1;
 -[v _alarm1_hour_0 `uc ~T0 @X0 1 e ]
 -[v _alarm1_hour_1 `uc ~T0 @X0 1 e ]
 -"36
 -[; ;./main.h: 36: unsigned char alarm2_min_0, alarm2_min_1, alarm2_hour_0, alarm2_hour_1;
 -[v _alarm2_min_0 `uc ~T0 @X0 1 e ]
 -[v _alarm2_min_1 `uc ~T0 @X0 1 e ]
 -[v _alarm2_hour_0 `uc ~T0 @X0 1 e ]
 -[v _alarm2_hour_1 `uc ~T0 @X0 1 e ]
 -"39
 -[; ;./main.h: 39: char buf[40];
 -[v _buf `uc ~T0 @X0 -> 40 `i e ]
 -"19 ds3231.c
 -[; ;ds3231.c: 19: int BCD_2_DEC(int to_convert) {
 +"17
 +[; ;ds3231.c: 17: int BCD_2_DEC(int to_convert) {
  [v _BCD_2_DEC `(i ~T0 @X0 1 ef1`i ]
  {
  [e :U _BCD_2_DEC ]
  [v _to_convert `i ~T0 @X0 1 r1 ]
  [f ]
 -"20
 -[; ;ds3231.c: 20:     return (to_convert >> 4) * 10 + (to_convert & 0x0F);
 +"18
 +[; ;ds3231.c: 18:     return (to_convert >> 4) * 10 + (to_convert & 0x0F);
  [e ) + * >> _to_convert -> 4 `i -> 10 `i & _to_convert -> 15 `i ]
  [e $UE 95  ]
 -"21
 -[; ;ds3231.c: 21: }
 +"19
 +[; ;ds3231.c: 19: }
  [e :UE 95 ]
  }
 -"23
 -[; ;ds3231.c: 23: int DEC_2_BCD(int to_convert) {
 +"21
 +[; ;ds3231.c: 21: int DEC_2_BCD(int to_convert) {
  [v _DEC_2_BCD `(i ~T0 @X0 1 ef1`i ]
  {
  [e :U _DEC_2_BCD ]
  [v _to_convert `i ~T0 @X0 1 r1 ]
  [f ]
 -"24
 -[; ;ds3231.c: 24:     return ((to_convert / 10) << 4) + (to_convert % 10);
 +"22
 +[; ;ds3231.c: 22:     return ((to_convert / 10) << 4) + (to_convert % 10);
  [e ) + << / _to_convert -> 10 `i -> 4 `i % _to_convert -> 10 `i ]
  [e $UE 96  ]
 -"25
 -[; ;ds3231.c: 25: }
 +"23
 +[; ;ds3231.c: 23: }
  [e :UE 96 ]
  }
 +"25
 +[; ;ds3231.c: 25: unsigned int Get_DayOfWeek(unsigned int y, unsigned int m, unsigned int d) {
 +[v _Get_DayOfWeek `(ui ~T0 @X0 1 ef3`ui`ui`ui ]
 +{
 +[e :U _Get_DayOfWeek ]
 +[v _y `ui ~T0 @X0 1 r1 ]
 +[v _m `ui ~T0 @X0 1 r2 ]
 +[v _d `ui ~T0 @X0 1 r3 ]
 +[f ]
 +"26
 +[; ;ds3231.c: 26:     return (d += m < 3 ? y-- : y - 2, 23 * m / 9 + d + 4 + y / 4 - y / 100 + y / 400) % 7 + 1;
 +[e ) + % ; =+ _d ? < _m -> -> 3 `i `ui : -- _y -> -> 1 `i `ui - _y -> -> 2 `i `ui + - + + + / * -> -> 23 `i `ui _m -> -> 9 `i `ui _d -> -> 4 `i `ui / _y -> -> 4 `i `ui / _y -> -> 100 `i `ui / _y -> -> 400 `i `ui -> -> 7 `i `ui -> -> 1 `i `ui ]
 +[e $UE 97  ]
  "27
 -[; ;ds3231.c: 27: void Read_Alarms_Temp() {
 +[; ;ds3231.c: 27: }
 +[e :UE 97 ]
 +}
 +"29
 +[; ;ds3231.c: 29: unsigned int Get_Days_In_Month(unsigned int y, unsigned int m) {
 +[v _Get_Days_In_Month `(ui ~T0 @X0 1 ef2`ui`ui ]
 +{
 +[e :U _Get_Days_In_Month ]
 +[v _y `ui ~T0 @X0 1 r1 ]
 +[v _m `ui ~T0 @X0 1 r2 ]
 +[f ]
 +"30
 +[; ;ds3231.c: 30:     return (m == 2) ?
 +[e ) ? == _m -> -> 2 `i `ui : + -> -> 28 `i `ui ( _Get_Is_Leap_Year (1 _y - -> -> 31 `i `ui % % - _m -> -> 1 `i `ui -> -> 7 `i `ui -> -> 2 `i `ui ]
 +[e $UE 98  ]
 +"32
 +[; ;ds3231.c: 32: }
 +[e :UE 98 ]
 +}
 +"34
 +[; ;ds3231.c: 34: unsigned int Get_Is_Leap_Year(unsigned int y) {
 +[v _Get_Is_Leap_Year `(ui ~T0 @X0 1 ef1`ui ]
 +{
 +[e :U _Get_Is_Leap_Year ]
 +[v _y `ui ~T0 @X0 1 r1 ]
 +[f ]
 +"35
 +[; ;ds3231.c: 35:     return (year % 4) || ((year % 100 == 0) && (year % 400)) ? 0 : 1;
 +[e ) -> ? || != % _year -> -> 4 `i `ui -> -> 0 `i `ui && == % _year -> -> 100 `i `ui -> -> 0 `i `ui != % _year -> -> 400 `i `ui -> -> 0 `i `ui : -> 0 `i -> 1 `i `ui ]
 +[e $UE 99  ]
 +"36
 +[; ;ds3231.c: 36: }
 +[e :UE 99 ]
 +}
 +"38
 +[; ;ds3231.c: 38: char* Get_WeekDay(unsigned int d){
 +[v _Get_WeekDay `(*uc ~T0 @X0 1 ef1`ui ]
 +{
 +[e :U _Get_WeekDay ]
 +[v _d `ui ~T0 @X0 1 r1 ]
 +[f ]
 +"39
 +[; ;ds3231.c: 39:     return dayOfWeek[d - 1];
 +[e ) &U *U + &U _dayOfWeek * -> - _d -> -> 1 `i `ui `ux -> * -> # *U &U *U &U _dayOfWeek `ui -> -> 4 `i `ui `ux ]
 +[e $UE 100  ]
 +"40
 +[; ;ds3231.c: 40: }
 +[e :UE 100 ]
 +}
 +"42
 +[; ;ds3231.c: 42: void Read_Alarms_Temp() {
  [v _Read_Alarms_Temp `(v ~T0 @X0 1 ef ]
  {
  [e :U _Read_Alarms_Temp ]
  [f ]
 -"28
 -[; ;ds3231.c: 28:     I2C_Master_Start();
 +"43
 +[; ;ds3231.c: 43:     I2C_Master_Start();
  [e ( _I2C_Master_Start ..  ]
 -"29
 -[; ;ds3231.c: 29:     I2C_Master_Write(0xD0);
 +"44
 +[; ;ds3231.c: 44:     I2C_Master_Write(0xD0);
  [e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
 -"30
 -[; ;ds3231.c: 30:     I2C_Master_Write(0x07);
 +"45
 +[; ;ds3231.c: 45:     I2C_Master_Write(0x07);
  [e ( _I2C_Master_Write (1 -> -> 7 `i `ui ]
 -"31
 -[; ;ds3231.c: 31:     I2C_Master_Repeated_Start();
 +"46
 +[; ;ds3231.c: 46:     I2C_Master_Repeated_Start();
  [e ( _I2C_Master_Repeated_Start ..  ]
 -"34
 -[; ;ds3231.c: 34:     I2C_Master_Write(0xD1);
 +"49
 +[; ;ds3231.c: 49:     I2C_Master_Write(0xD1);
  [e ( _I2C_Master_Write (1 -> -> 209 `i `ui ]
 -"35
 -[; ;ds3231.c: 35:     alarm1_sec = BCD_2_DEC(I2C_Master_Read(1));
 +"50
 +[; ;ds3231.c: 50:     alarm1_sec = BCD_2_DEC(I2C_Master_Read(1));
  [e = _alarm1_sec -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
 -"36
 -[; ;ds3231.c: 36:     alarm1_min = BCD_2_DEC(I2C_Master_Read(1));
 +"51
 +[; ;ds3231.c: 51:     alarm1_min = BCD_2_DEC(I2C_Master_Read(1));
  [e = _alarm1_min -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
 -"37
 -[; ;ds3231.c: 37:     alarm1_hour = BCD_2_DEC(I2C_Master_Read(1));
 +"52
 +[; ;ds3231.c: 52:     alarm1_hour = BCD_2_DEC(I2C_Master_Read(1));
  [e = _alarm1_hour -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
 -"38
 -[; ;ds3231.c: 38:     I2C_Master_Read(1);
 +"53
 +[; ;ds3231.c: 53:     I2C_Master_Read(1);
  [e ( _I2C_Master_Read (1 -> -> 1 `i `us ]
 -"39
 -[; ;ds3231.c: 39:     alarm2_min = BCD_2_DEC(I2C_Master_Read(1));
 +"54
 +[; ;ds3231.c: 54:     alarm2_min = BCD_2_DEC(I2C_Master_Read(1));
  [e = _alarm2_min -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
 -"40
 -[; ;ds3231.c: 40:     alarm2_hour = BCD_2_DEC(I2C_Master_Read(1));
 +"55
 +[; ;ds3231.c: 55:     alarm2_hour = BCD_2_DEC(I2C_Master_Read(1));
  [e = _alarm2_hour -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
 -"41
 -[; ;ds3231.c: 41:     I2C_Master_Read(1);
 +"56
 +[; ;ds3231.c: 56:     I2C_Master_Read(1);
  [e ( _I2C_Master_Read (1 -> -> 1 `i `us ]
 -"42
 -[; ;ds3231.c: 42:     control_reg = I2C_Master_Read(1);
 +"57
 +[; ;ds3231.c: 57:     control_reg = I2C_Master_Read(1);
  [e = _control_reg -> ( _I2C_Master_Read (1 -> -> 1 `i `us `ui ]
 -"43
 -[; ;ds3231.c: 43:     status_reg = I2C_Master_Read(1);
 +"58
 +[; ;ds3231.c: 58:     status_reg = I2C_Master_Read(1);
  [e = _status_reg -> ( _I2C_Master_Read (1 -> -> 1 `i `us `ui ]
 -"44
 -[; ;ds3231.c: 44:     I2C_Master_Read(1);
 +"59
 +[; ;ds3231.c: 59:     I2C_Master_Read(1);
  [e ( _I2C_Master_Read (1 -> -> 1 `i `us ]
 -"46
 -[; ;ds3231.c: 46:     temperature_msb = I2C_Master_Read(1);
 +"61
 +[; ;ds3231.c: 61:     temperature_msb = I2C_Master_Read(1);
  [e = _temperature_msb -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i ]
 -"48
 -[; ;ds3231.c: 48:     temperature_lsb = I2C_Master_Read(0);
 +"63
 +[; ;ds3231.c: 63:     temperature_lsb = I2C_Master_Read(0);
  [e = _temperature_lsb -> ( _I2C_Master_Read (1 -> -> 0 `i `us `ui ]
 -"49
 -[; ;ds3231.c: 49:     I2C_Master_Stop();
 +"64
 +[; ;ds3231.c: 64:     I2C_Master_Stop();
  [e ( _I2C_Master_Stop ..  ]
 -"50
 -[; ;ds3231.c: 50: }
 -[e :UE 97 ]
 +"65
 +[; ;ds3231.c: 65: }
 +[e :UE 101 ]
  }
 -"52
 -[; ;ds3231.c: 52: void Set_Date() {
 +"67
 +[; ;ds3231.c: 67: void Set_Date() {
  [v _Set_Date `(v ~T0 @X0 1 ef ]
  {
  [e :U _Set_Date ]
  [f ]
 -"53
 -[; ;ds3231.c: 53:     I2C_Master_Start();
 +"68
 +[; ;ds3231.c: 68:     I2C_Master_Start();
  [e ( _I2C_Master_Start ..  ]
 -"54
 -[; ;ds3231.c: 54:     I2C_Master_Write(0xD0);
 +"69
 +[; ;ds3231.c: 69:     I2C_Master_Write(0xD0);
  [e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
 -"55
 -[; ;ds3231.c: 55:     I2C_Master_Write(4);
 +"70
 +[; ;ds3231.c: 70:     I2C_Master_Write(4);
  [e ( _I2C_Master_Write (1 -> -> 4 `i `ui ]
 -"56
 -[; ;ds3231.c: 56:     I2C_Master_Write(DEC_2_BCD(date));
 +"71
 +[; ;ds3231.c: 71:     I2C_Master_Write(DEC_2_BCD(date));
  [e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _date `i `ui ]
 -"57
 -[; ;ds3231.c: 57:     I2C_Master_Write(DEC_2_BCD(month));
 +"72
 +[; ;ds3231.c: 72:     I2C_Master_Write(DEC_2_BCD(month));
  [e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _month `i `ui ]
 -"58
 -[; ;ds3231.c: 58:     I2C_Master_Write(DEC_2_BCD(year));
 +"73
 +[; ;ds3231.c: 73:     I2C_Master_Write(DEC_2_BCD(year));
  [e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _year `i `ui ]
 -"59
 -[; ;ds3231.c: 59:     I2C_Master_Stop();
 +"74
 +[; ;ds3231.c: 74:     I2C_Master_Stop();
  [e ( _I2C_Master_Stop ..  ]
 -"60
 -[; ;ds3231.c: 60: }
 -[e :UE 98 ]
 +"75
 +[; ;ds3231.c: 75: }
 +[e :UE 102 ]
  }
 -"62
 -[; ;ds3231.c: 62: void Set_DayOfWeek() {
 -[v _Set_DayOfWeek `(v ~T0 @X0 1 ef ]
 +"77
 +[; ;ds3231.c: 77: void Set_DayOfWeek(int dow) {
 +[v _Set_DayOfWeek `(v ~T0 @X0 1 ef1`i ]
  {
  [e :U _Set_DayOfWeek ]
 +[v _dow `i ~T0 @X0 1 r1 ]
  [f ]
 -"63
 -[; ;ds3231.c: 63:     I2C_Master_Start();
 +"78
 +[; ;ds3231.c: 78:     I2C_Master_Start();
  [e ( _I2C_Master_Start ..  ]
 -"64
 -[; ;ds3231.c: 64:     I2C_Master_Write(0xD0);
 +"79
 +[; ;ds3231.c: 79:     I2C_Master_Write(0xD0);
  [e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
 -"65
 -[; ;ds3231.c: 65:     I2C_Master_Write(3);
 +"80
 +[; ;ds3231.c: 80:     I2C_Master_Write(3);
  [e ( _I2C_Master_Write (1 -> -> 3 `i `ui ]
 -"66
 -[; ;ds3231.c: 66:     I2C_Master_Write(dayOfWeek);
 -[e ( _I2C_Master_Write (1 _dayOfWeek ]
 -"67
 -[; ;ds3231.c: 67:     I2C_Master_Stop();
 +"81
 +[; ;ds3231.c: 81:     I2C_Master_Write(dow);
 +[e ( _I2C_Master_Write (1 -> _dow `ui ]
 +"82
 +[; ;ds3231.c: 82:     I2C_Master_Stop();
  [e ( _I2C_Master_Stop ..  ]
 -"68
 -[; ;ds3231.c: 68: }
 -[e :UE 99 ]
 +"83
 +[; ;ds3231.c: 83: }
 +[e :UE 103 ]
  }
 -"70
 -[; ;ds3231.c: 70: void Set_Time() {
 -[v _Set_Time `(v ~T0 @X0 1 ef ]
 +"85
 +[; ;ds3231.c: 85: void Set_Sqwe(int contvalue) {
 +[v _Set_Sqwe `(v ~T0 @X0 1 ef1`i ]
  {
 -[e :U _Set_Time ]
 +[e :U _Set_Sqwe ]
 +[v _contvalue `i ~T0 @X0 1 r1 ]
  [f ]
 -"71
 -[; ;ds3231.c: 71:     I2C_Master_Start();
 +"86
 +[; ;ds3231.c: 86:     I2C_Master_Start();
  [e ( _I2C_Master_Start ..  ]
 -"72
 -[; ;ds3231.c: 72:     I2C_Master_Write(0xD0);
 +"87
 +[; ;ds3231.c: 87:     I2C_Master_Write(0xD0);
  [e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
 -"73
 -[; ;ds3231.c: 73:     I2C_Master_Write(0);
 -[e ( _I2C_Master_Write (1 -> -> 0 `i `ui ]
 -"74
 -[; ;ds3231.c: 74:     I2C_Master_Write(DEC_2_BCD(sec));
 -[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _sec `i `ui ]
 -"75
 -[; ;ds3231.c: 75:     I2C_Master_Write(DEC_2_BCD(min));
 -[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _min `i `ui ]
 -"76
 -[; ;ds3231.c: 76:     I2C_Master_Write(DEC_2_BCD(hour));
 -[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _hour `i `ui ]
 -"77
 -[; ;ds3231.c: 77:     I2C_Master_Stop();
 +"88
 +[; ;ds3231.c: 88:     I2C_Master_Write(0x0E);
 +[e ( _I2C_Master_Write (1 -> -> 14 `i `ui ]
 +"89
 +[; ;ds3231.c: 89:     I2C_Master_Write(contvalue);
 +[e ( _I2C_Master_Write (1 -> _contvalue `ui ]
 +"90
 +[; ;ds3231.c: 90:     I2C_Master_Stop();
  [e ( _I2C_Master_Stop ..  ]
 -"78
 -[; ;ds3231.c: 78: }
 -[e :UE 100 ]
 +"91
 +[; ;ds3231.c: 91: }
 +[e :UE 104 ]
  }
 -"80
 -[; ;ds3231.c: 80: void Set_Time_Date() {
 -[v _Set_Time_Date `(v ~T0 @X0 1 ef ]
 +"93
 +[; ;ds3231.c: 93: void Set_Time() {
 +[v _Set_Time `(v ~T0 @X0 1 ef ]
  {
 -[e :U _Set_Time_Date ]
 +[e :U _Set_Time ]
  [f ]
 -"81
 -[; ;ds3231.c: 81:     I2C_Master_Start();
 +"94
 +[; ;ds3231.c: 94:     I2C_Master_Start();
  [e ( _I2C_Master_Start ..  ]
 -"82
 -[; ;ds3231.c: 82:     I2C_Master_Write(0xD0);
 +"95
 +[; ;ds3231.c: 95:     I2C_Master_Write(0xD0);
  [e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
 -"83
 -[; ;ds3231.c: 83:     I2C_Master_Write(0);
 +"96
 +[; ;ds3231.c: 96:     I2C_Master_Write(0);
  [e ( _I2C_Master_Write (1 -> -> 0 `i `ui ]
 -"84
 -[; ;ds3231.c: 84:     I2C_Master_Write(DEC_2_BCD(sec));
 +"97
 +[; ;ds3231.c: 97:     I2C_Master_Write(DEC_2_BCD(sec));
  [e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _sec `i `ui ]
 -"85
 -[; ;ds3231.c: 85:     I2C_Master_Write(DEC_2_BCD(min));
 +"98
 +[; ;ds3231.c: 98:     I2C_Master_Write(DEC_2_BCD(min));
  [e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _min `i `ui ]
 -"86
 -[; ;ds3231.c: 86:     I2C_Master_Write(DEC_2_BCD(hour));
 +"99
 +[; ;ds3231.c: 99:     I2C_Master_Write(DEC_2_BCD(hour));
  [e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _hour `i `ui ]
 -"87
 -[; ;ds3231.c: 87:     I2C_Master_Write(1);
 -[e ( _I2C_Master_Write (1 -> -> 1 `i `ui ]
 -"88
 -[; ;ds3231.c: 88:     I2C_Master_Write(DEC_2_BCD(date));
 -[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _date `i `ui ]
 -"89
 -[; ;ds3231.c: 89:     I2C_Master_Write(DEC_2_BCD(month));
 -[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _month `i `ui ]
 -"90
 -[; ;ds3231.c: 90:     I2C_Master_Write(DEC_2_BCD(year));
 -[e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _year `i `ui ]
 -"91
 -[; ;ds3231.c: 91:     I2C_Master_Stop();
 +"100
 +[; ;ds3231.c: 100:     I2C_Master_Stop();
  [e ( _I2C_Master_Stop ..  ]
 -"92
 -[; ;ds3231.c: 92: }
 -[e :UE 101 ]
 +"101
 +[; ;ds3231.c: 101: }
 +[e :UE 105 ]
  }
 -"94
 -[; ;ds3231.c: 94: void Update_Current_Date_Time() {
 +"103
 +[; ;ds3231.c: 103: void Update_Current_Date_Time() {
  [v _Update_Current_Date_Time `(v ~T0 @X0 1 ef ]
  {
  [e :U _Update_Current_Date_Time ]
  [f ]
 -"96
 -[; ;ds3231.c: 96:     I2C_Master_Start();
 +"105
 +[; ;ds3231.c: 105:     I2C_Master_Start();
  [e ( _I2C_Master_Start ..  ]
 -"97
 -[; ;ds3231.c: 97:     I2C_Master_Write(0xD0);
 +"106
 +[; ;ds3231.c: 106:     I2C_Master_Write(0xD0);
  [e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
 -"98
 -[; ;ds3231.c: 98:     I2C_Master_Write(0);
 +"107
 +[; ;ds3231.c: 107:     I2C_Master_Write(0);
  [e ( _I2C_Master_Write (1 -> -> 0 `i `ui ]
 -"99
 -[; ;ds3231.c: 99:     I2C_Master_Repeated_Start();
 -[e ( _I2C_Master_Repeated_Start ..  ]
 -"102
 -[; ;ds3231.c: 102:     I2C_Master_Write(0xD1);
 +"108
 +[; ;ds3231.c: 108:     I2C_Master_Stop();
 +[e ( _I2C_Master_Stop ..  ]
 +"111
 +[; ;ds3231.c: 111:     I2C_Master_Start();
 +[e ( _I2C_Master_Start ..  ]
 +"112
 +[; ;ds3231.c: 112:     I2C_Master_Write(0xD1);
  [e ( _I2C_Master_Write (1 -> -> 209 `i `ui ]
 -"103
 -[; ;ds3231.c: 103:     sec = BCD_2_DEC(I2C_Master_Read(1));
 +"113
 +[; ;ds3231.c: 113:     sec = BCD_2_DEC(I2C_Master_Read(1));
  [e = _sec -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
 -"104
 -[; ;ds3231.c: 104:     min = BCD_2_DEC(I2C_Master_Read(1));
 +"114
 +[; ;ds3231.c: 114:     min = BCD_2_DEC(I2C_Master_Read(1));
  [e = _min -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
 -"105
 -[; ;ds3231.c: 105:     hour = BCD_2_DEC(I2C_Master_Read(1));
 +"115
 +[; ;ds3231.c: 115:     hour = BCD_2_DEC(I2C_Master_Read(1));
  [e = _hour -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
 -"106
 -[; ;ds3231.c: 106:     weekday = I2C_Master_Read(1);
 -[e = _weekday -> ( _I2C_Master_Read (1 -> -> 1 `i `us `*uc ]
 -"107
 -[; ;ds3231.c: 107:     date = BCD_2_DEC(I2C_Master_Read(1));
 +"116
 +[; ;ds3231.c: 116:     day = I2C_Master_Read(1);
 +[e = _day -> ( _I2C_Master_Read (1 -> -> 1 `i `us `ui ]
 +"117
 +[; ;ds3231.c: 117:     date = BCD_2_DEC(I2C_Master_Read(1));
  [e = _date -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
 -"108
 -[; ;ds3231.c: 108:     month = BCD_2_DEC(I2C_Master_Read(1));
 +"118
 +[; ;ds3231.c: 118:     month = BCD_2_DEC(I2C_Master_Read(1));
  [e = _month -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
 -"109
 -[; ;ds3231.c: 109:     year = BCD_2_DEC(I2C_Master_Read(1));
 +"119
 +[; ;ds3231.c: 119:     year = BCD_2_DEC(I2C_Master_Read(1));
  [e = _year -> ( _BCD_2_DEC (1 -> ( _I2C_Master_Read (1 -> -> 1 `i `us `i `ui ]
 -"110
 -[; ;ds3231.c: 110:     I2C_Master_Stop();
 +"120
 +[; ;ds3231.c: 120:     I2C_Master_Stop();
  [e ( _I2C_Master_Stop ..  ]
 -"114
 -[; ;ds3231.c: 114:     I2C_Master_Start();
 +"124
 +[; ;ds3231.c: 124:     I2C_Master_Start();
  [e ( _I2C_Master_Start ..  ]
 -"115
 -[; ;ds3231.c: 115:     I2C_Master_Write(0xD1);
 +"125
 +[; ;ds3231.c: 125:     I2C_Master_Write(0xD1);
  [e ( _I2C_Master_Write (1 -> -> 209 `i `ui ]
 -"116
 -[; ;ds3231.c: 116:     I2C_Master_Read(1);
 +"126
 +[; ;ds3231.c: 126:     I2C_Master_Read(1);
  [e ( _I2C_Master_Read (1 -> -> 1 `i `us ]
 -"117
 -[; ;ds3231.c: 117:     I2C_Master_Stop();
 +"127
 +[; ;ds3231.c: 127:     I2C_Master_Stop();
  [e ( _I2C_Master_Stop ..  ]
 -"118
 -[; ;ds3231.c: 118: }
 -[e :UE 102 ]
 +"128
 +[; ;ds3231.c: 128: }
 +[e :UE 106 ]
  }
 -"120
 -[; ;ds3231.c: 120: void Write_Alarms() {
 +"130
 +[; ;ds3231.c: 130: void Write_Alarms() {
  [v _Write_Alarms `(v ~T0 @X0 1 ef ]
  {
  [e :U _Write_Alarms ]
  [f ]
 -"121
 -[; ;ds3231.c: 121:     I2C_Master_Start();
 +"131
 +[; ;ds3231.c: 131:     I2C_Master_Start();
  [e ( _I2C_Master_Start ..  ]
 -"122
 -[; ;ds3231.c: 122:     I2C_Master_Write(0xD0);
 +"132
 +[; ;ds3231.c: 132:     I2C_Master_Write(0xD0);
  [e ( _I2C_Master_Write (1 -> -> 208 `i `ui ]
 -"123
 -[; ;ds3231.c: 123:     I2C_Master_Write(7);
 +"133
 +[; ;ds3231.c: 133:     I2C_Master_Write(7);
  [e ( _I2C_Master_Write (1 -> -> 7 `i `ui ]
 -"124
 -[; ;ds3231.c: 124:     I2C_Master_Write(0);
 +"134
 +[; ;ds3231.c: 134:     I2C_Master_Write(0);
  [e ( _I2C_Master_Write (1 -> -> 0 `i `ui ]
 -"125
 -[; ;ds3231.c: 125:     I2C_Master_Write(DEC_2_BCD(alarm1_min));
 +"135
 +[; ;ds3231.c: 135:     I2C_Master_Write(DEC_2_BCD(alarm1_min));
  [e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _alarm1_min `i `ui ]
 -"126
 -[; ;ds3231.c: 126:     I2C_Master_Write(DEC_2_BCD(alarm1_hour));
 +"136
 +[; ;ds3231.c: 136:     I2C_Master_Write(DEC_2_BCD(alarm1_hour));
  [e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _alarm1_hour `i `ui ]
 -"127
 -[; ;ds3231.c: 127:     I2C_Master_Write(0x80);
 +"137
 +[; ;ds3231.c: 137:     I2C_Master_Write(0x80);
  [e ( _I2C_Master_Write (1 -> -> 128 `i `ui ]
 -"128
 -[; ;ds3231.c: 128:     I2C_Master_Write(DEC_2_BCD(alarm2_min));
 +"138
 +[; ;ds3231.c: 138:     I2C_Master_Write(DEC_2_BCD(alarm2_min));
  [e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _alarm2_min `i `ui ]
 -"129
 -[; ;ds3231.c: 129:     I2C_Master_Write(DEC_2_BCD(alarm2_hour));
 +"139
 +[; ;ds3231.c: 139:     I2C_Master_Write(DEC_2_BCD(alarm2_hour));
  [e ( _I2C_Master_Write (1 -> ( _DEC_2_BCD (1 -> _alarm2_hour `i `ui ]
 -"130
 -[; ;ds3231.c: 130:     I2C_Master_Write(0x80);
 +"140
 +[; ;ds3231.c: 140:     I2C_Master_Write(0x80);
  [e ( _I2C_Master_Write (1 -> -> 128 `i `ui ]
 -"133
 -[; ;ds3231.c: 133:     I2C_Master_Write(4 | alarm1_status | (alarm2_status << 1));
 +"143
 +[; ;ds3231.c: 143:     I2C_Master_Write(4 | alarm1_status | (alarm2_status << 1));
  [e ( _I2C_Master_Write (1 | | -> -> 4 `i `ui _alarm1_status << _alarm2_status -> 1 `i ]
 -"134
 -[; ;ds3231.c: 134:     I2C_Master_Write(0);
 +"144
 +[; ;ds3231.c: 144:     I2C_Master_Write(0);
  [e ( _I2C_Master_Write (1 -> -> 0 `i `ui ]
 -"135
 -[; ;ds3231.c: 135:     I2C_Master_Stop();
 +"145
 +[; ;ds3231.c: 145:     I2C_Master_Stop();
  [e ( _I2C_Master_Stop ..  ]
 -"136
 -[; ;ds3231.c: 136:     _delay((unsigned long)((200)*(20000000/4000.0)));
 +"146
 +[; ;ds3231.c: 146:     _delay((unsigned long)((200)*(20000000/4000.0)));
  [e ( __delay (1 -> * -> -> 200 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 -"137
 -[; ;ds3231.c: 137: }
 -[e :UE 103 ]
 +"147
 +[; ;ds3231.c: 147: }
 +[e :UE 107 ]
  }
 diff --git a/build/default/production/ds3231.p1.d b/build/default/production/ds3231.p1.d index 4046f39..f3c9513 100755 --- a/build/default/production/ds3231.p1.d +++ b/build/default/production/ds3231.p1.d @@ -3,4 +3,7 @@ ds3231.c  \  ds3231.h  \
  conf.h  \
  i2c.h  \
 -main.h 
 +main.h  \
 +lcd.h  \
 +adc.h  \
 +beep.h 
 diff --git a/build/default/production/i2c.i b/build/default/production/i2c.i index 2920dec..6e7f8bb 100755 --- a/build/default/production/i2c.i +++ b/build/default/production/i2c.i @@ -1752,56 +1752,55 @@ extern __bank0 __bit __timeout;  void I2C_Master_Init(const unsigned long freq_K)  { -  TRISC3 = 1; TRISC4 = 1; +    TRISC3 = 1; +    TRISC4 = 1; -  SSPCON = 0b00101000; -  SSPCON2 = 0b00000000; +    SSPCON = 0b00101000; +    SSPCON2 = 0b00000000; -  SSPADD = (20000000/(4*freq_K*100))-1; -  SSPSTAT = 0b00000000; + +    SSPADD = 49; + + +    SMP = 1; +    CKP = 0;  } -void I2C_Master_Wait() -{ -    while ( (SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100) ) ; +void I2C_Master_Wait() { +    while ((SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100));  } -void I2C_Master_Start() -{ -  I2C_Master_Wait(); -  SEN = 1; +void I2C_Master_Start() { +    I2C_Master_Wait(); +    SEN = 1;  } -void I2C_Master_Repeated_Start() -{ +void I2C_Master_Repeated_Start() {      I2C_Master_Wait();      RSEN = 1;  } -void I2C_Master_Stop() -{ -  I2C_Master_Wait(); -  PEN = 1; +void I2C_Master_Stop() { +    I2C_Master_Wait(); +    PEN = 1;  } -void I2C_Master_Write(unsigned data) -{ -  I2C_Master_Wait(); -  SSPBUF = data; +void I2C_Master_Write(unsigned data) { +    I2C_Master_Wait(); +    SSPBUF = data;  } -unsigned short I2C_Master_Read(unsigned short ack) -{ -  unsigned short incoming; -  I2C_Master_Wait(); -  RCEN = 1; +unsigned short I2C_Master_Read(unsigned short ack) { +    unsigned short incoming; +    I2C_Master_Wait(); +    RCEN = 1; -  I2C_Master_Wait(); -  incoming = SSPBUF; +    I2C_Master_Wait(); +    incoming = SSPBUF; -  I2C_Master_Wait(); -  ACKDT = (ack)?0:1; -  ACKEN = 1; +    I2C_Master_Wait(); +    ACKDT = (ack) ? 0 : 1; +    ACKEN = 1; -  return incoming; +    return incoming;  } diff --git a/build/default/production/i2c.p1 b/build/default/production/i2c.p1 index 7ae1e28..aa14898 100755 --- a/build/default/production/i2c.p1 +++ b/build/default/production/i2c.p1 @@ -14,6 +14,12 @@ Version 4.0 HI-TECH Software Intermediate Code  "1823
  [; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1823: extern volatile unsigned char SSPADD __attribute__((address(0x093)));
  [v _SSPADD `Vuc ~T0 @X0 0 e@147 ]
 +"2809
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2809: extern volatile __bit SMP __attribute__((address(0x4A7)));
 +[v _SMP `Vb ~T0 @X0 0 e@1191 ]
 +"2497
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2497: extern volatile __bit CKP __attribute__((address(0xA4)));
 +[v _CKP `Vb ~T0 @X0 0 e@164 ]
  "1830
  [; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1830: extern volatile unsigned char SSPSTAT __attribute__((address(0x094)));
  [v _SSPSTAT `Vuc ~T0 @X0 0 e@148 ]
 @@ -248,163 +254,148 @@ Version 4.0 HI-TECH Software Intermediate Code  [; ;i2c.c: 9: {
  [f ]
  "10
 -[; ;i2c.c: 10:   TRISC3 = 1; TRISC4 = 1;
 +[; ;i2c.c: 10:     TRISC3 = 1;
  [e = _TRISC3 -> -> 1 `i `b ]
 +"11
 +[; ;i2c.c: 11:     TRISC4 = 1;
  [e = _TRISC4 -> -> 1 `i `b ]
 -"12
 -[; ;i2c.c: 12:   SSPCON = 0b00101000;
 -[e = _SSPCON -> -> 40 `i `uc ]
  "13
 -[; ;i2c.c: 13:   SSPCON2 = 0b00000000;
 +[; ;i2c.c: 13:     SSPCON = 0b00101000;
 +[e = _SSPCON -> -> 40 `i `uc ]
 +"14
 +[; ;i2c.c: 14:     SSPCON2 = 0b00000000;
  [e = _SSPCON2 -> -> 0 `i `uc ]
 -"15
 -[; ;i2c.c: 15:   SSPADD = (20000000/(4*freq_K*100))-1;
 -[e = _SSPADD -> - / -> -> 20000000 `l `ul * * -> -> -> 4 `i `l `ul _freq_K -> -> -> 100 `i `l `ul -> -> -> 1 `i `l `ul `uc ]
 -"16
 -[; ;i2c.c: 16:   SSPSTAT = 0b00000000;
 -[e = _SSPSTAT -> -> 0 `i `uc ]
  "17
 -[; ;i2c.c: 17: }
 +[; ;i2c.c: 17:     SSPADD = 49;
 +[e = _SSPADD -> -> 49 `i `uc ]
 +"20
 +[; ;i2c.c: 20:     SMP = 1;
 +[e = _SMP -> -> 1 `i `b ]
 +"21
 +[; ;i2c.c: 21:     CKP = 0;
 +[e = _CKP -> -> 0 `i `b ]
 +"22
 +[; ;i2c.c: 22: }
  [e :UE 95 ]
  }
 -"19
 -[; ;i2c.c: 19: void I2C_Master_Wait()
 +"24
 +[; ;i2c.c: 24: void I2C_Master_Wait() {
  [v _I2C_Master_Wait `(v ~T0 @X0 1 ef ]
 -"20
 -[; ;i2c.c: 20: {
  {
  [e :U _I2C_Master_Wait ]
  [f ]
 -"21
 -[; ;i2c.c: 21:     while ( (SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100) ) ;
 +"25
 +[; ;i2c.c: 25:     while ((SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100));
  [e $U 97  ]
  [e :U 98 ]
  [e :U 97 ]
  [e $ || != & -> _SSPCON2 `i -> 31 `i -> 0 `i != & -> _SSPSTAT `i -> 4 `i -> 0 `i 98  ]
  [e :U 99 ]
 -"22
 -[; ;i2c.c: 22: }
 +"26
 +[; ;i2c.c: 26: }
  [e :UE 96 ]
  }
 -"24
 -[; ;i2c.c: 24: void I2C_Master_Start()
 +"28
 +[; ;i2c.c: 28: void I2C_Master_Start() {
  [v _I2C_Master_Start `(v ~T0 @X0 1 ef ]
 -"25
 -[; ;i2c.c: 25: {
  {
  [e :U _I2C_Master_Start ]
  [f ]
 -"26
 -[; ;i2c.c: 26:   I2C_Master_Wait();
 +"29
 +[; ;i2c.c: 29:     I2C_Master_Wait();
  [e ( _I2C_Master_Wait ..  ]
 -"27
 -[; ;i2c.c: 27:   SEN = 1;
 +"30
 +[; ;i2c.c: 30:     SEN = 1;
  [e = _SEN -> -> 1 `i `b ]
 -"28
 -[; ;i2c.c: 28: }
 +"31
 +[; ;i2c.c: 31: }
  [e :UE 100 ]
  }
 -"30
 -[; ;i2c.c: 30: void I2C_Master_Repeated_Start()
 +"33
 +[; ;i2c.c: 33: void I2C_Master_Repeated_Start() {
  [v _I2C_Master_Repeated_Start `(v ~T0 @X0 1 ef ]
 -"31
 -[; ;i2c.c: 31: {
  {
  [e :U _I2C_Master_Repeated_Start ]
  [f ]
 -"32
 -[; ;i2c.c: 32:     I2C_Master_Wait();
 +"34
 +[; ;i2c.c: 34:     I2C_Master_Wait();
  [e ( _I2C_Master_Wait ..  ]
 -"33
 -[; ;i2c.c: 33:     RSEN = 1;
 +"35
 +[; ;i2c.c: 35:     RSEN = 1;
  [e = _RSEN -> -> 1 `i `b ]
 -"34
 -[; ;i2c.c: 34: }
 +"36
 +[; ;i2c.c: 36: }
  [e :UE 101 ]
  }
 -"36
 -[; ;i2c.c: 36: void I2C_Master_Stop()
 +"38
 +[; ;i2c.c: 38: void I2C_Master_Stop() {
  [v _I2C_Master_Stop `(v ~T0 @X0 1 ef ]
 -"37
 -[; ;i2c.c: 37: {
  {
  [e :U _I2C_Master_Stop ]
  [f ]
 -"38
 -[; ;i2c.c: 38:   I2C_Master_Wait();
 -[e ( _I2C_Master_Wait ..  ]
  "39
 -[; ;i2c.c: 39:   PEN = 1;
 -[e = _PEN -> -> 1 `i `b ]
 +[; ;i2c.c: 39:     I2C_Master_Wait();
 +[e ( _I2C_Master_Wait ..  ]
  "40
 -[; ;i2c.c: 40: }
 +[; ;i2c.c: 40:     PEN = 1;
 +[e = _PEN -> -> 1 `i `b ]
 +"41
 +[; ;i2c.c: 41: }
  [e :UE 102 ]
  }
 -"42
 -[; ;i2c.c: 42: void I2C_Master_Write(unsigned data)
 -[v _I2C_Master_Write `(v ~T0 @X0 1 ef1`ui ]
  "43
 -[; ;i2c.c: 43: {
 +[; ;i2c.c: 43: void I2C_Master_Write(unsigned data) {
 +[v _I2C_Master_Write `(v ~T0 @X0 1 ef1`ui ]
  {
  [e :U _I2C_Master_Write ]
 -"42
 -[; ;i2c.c: 42: void I2C_Master_Write(unsigned data)
  [v _data `ui ~T0 @X0 1 r1 ]
 -"43
 -[; ;i2c.c: 43: {
  [f ]
  "44
 -[; ;i2c.c: 44:   I2C_Master_Wait();
 +[; ;i2c.c: 44:     I2C_Master_Wait();
  [e ( _I2C_Master_Wait ..  ]
  "45
 -[; ;i2c.c: 45:   SSPBUF = data;
 +[; ;i2c.c: 45:     SSPBUF = data;
  [e = _SSPBUF -> _data `uc ]
  "46
  [; ;i2c.c: 46: }
  [e :UE 103 ]
  }
  "48
 -[; ;i2c.c: 48: unsigned short I2C_Master_Read(unsigned short ack)
 +[; ;i2c.c: 48: unsigned short I2C_Master_Read(unsigned short ack) {
  [v _I2C_Master_Read `(us ~T0 @X0 1 ef1`us ]
 -"49
 -[; ;i2c.c: 49: {
  {
  [e :U _I2C_Master_Read ]
 -"48
 -[; ;i2c.c: 48: unsigned short I2C_Master_Read(unsigned short ack)
  [v _ack `us ~T0 @X0 1 r1 ]
 -"49
 -[; ;i2c.c: 49: {
  [f ]
 -"50
 -[; ;i2c.c: 50:   unsigned short incoming;
 +"49
 +[; ;i2c.c: 49:     unsigned short incoming;
  [v _incoming `us ~T0 @X0 1 a ]
 -"51
 -[; ;i2c.c: 51:   I2C_Master_Wait();
 +"50
 +[; ;i2c.c: 50:     I2C_Master_Wait();
  [e ( _I2C_Master_Wait ..  ]
 -"52
 -[; ;i2c.c: 52:   RCEN = 1;
 +"51
 +[; ;i2c.c: 51:     RCEN = 1;
  [e = _RCEN -> -> 1 `i `b ]
 -"54
 -[; ;i2c.c: 54:   I2C_Master_Wait();
 +"53
 +[; ;i2c.c: 53:     I2C_Master_Wait();
  [e ( _I2C_Master_Wait ..  ]
 -"55
 -[; ;i2c.c: 55:   incoming = SSPBUF;
 +"54
 +[; ;i2c.c: 54:     incoming = SSPBUF;
  [e = _incoming -> _SSPBUF `us ]
 -"57
 -[; ;i2c.c: 57:   I2C_Master_Wait();
 +"56
 +[; ;i2c.c: 56:     I2C_Master_Wait();
  [e ( _I2C_Master_Wait ..  ]
 -"58
 -[; ;i2c.c: 58:   ACKDT = (ack)?0:1;
 +"57
 +[; ;i2c.c: 57:     ACKDT = (ack) ? 0 : 1;
  [e = _ACKDT -> ? != -> _ack `ui -> -> 0 `i `ui : -> 0 `i -> 1 `i `b ]
 -"59
 -[; ;i2c.c: 59:   ACKEN = 1;
 +"58
 +[; ;i2c.c: 58:     ACKEN = 1;
  [e = _ACKEN -> -> 1 `i `b ]
 -"61
 -[; ;i2c.c: 61:   return incoming;
 +"60
 +[; ;i2c.c: 60:     return incoming;
  [e ) _incoming ]
  [e $UE 104  ]
 -"62
 -[; ;i2c.c: 62: }
 +"61
 +[; ;i2c.c: 61: }
  [e :UE 104 ]
  }
 diff --git a/build/default/production/lcd.i b/build/default/production/lcd.i index 370b6b7..6ca4575 100755 --- a/build/default/production/lcd.i +++ b/build/default/production/lcd.i @@ -8,20 +8,6 @@  # 2 "<built-in>" 2  # 1 "lcd.c" 2  # 1 "./lcd.h" 1 -void Lcd_Port(char); -void Lcd_Cmd(char); -void Lcd_Clear(); -void Lcd_Set_Cursor(char, char); -void Lcd_Init(); -void Lcd_Write_Char(char); -void Lcd_Write_String(char *); -void Lcd_Shift_Right(); -void Lcd_Shift_Left(); - - -void Vfd_Set_Brightness(int); -# 1 "lcd.c" 2 -  # 1 "./conf.h" 1  # 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3  # 18 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 3 @@ -1748,7 +1734,23 @@ extern __bank0 __bit __timeout;  #pragma config CPD = OFF  #pragma config WRT = OFF  #pragma config CP = OFF -# 2 "lcd.c" 2 +# 1 "./lcd.h" 2 + + +void Lcd_Port(char); +void Lcd_Cmd(char); +void Lcd_Clear(void); +void Lcd_Set_Cursor(char, char); +void Lcd_Init(void); +void Lcd_Write_Char(char); +void Lcd_Write_String(char *); +void Lcd_Shift_Right(void); +void Lcd_Shift_Left(void); + + + +void Vfd_Set_Brightness(int); +# 1 "lcd.c" 2 @@ -1783,7 +1785,7 @@ void Lcd_Cmd(char a) {      RD3 = 0;  } -void Lcd_Clear() { +void Lcd_Clear(void) {      Lcd_Cmd(0);      Lcd_Cmd(1);  } @@ -1805,7 +1807,7 @@ void Lcd_Set_Cursor(char a, char b) {      }  } -void Lcd_Init() { +void Lcd_Init(void) {      Lcd_Port(0x00);      _delay((unsigned long)((20)*(20000000/4000.0)));      Lcd_Cmd(0x03); @@ -1815,6 +1817,9 @@ void Lcd_Init() {      Lcd_Cmd(0x03);      Lcd_Cmd(0x02); + +    Vfd_Set_Brightness(0); +      Lcd_Cmd(0x02);      Lcd_Cmd(0x08);      Lcd_Cmd(0x00); @@ -1844,17 +1849,23 @@ void Lcd_Write_String(char *a) {          Lcd_Write_Char(a[i]);  } -void Lcd_Shift_Right() { +void Lcd_Shift_Right(void) {      Lcd_Cmd(0x01);      Lcd_Cmd(0x0C);  } -void Lcd_Shift_Left() { +void Lcd_Shift_Left(void) {      Lcd_Cmd(0x01);      Lcd_Cmd(0x08);  } +  void Vfd_Set_Brightness(int level) { +    Lcd_Cmd(0x03); +    _delay((unsigned long)((11)*(20000000/4000.0))); +    Lcd_Cmd(0x03); +    Lcd_Cmd(0x02); +    Lcd_Write_Char(level);  } diff --git a/build/default/production/lcd.p1 b/build/default/production/lcd.p1 index cd257aa..b709bc2 100755 --- a/build/default/production/lcd.p1 +++ b/build/default/production/lcd.p1 @@ -17,10 +17,13 @@ Version 4.0 HI-TECH Software Intermediate Code  "2758
  [; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2758: extern volatile __bit RD3 __attribute__((address(0x43)));
  [v _RD3 `Vb ~T0 @X0 0 e@67 ]
 -[v F859 `(v ~T0 @X0 1 tf1`ul ]
 +[v F842 `(v ~T0 @X0 1 tf1`ul ]
  "92 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic.h
 -[v __delay `JF859 ~T0 @X0 0 e ]
 +[v __delay `JF842 ~T0 @X0 0 e ]
  [p i __delay ]
 +"15 ./lcd.h
 +[; ;./lcd.h: 15: void Vfd_Set_Brightness(int);
 +[v _Vfd_Set_Brightness `(v ~T0 @X0 0 ef1`i ]
  "54 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
  [; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 54: __asm("INDF equ 00h");
  [; <" INDF equ 00h ;# ">
 @@ -217,346 +220,364 @@ Version 4.0 HI-TECH Software Intermediate Code  [p x WRT = OFF ]
  "11
  [p x CP = OFF ]
 -"6 lcd.c
 -[; ;lcd.c: 6: void Lcd_Port(char a) {
 +"5 lcd.c
 +[; ;lcd.c: 5: void Lcd_Port(char a) {
  [v _Lcd_Port `(v ~T0 @X0 1 ef1`uc ]
  {
  [e :U _Lcd_Port ]
  [v _a `uc ~T0 @X0 1 r1 ]
  [f ]
 -"7
 -[; ;lcd.c: 7:     if (a & 1)
 +"6
 +[; ;lcd.c: 6:     if (a & 1)
  [e $ ! != & -> _a `i -> 1 `i -> 0 `i 96  ]
 -"8
 -[; ;lcd.c: 8:         RD4 = 1;
 +"7
 +[; ;lcd.c: 7:         RD4 = 1;
  [e = _RD4 -> -> 1 `i `b ]
  [e $U 97  ]
 -"9
 -[; ;lcd.c: 9:     else
 +"8
 +[; ;lcd.c: 8:     else
  [e :U 96 ]
 -"10
 -[; ;lcd.c: 10:         RD4 = 0;
 +"9
 +[; ;lcd.c: 9:         RD4 = 0;
  [e = _RD4 -> -> 0 `i `b ]
  [e :U 97 ]
 -"12
 -[; ;lcd.c: 12:     if (a & 2)
 +"11
 +[; ;lcd.c: 11:     if (a & 2)
  [e $ ! != & -> _a `i -> 2 `i -> 0 `i 98  ]
 -"13
 -[; ;lcd.c: 13:         RD5 = 1;
 +"12
 +[; ;lcd.c: 12:         RD5 = 1;
  [e = _RD5 -> -> 1 `i `b ]
  [e $U 99  ]
 -"14
 -[; ;lcd.c: 14:     else
 +"13
 +[; ;lcd.c: 13:     else
  [e :U 98 ]
 -"15
 -[; ;lcd.c: 15:         RD5 = 0;
 +"14
 +[; ;lcd.c: 14:         RD5 = 0;
  [e = _RD5 -> -> 0 `i `b ]
  [e :U 99 ]
 -"17
 -[; ;lcd.c: 17:     if (a & 4)
 +"16
 +[; ;lcd.c: 16:     if (a & 4)
  [e $ ! != & -> _a `i -> 4 `i -> 0 `i 100  ]
 -"18
 -[; ;lcd.c: 18:         RD6 = 1;
 +"17
 +[; ;lcd.c: 17:         RD6 = 1;
  [e = _RD6 -> -> 1 `i `b ]
  [e $U 101  ]
 -"19
 -[; ;lcd.c: 19:     else
 +"18
 +[; ;lcd.c: 18:     else
  [e :U 100 ]
 -"20
 -[; ;lcd.c: 20:         RD6 = 0;
 +"19
 +[; ;lcd.c: 19:         RD6 = 0;
  [e = _RD6 -> -> 0 `i `b ]
  [e :U 101 ]
 -"22
 -[; ;lcd.c: 22:     if (a & 8)
 +"21
 +[; ;lcd.c: 21:     if (a & 8)
  [e $ ! != & -> _a `i -> 8 `i -> 0 `i 102  ]
 -"23
 -[; ;lcd.c: 23:         RD7 = 1;
 +"22
 +[; ;lcd.c: 22:         RD7 = 1;
  [e = _RD7 -> -> 1 `i `b ]
  [e $U 103  ]
 -"24
 -[; ;lcd.c: 24:     else
 +"23
 +[; ;lcd.c: 23:     else
  [e :U 102 ]
 -"25
 -[; ;lcd.c: 25:         RD7 = 0;
 +"24
 +[; ;lcd.c: 24:         RD7 = 0;
  [e = _RD7 -> -> 0 `i `b ]
  [e :U 103 ]
 -"26
 -[; ;lcd.c: 26: }
 +"25
 +[; ;lcd.c: 25: }
  [e :UE 95 ]
  }
 -"28
 -[; ;lcd.c: 28: void Lcd_Cmd(char a) {
 +"27
 +[; ;lcd.c: 27: void Lcd_Cmd(char a) {
  [v _Lcd_Cmd `(v ~T0 @X0 1 ef1`uc ]
  {
  [e :U _Lcd_Cmd ]
  [v _a `uc ~T0 @X0 1 r1 ]
  [f ]
 -"29
 -[; ;lcd.c: 29:     RD2 = 0;
 +"28
 +[; ;lcd.c: 28:     RD2 = 0;
  [e = _RD2 -> -> 0 `i `b ]
 -"30
 -[; ;lcd.c: 30:     Lcd_Port(a);
 +"29
 +[; ;lcd.c: 29:     Lcd_Port(a);
  [e ( _Lcd_Port (1 _a ]
 -"31
 -[; ;lcd.c: 31:     RD3 = 1;
 +"30
 +[; ;lcd.c: 30:     RD3 = 1;
  [e = _RD3 -> -> 1 `i `b ]
 -"32
 -[; ;lcd.c: 32:     _delay((unsigned long)((4)*(20000000/4000.0)));
 +"31
 +[; ;lcd.c: 31:     _delay((unsigned long)((4)*(20000000/4000.0)));
  [e ( __delay (1 -> * -> -> 4 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 -"33
 -[; ;lcd.c: 33:     RD3 = 0;
 +"32
 +[; ;lcd.c: 32:     RD3 = 0;
  [e = _RD3 -> -> 0 `i `b ]
 -"34
 -[; ;lcd.c: 34: }
 +"33
 +[; ;lcd.c: 33: }
  [e :UE 104 ]
  }
 -"36
 -[; ;lcd.c: 36: void Lcd_Clear() {
 +"35
 +[; ;lcd.c: 35: void Lcd_Clear(void) {
  [v _Lcd_Clear `(v ~T0 @X0 1 ef ]
  {
  [e :U _Lcd_Clear ]
  [f ]
 -"37
 -[; ;lcd.c: 37:     Lcd_Cmd(0);
 +"36
 +[; ;lcd.c: 36:     Lcd_Cmd(0);
  [e ( _Lcd_Cmd (1 -> -> 0 `i `uc ]
 -"38
 -[; ;lcd.c: 38:     Lcd_Cmd(1);
 +"37
 +[; ;lcd.c: 37:     Lcd_Cmd(1);
  [e ( _Lcd_Cmd (1 -> -> 1 `i `uc ]
 -"39
 -[; ;lcd.c: 39: }
 +"38
 +[; ;lcd.c: 38: }
  [e :UE 105 ]
  }
 -"41
 -[; ;lcd.c: 41: void Lcd_Set_Cursor(char a, char b) {
 +"40
 +[; ;lcd.c: 40: void Lcd_Set_Cursor(char a, char b) {
  [v _Lcd_Set_Cursor `(v ~T0 @X0 1 ef2`uc`uc ]
  {
  [e :U _Lcd_Set_Cursor ]
  [v _a `uc ~T0 @X0 1 r1 ]
  [v _b `uc ~T0 @X0 1 r2 ]
  [f ]
 -"42
 -[; ;lcd.c: 42:     char temp, z, y;
 +"41
 +[; ;lcd.c: 41:     char temp, z, y;
  [v _temp `uc ~T0 @X0 1 a ]
  [v _z `uc ~T0 @X0 1 a ]
  [v _y `uc ~T0 @X0 1 a ]
 -"43
 -[; ;lcd.c: 43:     if (a == 1) {
 +"42
 +[; ;lcd.c: 42:     if (a == 1) {
  [e $ ! == -> _a `i -> 1 `i 107  ]
  {
 -"44
 -[; ;lcd.c: 44:         temp = 0x80 + b - 1;
 +"43
 +[; ;lcd.c: 43:         temp = 0x80 + b - 1;
  [e = _temp -> - + -> 128 `i -> _b `i -> 1 `i `uc ]
 -"45
 -[; ;lcd.c: 45:         z = temp >> 4;
 +"44
 +[; ;lcd.c: 44:         z = temp >> 4;
  [e = _z -> >> -> _temp `i -> 4 `i `uc ]
 -"46
 -[; ;lcd.c: 46:         y = temp & 0x0F;
 +"45
 +[; ;lcd.c: 45:         y = temp & 0x0F;
  [e = _y -> & -> _temp `i -> 15 `i `uc ]
 -"47
 -[; ;lcd.c: 47:         Lcd_Cmd(z);
 +"46
 +[; ;lcd.c: 46:         Lcd_Cmd(z);
  [e ( _Lcd_Cmd (1 _z ]
 -"48
 -[; ;lcd.c: 48:         Lcd_Cmd(y);
 +"47
 +[; ;lcd.c: 47:         Lcd_Cmd(y);
  [e ( _Lcd_Cmd (1 _y ]
 -"49
 -[; ;lcd.c: 49:     } else if (a == 2) {
 +"48
 +[; ;lcd.c: 48:     } else if (a == 2) {
  }
  [e $U 108  ]
  [e :U 107 ]
  [e $ ! == -> _a `i -> 2 `i 109  ]
  {
 -"50
 -[; ;lcd.c: 50:         temp = 0xC0 + b - 1;
 +"49
 +[; ;lcd.c: 49:         temp = 0xC0 + b - 1;
  [e = _temp -> - + -> 192 `i -> _b `i -> 1 `i `uc ]
 -"51
 -[; ;lcd.c: 51:         z = temp >> 4;
 +"50
 +[; ;lcd.c: 50:         z = temp >> 4;
  [e = _z -> >> -> _temp `i -> 4 `i `uc ]
 -"52
 -[; ;lcd.c: 52:         y = temp & 0x0F;
 +"51
 +[; ;lcd.c: 51:         y = temp & 0x0F;
  [e = _y -> & -> _temp `i -> 15 `i `uc ]
 -"53
 -[; ;lcd.c: 53:         Lcd_Cmd(z);
 +"52
 +[; ;lcd.c: 52:         Lcd_Cmd(z);
  [e ( _Lcd_Cmd (1 _z ]
 -"54
 -[; ;lcd.c: 54:         Lcd_Cmd(y);
 +"53
 +[; ;lcd.c: 53:         Lcd_Cmd(y);
  [e ( _Lcd_Cmd (1 _y ]
 -"55
 -[; ;lcd.c: 55:     }
 +"54
 +[; ;lcd.c: 54:     }
  }
  [e :U 109 ]
  [e :U 108 ]
 -"56
 -[; ;lcd.c: 56: }
 +"55
 +[; ;lcd.c: 55: }
  [e :UE 106 ]
  }
 -"58
 -[; ;lcd.c: 58: void Lcd_Init() {
 +"57
 +[; ;lcd.c: 57: void Lcd_Init(void) {
  [v _Lcd_Init `(v ~T0 @X0 1 ef ]
  {
  [e :U _Lcd_Init ]
  [f ]
 -"59
 -[; ;lcd.c: 59:     Lcd_Port(0x00);
 +"58
 +[; ;lcd.c: 58:     Lcd_Port(0x00);
  [e ( _Lcd_Port (1 -> -> 0 `i `uc ]
 -"60
 -[; ;lcd.c: 60:     _delay((unsigned long)((20)*(20000000/4000.0)));
 +"59
 +[; ;lcd.c: 59:     _delay((unsigned long)((20)*(20000000/4000.0)));
  [e ( __delay (1 -> * -> -> 20 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 -"61
 -[; ;lcd.c: 61:     Lcd_Cmd(0x03);
 +"60
 +[; ;lcd.c: 60:     Lcd_Cmd(0x03);
  [e ( _Lcd_Cmd (1 -> -> 3 `i `uc ]
 -"62
 -[; ;lcd.c: 62:     _delay((unsigned long)((5)*(20000000/4000.0)));
 +"61
 +[; ;lcd.c: 61:     _delay((unsigned long)((5)*(20000000/4000.0)));
  [e ( __delay (1 -> * -> -> 5 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 -"63
 -[; ;lcd.c: 63:     Lcd_Cmd(0x03);
 +"62
 +[; ;lcd.c: 62:     Lcd_Cmd(0x03);
  [e ( _Lcd_Cmd (1 -> -> 3 `i `uc ]
 -"64
 -[; ;lcd.c: 64:     _delay((unsigned long)((11)*(20000000/4000.0)));
 +"63
 +[; ;lcd.c: 63:     _delay((unsigned long)((11)*(20000000/4000.0)));
  [e ( __delay (1 -> * -> -> 11 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 -"65
 -[; ;lcd.c: 65:     Lcd_Cmd(0x03);
 +"64
 +[; ;lcd.c: 64:     Lcd_Cmd(0x03);
  [e ( _Lcd_Cmd (1 -> -> 3 `i `uc ]
 -"67
 -[; ;lcd.c: 67:     Lcd_Cmd(0x02);
 +"66
 +[; ;lcd.c: 66:     Lcd_Cmd(0x02);
  [e ( _Lcd_Cmd (1 -> -> 2 `i `uc ]
  "68
 -[; ;lcd.c: 68:     Lcd_Cmd(0x02);
 -[e ( _Lcd_Cmd (1 -> -> 2 `i `uc ]
 -"69
 -[; ;lcd.c: 69:     Lcd_Cmd(0x08);
 -[e ( _Lcd_Cmd (1 -> -> 8 `i `uc ]
 +[; ;lcd.c: 68:     Vfd_Set_Brightness(0);
 +[e ( _Vfd_Set_Brightness (1 -> 0 `i ]
  "70
 -[; ;lcd.c: 70:     Lcd_Cmd(0x00);
 -[e ( _Lcd_Cmd (1 -> -> 0 `i `uc ]
 +[; ;lcd.c: 70:     Lcd_Cmd(0x02);
 +[e ( _Lcd_Cmd (1 -> -> 2 `i `uc ]
  "71
 -[; ;lcd.c: 71:     Lcd_Cmd(0x0C);
 -[e ( _Lcd_Cmd (1 -> -> 12 `i `uc ]
 +[; ;lcd.c: 71:     Lcd_Cmd(0x08);
 +[e ( _Lcd_Cmd (1 -> -> 8 `i `uc ]
  "72
  [; ;lcd.c: 72:     Lcd_Cmd(0x00);
  [e ( _Lcd_Cmd (1 -> -> 0 `i `uc ]
  "73
 -[; ;lcd.c: 73:     Lcd_Cmd(0x06);
 -[e ( _Lcd_Cmd (1 -> -> 6 `i `uc ]
 +[; ;lcd.c: 73:     Lcd_Cmd(0x0C);
 +[e ( _Lcd_Cmd (1 -> -> 12 `i `uc ]
  "74
 -[; ;lcd.c: 74: }
 +[; ;lcd.c: 74:     Lcd_Cmd(0x00);
 +[e ( _Lcd_Cmd (1 -> -> 0 `i `uc ]
 +"75
 +[; ;lcd.c: 75:     Lcd_Cmd(0x06);
 +[e ( _Lcd_Cmd (1 -> -> 6 `i `uc ]
 +"76
 +[; ;lcd.c: 76: }
  [e :UE 110 ]
  }
 -"76
 -[; ;lcd.c: 76: void Lcd_Write_Char(char a) {
 +"78
 +[; ;lcd.c: 78: void Lcd_Write_Char(char a) {
  [v _Lcd_Write_Char `(v ~T0 @X0 1 ef1`uc ]
  {
  [e :U _Lcd_Write_Char ]
  [v _a `uc ~T0 @X0 1 r1 ]
  [f ]
 -"77
 -[; ;lcd.c: 77:     char temp, y;
 +"79
 +[; ;lcd.c: 79:     char temp, y;
  [v _temp `uc ~T0 @X0 1 a ]
  [v _y `uc ~T0 @X0 1 a ]
 -"78
 -[; ;lcd.c: 78:     temp = a & 0x0F;
 +"80
 +[; ;lcd.c: 80:     temp = a & 0x0F;
  [e = _temp -> & -> _a `i -> 15 `i `uc ]
 -"79
 -[; ;lcd.c: 79:     y = a & 0xF0;
 +"81
 +[; ;lcd.c: 81:     y = a & 0xF0;
  [e = _y -> & -> _a `i -> 240 `i `uc ]
 -"80
 -[; ;lcd.c: 80:     RD2 = 1;
 +"82
 +[; ;lcd.c: 82:     RD2 = 1;
  [e = _RD2 -> -> 1 `i `b ]
 -"81
 -[; ;lcd.c: 81:     Lcd_Port(y >> 4);
 +"83
 +[; ;lcd.c: 83:     Lcd_Port(y >> 4);
  [e ( _Lcd_Port (1 -> >> -> _y `i -> 4 `i `uc ]
 -"82
 -[; ;lcd.c: 82:     RD3 = 1;
 +"84
 +[; ;lcd.c: 84:     RD3 = 1;
  [e = _RD3 -> -> 1 `i `b ]
 -"83
 -[; ;lcd.c: 83:     _delay((unsigned long)((40)*(20000000/4000000.0)));
 +"85
 +[; ;lcd.c: 85:     _delay((unsigned long)((40)*(20000000/4000000.0)));
  [e ( __delay (1 -> * -> -> 40 `i `d / -> -> 20000000 `l `d .4000000.0 `ul ]
 -"84
 -[; ;lcd.c: 84:     RD3 = 0;
 +"86
 +[; ;lcd.c: 86:     RD3 = 0;
  [e = _RD3 -> -> 0 `i `b ]
 -"85
 -[; ;lcd.c: 85:     Lcd_Port(temp);
 +"87
 +[; ;lcd.c: 87:     Lcd_Port(temp);
  [e ( _Lcd_Port (1 _temp ]
 -"86
 -[; ;lcd.c: 86:     RD3 = 1;
 +"88
 +[; ;lcd.c: 88:     RD3 = 1;
  [e = _RD3 -> -> 1 `i `b ]
 -"87
 -[; ;lcd.c: 87:     _delay((unsigned long)((40)*(20000000/4000000.0)));
 +"89
 +[; ;lcd.c: 89:     _delay((unsigned long)((40)*(20000000/4000000.0)));
  [e ( __delay (1 -> * -> -> 40 `i `d / -> -> 20000000 `l `d .4000000.0 `ul ]
 -"88
 -[; ;lcd.c: 88:     RD3 = 0;
 +"90
 +[; ;lcd.c: 90:     RD3 = 0;
  [e = _RD3 -> -> 0 `i `b ]
 -"89
 -[; ;lcd.c: 89: }
 +"91
 +[; ;lcd.c: 91: }
  [e :UE 111 ]
  }
 -"91
 -[; ;lcd.c: 91: void Lcd_Write_String(char *a) {
 +"93
 +[; ;lcd.c: 93: void Lcd_Write_String(char *a) {
  [v _Lcd_Write_String `(v ~T0 @X0 1 ef1`*uc ]
  {
  [e :U _Lcd_Write_String ]
  [v _a `*uc ~T0 @X0 1 r1 ]
  [f ]
 -"92
 -[; ;lcd.c: 92:     int i;
 +"94
 +[; ;lcd.c: 94:     int i;
  [v _i `i ~T0 @X0 1 a ]
 -"93
 -[; ;lcd.c: 93:     for (i = 0; a[i] != '\0'; i++)
 +"95
 +[; ;lcd.c: 95:     for (i = 0; a[i] != '\0'; i++)
  {
  [e = _i -> 0 `i ]
  [e $U 116  ]
  [e :U 113 ]
 -"94
 -[; ;lcd.c: 94:         Lcd_Write_Char(a[i]);
 +"96
 +[; ;lcd.c: 96:         Lcd_Write_Char(a[i]);
  [e ( _Lcd_Write_Char (1 *U + _a * -> _i `x -> -> # *U _a `i `x ]
  [e ++ _i -> 1 `i ]
  [e :U 116 ]
  [e $ != -> *U + _a * -> _i `x -> -> # *U _a `i `x `ui -> 0 `ui 113  ]
  [e :U 114 ]
  }
 -"95
 -[; ;lcd.c: 95: }
 +"97
 +[; ;lcd.c: 97: }
  [e :UE 112 ]
  }
 -"97
 -[; ;lcd.c: 97: void Lcd_Shift_Right() {
 +"99
 +[; ;lcd.c: 99: void Lcd_Shift_Right(void) {
  [v _Lcd_Shift_Right `(v ~T0 @X0 1 ef ]
  {
  [e :U _Lcd_Shift_Right ]
  [f ]
 -"98
 -[; ;lcd.c: 98:     Lcd_Cmd(0x01);
 +"100
 +[; ;lcd.c: 100:     Lcd_Cmd(0x01);
  [e ( _Lcd_Cmd (1 -> -> 1 `i `uc ]
 -"99
 -[; ;lcd.c: 99:     Lcd_Cmd(0x0C);
 +"101
 +[; ;lcd.c: 101:     Lcd_Cmd(0x0C);
  [e ( _Lcd_Cmd (1 -> -> 12 `i `uc ]
 -"100
 -[; ;lcd.c: 100: }
 +"102
 +[; ;lcd.c: 102: }
  [e :UE 117 ]
  }
 -"102
 -[; ;lcd.c: 102: void Lcd_Shift_Left() {
 +"104
 +[; ;lcd.c: 104: void Lcd_Shift_Left(void) {
  [v _Lcd_Shift_Left `(v ~T0 @X0 1 ef ]
  {
  [e :U _Lcd_Shift_Left ]
  [f ]
 -"103
 -[; ;lcd.c: 103:     Lcd_Cmd(0x01);
 +"105
 +[; ;lcd.c: 105:     Lcd_Cmd(0x01);
  [e ( _Lcd_Cmd (1 -> -> 1 `i `uc ]
 -"104
 -[; ;lcd.c: 104:     Lcd_Cmd(0x08);
 +"106
 +[; ;lcd.c: 106:     Lcd_Cmd(0x08);
  [e ( _Lcd_Cmd (1 -> -> 8 `i `uc ]
 -"105
 -[; ;lcd.c: 105: }
 +"107
 +[; ;lcd.c: 107: }
  [e :UE 118 ]
  }
 -"108
 -[; ;lcd.c: 108: void Vfd_Set_Brightness(int level) {
 +"111
 +[; ;lcd.c: 111: void Vfd_Set_Brightness(int level) {
  [v _Vfd_Set_Brightness `(v ~T0 @X0 1 ef1`i ]
  {
  [e :U _Vfd_Set_Brightness ]
  [v _level `i ~T0 @X0 1 r1 ]
  [f ]
 -"110
 -[; ;lcd.c: 110: }
 +"112
 +[; ;lcd.c: 112:     Lcd_Cmd(0x03);
 +[e ( _Lcd_Cmd (1 -> -> 3 `i `uc ]
 +"113
 +[; ;lcd.c: 113:     _delay((unsigned long)((11)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 11 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"114
 +[; ;lcd.c: 114:     Lcd_Cmd(0x03);
 +[e ( _Lcd_Cmd (1 -> -> 3 `i `uc ]
 +"116
 +[; ;lcd.c: 116:     Lcd_Cmd(0x02);
 +[e ( _Lcd_Cmd (1 -> -> 2 `i `uc ]
 +"117
 +[; ;lcd.c: 117:     Lcd_Write_Char(level);
 +[e ( _Lcd_Write_Char (1 -> _level `uc ]
 +"118
 +[; ;lcd.c: 118: }
  [e :UE 119 ]
  }
 diff --git a/build/default/production/main.i b/build/default/production/main.i index 037b4d1..9437bd6 100755 --- a/build/default/production/main.i +++ b/build/default/production/main.i @@ -7,108 +7,6 @@  # 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\language_support.h" 1 3  # 2 "<built-in>" 2  # 1 "main.c" 2 -# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 1 3 - - - -# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__size_t.h" 1 3 - - - -typedef unsigned size_t; -# 4 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3 - -# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\__null.h" 1 3 -# 5 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3 - - - - - - -# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdarg.h" 1 3 - - - - - - -typedef void * va_list[1]; - -#pragma intrinsic(__va_start) -extern void * __va_start(void); - -#pragma intrinsic(__va_arg) -extern void * __va_arg(void *, ...); -# 11 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3 -# 43 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 3 -struct __prbuf -{ - char * ptr; - void (* func)(char); -}; -# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 3 -# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\conio.h" 1 3 - - - - - - - -# 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\errno.h" 1 3 -# 29 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\errno.h" 3 -extern int errno; -# 8 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\conio.h" 2 3 - - - - -extern void init_uart(void); - -extern char getch(void); -extern char getche(void); -extern void putch(char); -extern void ungetch(char); - -extern __bit kbhit(void); - - - -extern char * cgets(char *); -extern void cputs(const char *); -# 85 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 2 3 - - - -extern int cprintf(char *, ...); -#pragma printf_check(cprintf) - - - -extern int _doprnt(struct __prbuf *, const register char *, register va_list); -# 180 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\c90\\stdio.h" 3 -#pragma printf_check(vprintf) const -#pragma printf_check(vsprintf) const - -extern char * gets(char *); -extern int puts(const char *); -extern int scanf(const char *, ...) __attribute__((unsupported("scanf() is not supported by this compiler"))); -extern int sscanf(const char *, const char *, ...) __attribute__((unsupported("sscanf() is not supported by this compiler"))); -extern int vprintf(const char *, va_list) __attribute__((unsupported("vprintf() is not supported by this compiler"))); -extern int vsprintf(char *, const char *, va_list) __attribute__((unsupported("vsprintf() is not supported by this compiler"))); -extern int vscanf(const char *, va_list ap) __attribute__((unsupported("vscanf() is not supported by this compiler"))); -extern int vsscanf(const char *, const char *, va_list) __attribute__((unsupported("vsscanf() is not supported by this compiler"))); - -#pragma printf_check(printf) const -#pragma printf_check(sprintf) const -extern int sprintf(char *, const char *, ...); -extern int printf(const char *, ...); -# 1 "main.c" 2 - - - -  # 1 "./conf.h" 1  # 1 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 1 3  # 18 "C:\\Program Files (x86)\\Microchip\\xc8\\v2.05\\pic\\include\\xc.h" 3 @@ -1835,81 +1733,39 @@ extern __bank0 __bit __timeout;  #pragma config CPD = OFF  #pragma config WRT = OFF  #pragma config CP = OFF -# 5 "main.c" 2 +# 1 "main.c" 2  # 1 "./main.h" 1 - -unsigned int sec = 30; -unsigned int min = 42; -unsigned int hour = 21; -unsigned int dayOfWeek = 7; -unsigned int date = 27; -unsigned int month = 7; -unsigned int year = 19; -unsigned int century = 20; -unsigned int alarm1_sec, alarm1_min, alarm1_hour; -unsigned int alarm2_min, alarm2_hour; -unsigned int status_reg, alarm1_status, alarm2_status; -unsigned int control_reg; - - -unsigned int temperature_lsb = 0; -int temperature_msb = 0; -unsigned char temp_sign = ' '; - - -char* weekday; - - -unsigned int sec_chg = 0; - - -unsigned char sec_0, sec_1; -unsigned char min_0, min_1; -unsigned char hour_0, hour_1; -unsigned char day_0, day_1; -unsigned char month_0, month_1; -unsigned char year_0, year_1; -unsigned char temp_0, temp_1, temp_2; -unsigned char alarm1_sec_0, alarm1_sec_1, alarm1_min_0, alarm1_min_1, -        alarm1_hour_0, alarm1_hour_1; -unsigned char alarm2_min_0, alarm2_min_1, alarm2_hour_0, alarm2_hour_1; - - -char buf[40]; - - -void format_DateTimeChars(void); - - -void format_Temperature(void); - - -void getWeekDay(unsigned int); +# 1 "./lcd.h" 1 +# 1 "./conf.h" 1 -void Get_Alarm_Status(void); -void display_Intro(void); -void display_Lcd_Layout(void); +#pragma config FOSC = HS +#pragma config WDTE = OFF +#pragma config PWRTE = ON +#pragma config BOREN = ON +#pragma config LVP = OFF +#pragma config CPD = OFF +#pragma config WRT = OFF +#pragma config CP = OFF +# 1 "./lcd.h" 2 -void update_Display(void); -# 6 "main.c" 2 -# 1 "./lcd.h" 1  void Lcd_Port(char);  void Lcd_Cmd(char); -void Lcd_Clear(); +void Lcd_Clear(void);  void Lcd_Set_Cursor(char, char); -void Lcd_Init(); +void Lcd_Init(void);  void Lcd_Write_Char(char);  void Lcd_Write_String(char *); -void Lcd_Shift_Right(); -void Lcd_Shift_Left(); +void Lcd_Shift_Right(void); +void Lcd_Shift_Left(void); +  void Vfd_Set_Brightness(int); -# 7 "main.c" 2 +# 1 "./main.h" 2  # 1 "./i2c.h" 1  void I2C_Master_Init(const unsigned long); @@ -1919,7 +1775,7 @@ void I2C_Master_Repeated_Start(void);  void I2C_Master_Stop(void);  void I2C_Master_Write(unsigned);  unsigned short I2C_Master_Read(unsigned short); -# 8 "main.c" 2 +# 2 "./main.h" 2  # 1 "./ds3231.h" 1  # 1 "./conf.h" 1 @@ -1937,16 +1793,50 @@ unsigned short I2C_Master_Read(unsigned short);  # 1 "./ds3231.h" 2 +char dayOfWeek[7][4]; +char monthOfYear[12][4]; +  int BCD_2_DEC(int);  int DEC_2_BCD(int); +unsigned int Get_DayOfWeek(unsigned int, unsigned int, unsigned int); +unsigned int Get_Days_In_Month(unsigned int, unsigned int); +unsigned int Get_Is_Leap_Year(unsigned int); +char* Get_WeekDay(unsigned int);  void Read_Alarms_Temp(void);  void Set_Date(void); -void Set_DayOfWeek(void); +void Set_DayOfWeek(int); +void Set_Sqwe(int);  void Set_Time(void); -void Set_Time_Date(void);  void Update_Current_Date_Time(void);  void Write_Alarms(void); -# 9 "main.c" 2 +# 3 "./main.h" 2 + + + +# 1 "./adc.h" 1 +# 1 "./conf.h" 1 + + + +#pragma config FOSC = HS +#pragma config WDTE = OFF +#pragma config PWRTE = ON +#pragma config BOREN = ON +#pragma config LVP = OFF +#pragma config CPD = OFF +#pragma config WRT = OFF +#pragma config CP = OFF +# 1 "./adc.h" 2 + + + +void Adc_Init(void); + + +unsigned int Adc_Read(unsigned int); +# 6 "./main.h" 2 + +  # 1 "./beep.h" 1  # 1 "./conf.h" 1 @@ -1965,110 +1855,178 @@ void Write_Alarms(void);  void alarm(unsigned int); -# 10 "main.c" 2 +# 9 "./main.h" 2 +# 18 "./main.h" +unsigned int ldr; +unsigned int brtlvl_chg; +unsigned int update; -int main() { -    TRISC = 0x00; -    PORTC = 0x00; -    TRISD = 0x00; -    PORTD = 0x00; -# 33 "main.c" -    I2C_Master_Init(100000); +unsigned int edit_datetime; +extern unsigned int sec; +extern unsigned int min; +extern unsigned int hour; +extern unsigned int day; +extern unsigned int date; +extern unsigned int month; +extern unsigned int year; +extern unsigned int century; +extern unsigned int alarm1_sec, alarm1_min, alarm1_hour; +extern unsigned int alarm2_min, alarm2_hour; +extern unsigned int status_reg, alarm1_status, alarm2_status; +extern unsigned int control_reg; +extern unsigned int temperature_lsb; +extern int temperature_msb; +unsigned char temp_sign; +# 60 "./main.h" +void display_Digit(unsigned int); +void display_Intro(void); +void display_Lcd_Layout(void); +void edit_Date_Time(void); -    Lcd_Init(); +void format_Temperature(void); +void Get_Alarm_Status(void); +void update_Display(void); +# 2 "main.c" 2 -    display_Intro(); -    display_Lcd_Layout(); -# 68 "main.c" -    while (1) { +unsigned int ldr = 0; -        Update_Current_Date_Time(); +unsigned int brtlvl_chg = 0; -        Read_Alarms_Temp(); +unsigned int update = 0; -        Get_Alarm_Status(); +unsigned int edit_datetime = 0; +unsigned int sec = 0; +unsigned int min = 0; +unsigned int hour = 0; +unsigned int day = 1; +unsigned int date = 1; +unsigned int month = 1; +unsigned int year = 00; +unsigned int century = 20; +unsigned int alarm1_sec = 0; +unsigned int alarm1_min = 0; +unsigned int alarm1_hour = 0; +unsigned int alarm2_min = 0; +unsigned int alarm2_hour = 0; +unsigned int status_reg = 0; +unsigned int alarm1_status = 0; +unsigned int alarm2_status = 0; +unsigned int control_reg = 0; -        format_DateTimeChars(); +unsigned int temperature_lsb = 0; +int temperature_msb = 0; +unsigned char temp_sign = ' '; +void main(void) { -        format_Temperature(); +    TRISA0 = 0x01; +    TRISBbits.TRISB2 = 1; +    TRISBbits.TRISB4 = 1; +    TRISBbits.TRISB5 = 1; +    GIE = 0; +    OPTION_REGbits.nRBPU = 0; +    INTE = 1; +    GIE = 1; -        getWeekDay(dayOfWeek); +    TRISC = 0x00; +    PORTC = 0x00; +    TRISD = 0x00; +    PORTD = 0x00; +# 71 "main.c" +    I2C_Master_Init(100000); +# 80 "main.c" +    Adc_Init(); +# 89 "main.c" +    Lcd_Init(); +# 98 "main.c" +    Vfd_Set_Brightness(0); -        if (sec_chg != sec) { -            update_Display(); +    display_Intro(); +    display_Lcd_Layout(); +# 120 "main.c" +    Set_Sqwe(0x40); + + +    Vfd_Set_Brightness(3); -            sec_chg = sec; -# 121 "main.c" + +    while (1) { +# 137 "main.c" +        if (update) { +            Lcd_Set_Cursor(1, 3); +            Lcd_Write_Char(':'); +            Lcd_Set_Cursor(1, 6); +            Lcd_Write_Char(':'); +            Update_Current_Date_Time(); +            Read_Alarms_Temp(); +            Get_Alarm_Status(); +            format_Temperature(); +            update_Display(); +            update = 0; +            _delay((unsigned long)((500)*(20000000/4000.0))); +        } else { +            Lcd_Set_Cursor(1, 3); +            Lcd_Write_Char(' '); +            Lcd_Set_Cursor(1, 6); +            Lcd_Write_Char(' ');          } -    } -    return 0; -} -void format_DateTimeChars() { -    sec_0 = sec % 10 + '0'; -    sec_1 = sec / 10 + '0'; -    min_0 = min % 10 + '0'; -    min_1 = min / 10 + '0'; -    hour_0 = hour % 10 + '0'; -    hour_1 = hour / 10 + '0'; -    day_0 = date % 10 + '0'; -    day_1 = date / 10 + '0'; -    month_0 = month % 10 + '0'; -    month_1 = month / 10 + '0'; -    year_0 = year % 10 + '0'; -    year_1 = year / 10 + '0'; -    alarm1_sec_0 = alarm1_sec % 10 + '0'; -    alarm1_sec_1 = alarm1_sec / 10 + '0'; -    alarm1_min_0 = alarm1_min % 10 + '0'; -    alarm1_min_1 = alarm1_min / 10 + '0'; -    alarm1_hour_0 = alarm1_hour % 10 + '0'; -    alarm1_hour_1 = alarm1_hour / 10 + '0'; -    alarm2_min_0 = alarm2_min % 10 + '0'; -    alarm2_min_1 = alarm2_min / 10 + '0'; -    alarm2_hour_0 = alarm2_hour % 10 + '0'; -    alarm2_hour_1 = alarm2_hour / 10 + '0'; -} +        if (!RB2) { +            _delay((unsigned long)((250)*(20000000/4000.0))); +            edit_Date_Time(); +        } +# 175 "main.c" +        ldr = Adc_Read(0); +        if (brtlvl_chg != ldr/256) { +            Vfd_Set_Brightness(ldr/256); +            brtlvl_chg = ldr/256; +        } +# 207 "main.c" +    } +} +# 218 "main.c"  void format_Temperature() { + +      if (temperature_msb < 0) {          temperature_msb *= -1;          temp_sign = '-'; @@ -2081,72 +2039,36 @@ void format_Temperature() {      temperature_lsb *= 25; +} -    if (temperature_lsb == 0) { -        temp_0 = '0'; -    } - -    if (temperature_lsb == 25) { -        temp_0 = '2'; -    } - -    if (temperature_lsb == 50) { -        temp_0 = '5'; -    } -    if (temperature_lsb == 75) { -        temp_0 = '7'; -    } -    temp_1 = temperature_msb % 10 + '0'; -    temp_2 = temperature_msb / 10 + '0'; +void Get_Alarm_Status() { +    alarm1_status = control_reg & 0x01; +    alarm2_status = (control_reg >> 1) & 0x01;  } -void getWeekDay(unsigned int dayOfWeek) { -    switch (dayOfWeek) { -        case 1: -            weekday = "Sun"; -            break; -        case 2: -            weekday = "Mon"; -            break; -        case 3: -            weekday = "Tue"; -            break; -        case 4: -            weekday = "Wed"; -            break; -        case 5: -            weekday = "Thu"; -            break; -        case 6: -            weekday = "Fri"; -            break; -        case 7: -            weekday = "Sat"; -            break; -    } +void display_Digit(unsigned int data) { +    Lcd_Write_Char(((data / 10) + '0')); +    Lcd_Write_Char(((data % 10) + '0'));  } -void Get_Alarm_Status() { -    alarm1_status = control_reg & 0x01; -    alarm2_status = (control_reg >> 1) & 0x01; -} -  void display_Intro() {      Lcd_Clear(); -    Lcd_Set_Cursor(1, 1); -    Lcd_Write_String("RTC/LCD with PIC"); -    Lcd_Set_Cursor(2, 1); -    Lcd_Write_String(" Circuit Digest"); -    _delay((unsigned long)((2000)*(20000000/4000.0))); +    Lcd_Set_Cursor(1, 4); +    Lcd_Write_String("Desk Clock"); +    Lcd_Set_Cursor(2, 15); +    Lcd_Write_String("V1"); +    _delay((unsigned long)((1000)*(20000000/4000.0)));  } + +  void display_Lcd_Layout() {      Lcd_Clear(); @@ -2155,58 +2077,303 @@ void display_Lcd_Layout() {      Lcd_Write_Char(0xDF);      Lcd_Write_Char('C');      Lcd_Set_Cursor(2, 1); -    Lcd_Write_String("ddd, DD/MM/YY  "); -    _delay((unsigned long)((2000)*(20000000/4000.0))); +    Lcd_Write_String(" ddd DD/MM/CCYY "); + +    _delay((unsigned long)((1000)*(20000000/4000.0)));  } + +  void update_Display() {      Lcd_Set_Cursor(1, 1); -    Lcd_Write_Char(hour_1); -    Lcd_Write_Char(hour_0); +    display_Digit(hour);      Lcd_Set_Cursor(1, 4); -    Lcd_Write_Char(min_1); -    Lcd_Write_Char(min_0); +    display_Digit(min);      Lcd_Set_Cursor(1, 7); -    Lcd_Write_Char(sec_1); -    Lcd_Write_Char(sec_0); +    display_Digit(sec);      Lcd_Set_Cursor(2, 6); -    Lcd_Write_Char(day_1); -    Lcd_Write_Char(day_0); +    display_Digit(date);      Lcd_Set_Cursor(2, 9); -    Lcd_Write_Char(month_1); -    Lcd_Write_Char(month_0); +    display_Digit(month);      Lcd_Set_Cursor(2, 12); -    Lcd_Write_Char(year_1); -    Lcd_Write_Char(year_0); +    display_Digit(century); -    Lcd_Set_Cursor(2, 1); -    Lcd_Write_String(weekday); +    Lcd_Set_Cursor(2, 14); +    display_Digit(year); + + +    Lcd_Set_Cursor(2, 2); +    Lcd_Write_String(Get_WeekDay(day));      Lcd_Set_Cursor(1, 10);      Lcd_Write_Char(temp_sign); -    Lcd_Write_Char(temp_2); -    Lcd_Write_Char(temp_1); +    display_Digit(temperature_msb);      Lcd_Set_Cursor(1, 14); -    Lcd_Write_Char(temp_0); +    Lcd_Write_Char(((temperature_lsb / 10) + '0')); +      if (min == 00 && sec == 00) {          alarm(2);      } +      if (min == 30 && sec == 00) {          alarm(1);      }  } +# 349 "main.c" +void edit_Date_Time(void) { + +    int updateRTC = 0; + + + +    unsigned int hour_org = hour; +    unsigned int min_org = min; +    unsigned int sec_org = sec; +    unsigned int year_org = year; +    unsigned int month_org = month; +    unsigned int date_org = date; + +    Lcd_Set_Cursor(2, 16); +    Lcd_Write_Char('S'); +    edit_datetime++; +    while (edit_datetime > 0 && edit_datetime < 7) { + + +        Lcd_Set_Cursor(1, 3); +        Lcd_Write_Char(':'); +        Lcd_Set_Cursor(1, 6); +        Lcd_Write_Char(':'); + +        switch (edit_datetime) { +            case 1: +                Lcd_Set_Cursor(2, 16); +                Lcd_Write_Char('h'); +                if (!RB5) { +                    _delay((unsigned long)((250)*(20000000/4000.0))); +                    if (hour == 0) { +                        hour = 23; +                    } else { +                        hour -= 1; +                    } +                    Lcd_Set_Cursor(1, 1); +                    display_Digit(hour); + +                } else if (!RB4) { +                    _delay((unsigned long)((250)*(20000000/4000.0))); +                    if (hour + 1 > 23) { +                        hour = 0; +                    } else { +                        hour += 1; +                    } + +                    Lcd_Set_Cursor(1, 1); +                    display_Digit(hour); +                } + +                break; + +            case 2: +                Lcd_Set_Cursor(2, 16); +                Lcd_Write_Char('m'); +                if (!RB5) { +                    _delay((unsigned long)((250)*(20000000/4000.0))); +                    if (min == 0) { +                        min = 59; +                    } else { +                        min -= 1; +                    } +                    Lcd_Set_Cursor(1, 4); +                    display_Digit(min); + +                } else if (!RB4) { +                    _delay((unsigned long)((250)*(20000000/4000.0))); +                    if (min + 1 > 59) { +                        min = 0; +                    } else { +                        min += 1; +                    } + +                    Lcd_Set_Cursor(1, 4); +                    display_Digit(min); +                } + +                break; + +            case 3: +                Lcd_Set_Cursor(2, 16); +                Lcd_Write_Char('s'); +                if (!RB5) { +                    _delay((unsigned long)((250)*(20000000/4000.0))); +                    if (sec == 0) { +                        sec = 59; +                    } else { +                        sec -= 1; +                    } +                    Lcd_Set_Cursor(1, 7); +                    display_Digit(sec); +                    if (sec_org != sec) { +                        updateRTC = 1; +                    } + +                } else if (!RB4) { +                    _delay((unsigned long)((250)*(20000000/4000.0))); +                    if (sec + 1 > 59) { +                        sec = 0; +                    } else { +                        sec += 1; +                    } + +                    Lcd_Set_Cursor(1, 7); +                    display_Digit(sec); +                    if (sec_org != sec) { +                        updateRTC = 1; +                    } +                } + +                break; + +            case 6: +                Lcd_Set_Cursor(2, 16); +                Lcd_Write_Char('D'); +                if (!RB5) { +                    _delay((unsigned long)((250)*(20000000/4000.0))); +                    if (date - 1 == 0) { +                        date = Get_Days_In_Month(year, month); +                    } else { +                        date -= 1; +                    } + +                    Lcd_Set_Cursor(2, 2); +                    Lcd_Write_String(Get_WeekDay(Get_DayOfWeek(year, month, date))); +                    Lcd_Set_Cursor(2, 6); +                    display_Digit(date); + +                } else if (!RB4) { +                    _delay((unsigned long)((250)*(20000000/4000.0))); + +                    if (date + 1 > Get_Days_In_Month(year, month)) { +                        date = 1; +                    } else { +                        date += 1; +                    } + +                    Lcd_Set_Cursor(2, 2); +                    Lcd_Write_String(Get_WeekDay(Get_DayOfWeek(year, month, date))); +                    Lcd_Set_Cursor(2, 6); +                    display_Digit(date); +                } + +                break; + +            case 5: +                Lcd_Set_Cursor(2, 16); +                Lcd_Write_Char('M'); +                if (!RB5) { +                    _delay((unsigned long)((250)*(20000000/4000.0))); +                    if (month - 1 == 0) { +                        month = 12; +                    } else { +                        month -= 1; +                    } +                    Lcd_Set_Cursor(2, 9); +                    display_Digit(month); + +                } else if (!RB4) { +                    _delay((unsigned long)((250)*(20000000/4000.0))); +                    if (month + 1 > 12) { +                        month = 1; +                    } else { +                        month += 1; +                    } + +                    Lcd_Set_Cursor(2, 9); +                    display_Digit(month); +                } + +                break; + +            case 4: +                Lcd_Set_Cursor(2, 16); +                Lcd_Write_Char('Y'); +                if (!RB5) { +                    _delay((unsigned long)((250)*(20000000/4000.0))); +                    if (year == 0) { +                        year = 99; +                    } else { +                        year -= 1; +                    } +                    Lcd_Set_Cursor(2, 14); +                    display_Digit(year); + +                } else if (!RB4) { +                    _delay((unsigned long)((250)*(20000000/4000.0))); +                    if (year + 1 > 99) { +                        year = 0; +                    } else { +                        year += 1; +                    } + +                    Lcd_Set_Cursor(2, 14); +                    display_Digit(year); +                } + +                break; + + + +            default: +                break; +        } + +        if (!RB2) { +            _delay((unsigned long)((250)*(20000000/4000.0))); +            edit_datetime++; +        } +    } +# 567 "main.c" +    if (edit_datetime > 6) { +        Lcd_Set_Cursor(2, 16); +        Lcd_Write_String(" "); +        edit_datetime = 0; + + + + + +        if(hour_org != hour || min_org != min || sec_org != sec +                || year_org != year || month_org != month || date_org != date) { +            updateRTC = 0; +            Set_Time(); +            Set_DayOfWeek(Get_DayOfWeek(year, month, date)); +            Set_Date(); +        } +    } +} + + + + + + + +void __attribute__((picinterrupt(("")))) isr(void) { +    if (INTF == 1) { +        update = 1; +        INTF = 0; +    } +} diff --git a/build/default/production/main.p1 b/build/default/production/main.p1 index 64b2aa8..71cb23c 100755 --- a/build/default/production/main.p1 +++ b/build/default/production/main.p1 @@ -1,6 +1,41 @@  Version 4.0 HI-TECH Software Intermediate Code
  [p mainexit ]
 -"1437 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
 +"2917 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2917: extern volatile __bit TRISA0 __attribute__((address(0x428)));
 +[v _TRISA0 `Vb ~T0 @X0 0 e@1064 ]
 +"1381
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1381:     struct {
 +[s S56 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 ]
 +[n S56 . TRISB0 TRISB1 TRISB2 TRISB3 TRISB4 TRISB5 TRISB6 TRISB7 ]
 +"1380
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1380: typedef union {
 +[u S55 `S56 1 ]
 +[n S55 . . ]
 +"1392
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1392: extern volatile TRISBbits_t TRISBbits __attribute__((address(0x086)));
 +[v _TRISBbits `VS55 ~T0 @X0 0 e@134 ]
 +"2569
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2569: extern volatile __bit GIE __attribute__((address(0x5F)));
 +[v _GIE `Vb ~T0 @X0 0 e@95 ]
 +"1261
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1261:     struct {
 +[s S51 :3 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 :1 `uc 1 ]
 +[n S51 . PS PSA T0SE T0CS INTEDG nRBPU ]
 +"1269
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1269:     struct {
 +[s S52 :1 `uc 1 :1 `uc 1 :1 `uc 1 ]
 +[n S52 . PS0 PS1 PS2 ]
 +"1260
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1260: typedef union {
 +[u S50 `S51 1 `S52 1 ]
 +[n S50 . . . ]
 +"1275
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1275: extern volatile OPTION_REGbits_t OPTION_REGbits __attribute__((address(0x081)));
 +[v _OPTION_REGbits `VS50 ~T0 @X0 0 e@129 ]
 +"2599
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2599: extern volatile __bit INTE __attribute__((address(0x5C)));
 +[v _INTE `Vb ~T0 @X0 0 e@92 ]
 +"1437
  [; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 1437: extern volatile unsigned char TRISC __attribute__((address(0x087)));
  [v _TRISC `Vuc ~T0 @X0 0 e@135 ]
  "278
 @@ -15,55 +50,96 @@ Version 4.0 HI-TECH Software Intermediate Code  "1 ./i2c.h
  [; ;./i2c.h: 1: void I2C_Master_Init(const unsigned long);
  [v _I2C_Master_Init `(v ~T0 @X0 0 ef1`Cul ]
 -"5 ./lcd.h
 -[; ;./lcd.h: 5: void Lcd_Init();
 -[v _Lcd_Init `(v ~T0 @X0 0 e? ]
 -"53 ./main.h
 -[; ;./main.h: 53: void display_Intro(void);
 +"4 ./adc.h
 +[; ;./adc.h: 4: void Adc_Init(void);
 +[v _Adc_Init `(v ~T0 @X0 0 ef ]
 +"7 ./lcd.h
 +[; ;./lcd.h: 7: void Lcd_Init(void);
 +[v _Lcd_Init `(v ~T0 @X0 0 ef ]
 +"15
 +[; ;./lcd.h: 15: void Vfd_Set_Brightness(int);
 +[v _Vfd_Set_Brightness `(v ~T0 @X0 0 ef1`i ]
 +"61 ./main.h
 +[; ;./main.h: 61: void display_Intro(void);
  [v _display_Intro `(v ~T0 @X0 0 ef ]
 -"54
 -[; ;./main.h: 54: void display_Lcd_Layout(void);
 +"62
 +[; ;./main.h: 62: void display_Lcd_Layout(void);
  [v _display_Lcd_Layout `(v ~T0 @X0 0 ef ]
 -"10 ./ds3231.h
 -[; ;./ds3231.h: 10: void Update_Current_Date_Time(void);
 +"15 ./ds3231.h
 +[; ;./ds3231.h: 15: void Set_Sqwe(int);
 +[v _Set_Sqwe `(v ~T0 @X0 0 ef1`i ]
 +"6 ./lcd.h
 +[; ;./lcd.h: 6: void Lcd_Set_Cursor(char, char);
 +[v _Lcd_Set_Cursor `(v ~T0 @X0 0 ef2`uc`uc ]
 +"8
 +[; ;./lcd.h: 8: void Lcd_Write_Char(char);
 +[v _Lcd_Write_Char `(v ~T0 @X0 0 ef1`uc ]
 +"17 ./ds3231.h
 +[; ;./ds3231.h: 17: void Update_Current_Date_Time(void);
  [v _Update_Current_Date_Time `(v ~T0 @X0 0 ef ]
 -"5
 -[; ;./ds3231.h: 5: void Read_Alarms_Temp(void);
 +"12
 +[; ;./ds3231.h: 12: void Read_Alarms_Temp(void);
  [v _Read_Alarms_Temp `(v ~T0 @X0 0 ef ]
 -"51 ./main.h
 -[; ;./main.h: 51: void Get_Alarm_Status(void);
 +"70 ./main.h
 +[; ;./main.h: 70: void Get_Alarm_Status(void);
  [v _Get_Alarm_Status `(v ~T0 @X0 0 ef ]
 -"42
 -[; ;./main.h: 42: void format_DateTimeChars(void);
 -[v _format_DateTimeChars `(v ~T0 @X0 0 ef ]
 -"45
 -[; ;./main.h: 45: void format_Temperature(void);
 +"67
 +[; ;./main.h: 67: void format_Temperature(void);
  [v _format_Temperature `(v ~T0 @X0 0 ef ]
 -"48
 -[; ;./main.h: 48: void getWeekDay(unsigned int);
 -[v _getWeekDay `(v ~T0 @X0 0 ef1`ui ]
 -"56
 -[; ;./main.h: 56: void update_Display(void);
 +"72
 +[; ;./main.h: 72: void update_Display(void);
  [v _update_Display `(v ~T0 @X0 0 ef ]
 -"3 ./lcd.h
 -[; ;./lcd.h: 3: void Lcd_Clear();
 -[v _Lcd_Clear `(v ~T0 @X0 0 e? ]
 -"4
 -[; ;./lcd.h: 4: void Lcd_Set_Cursor(char, char);
 -[v _Lcd_Set_Cursor `(v ~T0 @X0 0 ef2`uc`uc ]
 -"7
 -[; ;./lcd.h: 7: void Lcd_Write_String(char *);
 -[v _Lcd_Write_String `(v ~T0 @X0 0 ef1`*uc ]
 -[v F899 `(v ~T0 @X0 1 tf1`ul ]
 +[v F842 `(v ~T0 @X0 1 tf1`ul ]
  "92 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic.h
 -[v __delay `JF899 ~T0 @X0 0 e ]
 +[v __delay `JF842 ~T0 @X0 0 e ]
  [p i __delay ]
 -"6 ./lcd.h
 -[; ;./lcd.h: 6: void Lcd_Write_Char(char);
 -[v _Lcd_Write_Char `(v ~T0 @X0 0 ef1`uc ]
 +"2680 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2680: extern volatile __bit RB2 __attribute__((address(0x32)));
 +[v _RB2 `Vb ~T0 @X0 0 e@50 ]
 +"64 ./main.h
 +[; ;./main.h: 64: void edit_Date_Time(void);
 +[v _edit_Date_Time `(v ~T0 @X0 0 ef ]
 +"7 ./adc.h
 +[; ;./adc.h: 7: unsigned int Adc_Read(unsigned int);
 +[v _Adc_Read `(ui ~T0 @X0 0 ef1`ui ]
 +"5 ./lcd.h
 +[; ;./lcd.h: 5: void Lcd_Clear(void);
 +[v _Lcd_Clear `(v ~T0 @X0 0 ef ]
 +"9
 +[; ;./lcd.h: 9: void Lcd_Write_String(char *);
 +[v _Lcd_Write_String `(v ~T0 @X0 0 ef1`*uc ]
 +"11 ./ds3231.h
 +[; ;./ds3231.h: 11: char* Get_WeekDay(unsigned int);
 +[v _Get_WeekDay `(*uc ~T0 @X0 0 ef1`ui ]
  "3 ./beep.h
  [; ;./beep.h: 3: void alarm(unsigned int);
  [v _alarm `(v ~T0 @X0 0 ef1`ui ]
 +"2689 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2689: extern volatile __bit RB5 __attribute__((address(0x35)));
 +[v _RB5 `Vb ~T0 @X0 0 e@53 ]
 +"2686
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2686: extern volatile __bit RB4 __attribute__((address(0x34)));
 +[v _RB4 `Vb ~T0 @X0 0 e@52 ]
 +"9 ./ds3231.h
 +[; ;./ds3231.h: 9: unsigned int Get_Days_In_Month(unsigned int, unsigned int);
 +[v _Get_Days_In_Month `(ui ~T0 @X0 0 ef2`ui`ui ]
 +"8
 +[; ;./ds3231.h: 8: unsigned int Get_DayOfWeek(unsigned int, unsigned int, unsigned int);
 +[v _Get_DayOfWeek `(ui ~T0 @X0 0 ef3`ui`ui`ui ]
 +"16
 +[; ;./ds3231.h: 16: void Set_Time(void);
 +[v _Set_Time `(v ~T0 @X0 0 ef ]
 +"14
 +[; ;./ds3231.h: 14: void Set_DayOfWeek(int);
 +[v _Set_DayOfWeek `(v ~T0 @X0 0 ef1`i ]
 +"13
 +[; ;./ds3231.h: 13: void Set_Date(void);
 +[v _Set_Date `(v ~T0 @X0 0 ef ]
 +[t ~ __interrupt . k ]
 +[t T1 __interrupt ]
 +"2605 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
 +[; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 2605: extern volatile __bit INTF __attribute__((address(0x59)));
 +[v _INTF `Vb ~T0 @X0 0 e@89 ]
  "54 C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h
  [; ;C:\Program Files (x86)\Microchip\xc8\v2.05\pic\include\pic16f877a.h: 54: __asm("INDF equ 00h");
  [; <" INDF equ 00h ;# ">
 @@ -260,712 +336,1362 @@ Version 4.0 HI-TECH Software Intermediate Code  [p x WRT = OFF ]
  "11
  [p x CP = OFF ]
 -"2 ./main.h
 -[; ;./main.h: 2: unsigned int sec = 30;
 +"4
 +[p x FOSC = HS ]
 +"5
 +[p x WDTE = OFF ]
 +"6
 +[p x PWRTE = ON ]
 +"7
 +[p x BOREN = ON ]
 +"8
 +[p x LVP = OFF ]
 +"9
 +[p x CPD = OFF ]
 +"10
 +[p x WRT = OFF ]
 +"11
 +[p x CP = OFF ]
 +"4
 +[p x FOSC = HS ]
 +"5
 +[p x WDTE = OFF ]
 +"6
 +[p x PWRTE = ON ]
 +"7
 +[p x BOREN = ON ]
 +"8
 +[p x LVP = OFF ]
 +"9
 +[p x CPD = OFF ]
 +"10
 +[p x WRT = OFF ]
 +"11
 +[p x CP = OFF ]
 +[v F878 `uc ~T0 @X0 -> 4 `i t ]
 +"3 ./ds3231.h
 +[; ;./ds3231.h: 3: char dayOfWeek[7][4];
 +[v _dayOfWeek `F878 ~T0 @X0 -> 7 `i e ]
 +[v F880 `uc ~T0 @X0 -> 4 `i t ]
 +"4
 +[; ;./ds3231.h: 4: char monthOfYear[12][4];
 +[v _monthOfYear `F880 ~T0 @X0 -> 12 `i e ]
 +"4 ./conf.h
 +[p x FOSC = HS ]
 +"5
 +[p x WDTE = OFF ]
 +"6
 +[p x PWRTE = ON ]
 +"7
 +[p x BOREN = ON ]
 +"8
 +[p x LVP = OFF ]
 +"9
 +[p x CPD = OFF ]
 +"10
 +[p x WRT = OFF ]
 +"11
 +[p x CP = OFF ]
 +"4
 +[p x FOSC = HS ]
 +"5
 +[p x WDTE = OFF ]
 +"6
 +[p x PWRTE = ON ]
 +"7
 +[p x BOREN = ON ]
 +"8
 +[p x LVP = OFF ]
 +"9
 +[p x CPD = OFF ]
 +"10
 +[p x WRT = OFF ]
 +"11
 +[p x CP = OFF ]
 +"18 ./main.h
 +[; ;./main.h: 18: unsigned int ldr;
 +[v _ldr `ui ~T0 @X0 1 e ]
 +"23
 +[; ;./main.h: 23: unsigned int brtlvl_chg;
 +[v _brtlvl_chg `ui ~T0 @X0 1 e ]
 +"26
 +[; ;./main.h: 26: unsigned int update;
 +[v _update `ui ~T0 @X0 1 e ]
 +"29
 +[; ;./main.h: 29: unsigned int edit_datetime;
 +[v _edit_datetime `ui ~T0 @X0 1 e ]
 +"48
 +[; ;./main.h: 48: unsigned char temp_sign;
 +[v _temp_sign `uc ~T0 @X0 1 e ]
 +"7 main.c
 +[; ;main.c: 7: unsigned int ldr = 0;
 +[v _ldr `ui ~T0 @X0 1 e ]
 +[i _ldr
 +-> -> 0 `i `ui
 +]
 +"11
 +[; ;main.c: 11: unsigned int brtlvl_chg = 0;
 +[v _brtlvl_chg `ui ~T0 @X0 1 e ]
 +[i _brtlvl_chg
 +-> -> 0 `i `ui
 +]
 +"14
 +[; ;main.c: 14: unsigned int update = 0;
 +[v _update `ui ~T0 @X0 1 e ]
 +[i _update
 +-> -> 0 `i `ui
 +]
 +"17
 +[; ;main.c: 17: unsigned int edit_datetime = 0;
 +[v _edit_datetime `ui ~T0 @X0 1 e ]
 +[i _edit_datetime
 +-> -> 0 `i `ui
 +]
 +"20
 +[; ;main.c: 20: unsigned int sec = 0;
  [v _sec `ui ~T0 @X0 1 e ]
  [i _sec
 --> -> 30 `i `ui
 +-> -> 0 `i `ui
  ]
 -"3
 -[; ;./main.h: 3: unsigned int min = 42;
 +"21
 +[; ;main.c: 21: unsigned int min = 0;
  [v _min `ui ~T0 @X0 1 e ]
  [i _min
 --> -> 42 `i `ui
 +-> -> 0 `i `ui
  ]
 -"4
 -[; ;./main.h: 4: unsigned int hour = 21;
 +"22
 +[; ;main.c: 22: unsigned int hour = 0;
  [v _hour `ui ~T0 @X0 1 e ]
  [i _hour
 --> -> 21 `i `ui
 +-> -> 0 `i `ui
  ]
 -"5
 -[; ;./main.h: 5: unsigned int dayOfWeek = 7;
 -[v _dayOfWeek `ui ~T0 @X0 1 e ]
 -[i _dayOfWeek
 --> -> 7 `i `ui
 +"23
 +[; ;main.c: 23: unsigned int day = 1;
 +[v _day `ui ~T0 @X0 1 e ]
 +[i _day
 +-> -> 1 `i `ui
  ]
 -"6
 -[; ;./main.h: 6: unsigned int date = 27;
 +"24
 +[; ;main.c: 24: unsigned int date = 1;
  [v _date `ui ~T0 @X0 1 e ]
  [i _date
 --> -> 27 `i `ui
 +-> -> 1 `i `ui
  ]
 -"7
 -[; ;./main.h: 7: unsigned int month = 7;
 +"25
 +[; ;main.c: 25: unsigned int month = 1;
  [v _month `ui ~T0 @X0 1 e ]
  [i _month
 --> -> 7 `i `ui
 +-> -> 1 `i `ui
  ]
 -"8
 -[; ;./main.h: 8: unsigned int year = 19;
 +"26
 +[; ;main.c: 26: unsigned int year = 00;
  [v _year `ui ~T0 @X0 1 e ]
  [i _year
 --> -> 19 `i `ui
 +-> -> 0 `i `ui
  ]
 -"9
 -[; ;./main.h: 9: unsigned int century = 20;
 +"27
 +[; ;main.c: 27: unsigned int century = 20;
  [v _century `ui ~T0 @X0 1 e ]
  [i _century
  -> -> 20 `i `ui
  ]
 -"10
 -[; ;./main.h: 10: unsigned int alarm1_sec, alarm1_min, alarm1_hour;
 +"28
 +[; ;main.c: 28: unsigned int alarm1_sec = 0;
  [v _alarm1_sec `ui ~T0 @X0 1 e ]
 +[i _alarm1_sec
 +-> -> 0 `i `ui
 +]
 +"29
 +[; ;main.c: 29: unsigned int alarm1_min = 0;
  [v _alarm1_min `ui ~T0 @X0 1 e ]
 +[i _alarm1_min
 +-> -> 0 `i `ui
 +]
 +"30
 +[; ;main.c: 30: unsigned int alarm1_hour = 0;
  [v _alarm1_hour `ui ~T0 @X0 1 e ]
 -"11
 -[; ;./main.h: 11: unsigned int alarm2_min, alarm2_hour;
 +[i _alarm1_hour
 +-> -> 0 `i `ui
 +]
 +"31
 +[; ;main.c: 31: unsigned int alarm2_min = 0;
  [v _alarm2_min `ui ~T0 @X0 1 e ]
 +[i _alarm2_min
 +-> -> 0 `i `ui
 +]
 +"32
 +[; ;main.c: 32: unsigned int alarm2_hour = 0;
  [v _alarm2_hour `ui ~T0 @X0 1 e ]
 -"12
 -[; ;./main.h: 12: unsigned int status_reg, alarm1_status, alarm2_status;
 +[i _alarm2_hour
 +-> -> 0 `i `ui
 +]
 +"33
 +[; ;main.c: 33: unsigned int status_reg = 0;
  [v _status_reg `ui ~T0 @X0 1 e ]
 +[i _status_reg
 +-> -> 0 `i `ui
 +]
 +"34
 +[; ;main.c: 34: unsigned int alarm1_status = 0;
  [v _alarm1_status `ui ~T0 @X0 1 e ]
 +[i _alarm1_status
 +-> -> 0 `i `ui
 +]
 +"35
 +[; ;main.c: 35: unsigned int alarm2_status = 0;
  [v _alarm2_status `ui ~T0 @X0 1 e ]
 -"13
 -[; ;./main.h: 13: unsigned int control_reg;
 +[i _alarm2_status
 +-> -> 0 `i `ui
 +]
 +"36
 +[; ;main.c: 36: unsigned int control_reg = 0;
  [v _control_reg `ui ~T0 @X0 1 e ]
 -"16
 -[; ;./main.h: 16: unsigned int temperature_lsb = 0;
 +[i _control_reg
 +-> -> 0 `i `ui
 +]
 +"39
 +[; ;main.c: 39: unsigned int temperature_lsb = 0;
  [v _temperature_lsb `ui ~T0 @X0 1 e ]
  [i _temperature_lsb
  -> -> 0 `i `ui
  ]
 -"17
 -[; ;./main.h: 17: int temperature_msb = 0;
 +"40
 +[; ;main.c: 40: int temperature_msb = 0;
  [v _temperature_msb `i ~T0 @X0 1 e ]
  [i _temperature_msb
  -> 0 `i
  ]
 -"18
 -[; ;./main.h: 18: unsigned char temp_sign = ' ';
 +"41
 +[; ;main.c: 41: unsigned char temp_sign = ' ';
  [v _temp_sign `uc ~T0 @X0 1 e ]
  [i _temp_sign
  -> -> 32 `ui `uc
  ]
 -"21
 -[; ;./main.h: 21: char* weekday;
 -[v _weekday `*uc ~T0 @X0 1 e ]
 -"24
 -[; ;./main.h: 24: unsigned int sec_chg = 0;
 -[v _sec_chg `ui ~T0 @X0 1 e ]
 -[i _sec_chg
 --> -> 0 `i `ui
 -]
 -"27
 -[; ;./main.h: 27: unsigned char sec_0, sec_1;
 -[v _sec_0 `uc ~T0 @X0 1 e ]
 -[v _sec_1 `uc ~T0 @X0 1 e ]
 -"28
 -[; ;./main.h: 28: unsigned char min_0, min_1;
 -[v _min_0 `uc ~T0 @X0 1 e ]
 -[v _min_1 `uc ~T0 @X0 1 e ]
 -"29
 -[; ;./main.h: 29: unsigned char hour_0, hour_1;
 -[v _hour_0 `uc ~T0 @X0 1 e ]
 -[v _hour_1 `uc ~T0 @X0 1 e ]
 -"30
 -[; ;./main.h: 30: unsigned char day_0, day_1;
 -[v _day_0 `uc ~T0 @X0 1 e ]
 -[v _day_1 `uc ~T0 @X0 1 e ]
 -"31
 -[; ;./main.h: 31: unsigned char month_0, month_1;
 -[v _month_0 `uc ~T0 @X0 1 e ]
 -[v _month_1 `uc ~T0 @X0 1 e ]
 -"32
 -[; ;./main.h: 32: unsigned char year_0, year_1;
 -[v _year_0 `uc ~T0 @X0 1 e ]
 -[v _year_1 `uc ~T0 @X0 1 e ]
 -"33
 -[; ;./main.h: 33: unsigned char temp_0, temp_1, temp_2;
 -[v _temp_0 `uc ~T0 @X0 1 e ]
 -[v _temp_1 `uc ~T0 @X0 1 e ]
 -[v _temp_2 `uc ~T0 @X0 1 e ]
 -"34
 -[; ;./main.h: 34: unsigned char alarm1_sec_0, alarm1_sec_1, alarm1_min_0, alarm1_min_1,
 -[v _alarm1_sec_0 `uc ~T0 @X0 1 e ]
 -[v _alarm1_sec_1 `uc ~T0 @X0 1 e ]
 -[v _alarm1_min_0 `uc ~T0 @X0 1 e ]
 -[v _alarm1_min_1 `uc ~T0 @X0 1 e ]
 -"35
 -[; ;./main.h: 35:         alarm1_hour_0, alarm1_hour_1;
 -[v _alarm1_hour_0 `uc ~T0 @X0 1 e ]
 -[v _alarm1_hour_1 `uc ~T0 @X0 1 e ]
 -"36
 -[; ;./main.h: 36: unsigned char alarm2_min_0, alarm2_min_1, alarm2_hour_0, alarm2_hour_1;
 -[v _alarm2_min_0 `uc ~T0 @X0 1 e ]
 -[v _alarm2_min_1 `uc ~T0 @X0 1 e ]
 -[v _alarm2_hour_0 `uc ~T0 @X0 1 e ]
 -[v _alarm2_hour_1 `uc ~T0 @X0 1 e ]
 -"39
 -[; ;./main.h: 39: char buf[40];
 -[v _buf `uc ~T0 @X0 -> 40 `i e ]
 -"4 ./conf.h
 -[p x FOSC = HS ]
 -"5
 -[p x WDTE = OFF ]
 -"6
 -[p x PWRTE = ON ]
 -"7
 -[p x BOREN = ON ]
 -"8
 -[p x LVP = OFF ]
 -"9
 -[p x CPD = OFF ]
 -"10
 -[p x WRT = OFF ]
 -"11
 -[p x CP = OFF ]
 -"4
 -[p x FOSC = HS ]
 -"5
 -[p x WDTE = OFF ]
 -"6
 -[p x PWRTE = ON ]
 -"7
 -[p x BOREN = ON ]
 -"8
 -[p x LVP = OFF ]
 -"9
 -[p x CPD = OFF ]
 -"10
 -[p x WRT = OFF ]
 -"11
 -[p x CP = OFF ]
  [v $root$_main `(v ~T0 @X0 0 e ]
 -"17 main.c
 -[; ;main.c: 17: int main() {
 -[v _main `(i ~T0 @X0 1 ef ]
 +"43
 +[; ;main.c: 43: void main(void) {
 +[v _main `(v ~T0 @X0 1 ef ]
  {
  [e :U _main ]
  [f ]
 -"18
 -[; ;main.c: 18:     TRISC = 0x00;
 +"45
 +[; ;main.c: 45:     TRISA0 = 0x01;
 +[e = _TRISA0 -> -> 1 `i `b ]
 +"47
 +[; ;main.c: 47:     TRISBbits.TRISB2 = 1;
 +[e = . . _TRISBbits 0 2 -> -> 1 `i `uc ]
 +"48
 +[; ;main.c: 48:     TRISBbits.TRISB4 = 1;
 +[e = . . _TRISBbits 0 4 -> -> 1 `i `uc ]
 +"49
 +[; ;main.c: 49:     TRISBbits.TRISB5 = 1;
 +[e = . . _TRISBbits 0 5 -> -> 1 `i `uc ]
 +"51
 +[; ;main.c: 51:     GIE = 0;
 +[e = _GIE -> -> 0 `i `b ]
 +"52
 +[; ;main.c: 52:     OPTION_REGbits.nRBPU = 0;
 +[e = . . _OPTION_REGbits 0 5 -> -> 0 `i `uc ]
 +"53
 +[; ;main.c: 53:     INTE = 1;
 +[e = _INTE -> -> 1 `i `b ]
 +"54
 +[; ;main.c: 54:     GIE = 1;
 +[e = _GIE -> -> 1 `i `b ]
 +"56
 +[; ;main.c: 56:     TRISC = 0x00;
  [e = _TRISC -> -> 0 `i `uc ]
 -"19
 -[; ;main.c: 19:     PORTC = 0x00;
 +"57
 +[; ;main.c: 57:     PORTC = 0x00;
  [e = _PORTC -> -> 0 `i `uc ]
 -"21
 -[; ;main.c: 21:     TRISD = 0x00;
 +"59
 +[; ;main.c: 59:     TRISD = 0x00;
  [e = _TRISD -> -> 0 `i `uc ]
 -"22
 -[; ;main.c: 22:     PORTD = 0x00;
 +"60
 +[; ;main.c: 60:     PORTD = 0x00;
  [e = _PORTD -> -> 0 `i `uc ]
 -"33
 -[; ;main.c: 33:     I2C_Master_Init(100000);
 +"71
 +[; ;main.c: 71:     I2C_Master_Init(100000);
  [e ( _I2C_Master_Init (1 -> -> 100000 `l `ul ]
 -"41
 -[; ;main.c: 41:     Lcd_Init();
 +"80
 +[; ;main.c: 80:     Adc_Init();
 +[e ( _Adc_Init ..  ]
 +"89
 +[; ;main.c: 89:     Lcd_Init();
  [e ( _Lcd_Init ..  ]
 -"49
 -[; ;main.c: 49:     display_Intro();
 +"98
 +[; ;main.c: 98:     Vfd_Set_Brightness(0);
 +[e ( _Vfd_Set_Brightness (1 -> 0 `i ]
 +"101
 +[; ;main.c: 101:     display_Intro();
  [e ( _display_Intro ..  ]
 -"50
 -[; ;main.c: 50:     display_Lcd_Layout();
 +"102
 +[; ;main.c: 102:     display_Lcd_Layout();
  [e ( _display_Lcd_Layout ..  ]
 -"68
 -[; ;main.c: 68:     while (1) {
 -[e :U 98 ]
 -{
 -"72
 -[; ;main.c: 72:         Update_Current_Date_Time();
 -[e ( _Update_Current_Date_Time ..  ]
 -"76
 -[; ;main.c: 76:         Read_Alarms_Temp();
 -[e ( _Read_Alarms_Temp ..  ]
 -"79
 -[; ;main.c: 79:         Get_Alarm_Status();
 -[e ( _Get_Alarm_Status ..  ]
 -"83
 -[; ;main.c: 83:         format_DateTimeChars();
 -[e ( _format_DateTimeChars ..  ]
 -"87
 -[; ;main.c: 87:         format_Temperature();
 -[e ( _format_Temperature ..  ]
 -"91
 -[; ;main.c: 91:         getWeekDay(dayOfWeek);
 -[e ( _getWeekDay (1 _dayOfWeek ]
 -"94
 -[; ;main.c: 94:         if (sec_chg != sec) {
 -[e $ ! != _sec_chg _sec 100  ]
 -{
 -"96
 -[; ;main.c: 96:             update_Display();
 -[e ( _update_Display ..  ]
 -"99
 -[; ;main.c: 99:             sec_chg = sec;
 -[e = _sec_chg _sec ]
 -"121
 -[; ;main.c: 121:         }
 -}
 -[e :U 100 ]
 -"122
 -[; ;main.c: 122:     }
 -}
 +"120
 +[; ;main.c: 120:     Set_Sqwe(0x40);
 +[e ( _Set_Sqwe (1 -> 64 `i ]
 +"123
 +[; ;main.c: 123:     Vfd_Set_Brightness(3);
 +[e ( _Vfd_Set_Brightness (1 -> 3 `i ]
 +"127
 +[; ;main.c: 127:     while (1) {
  [e :U 97 ]
 -[e $U 98  ]
 -[e :U 99 ]
 -"124
 -[; ;main.c: 124:     return 0;
 -[e ) -> 0 `i ]
 -[e $UE 96  ]
 -"125
 -[; ;main.c: 125: }
 -[e :UE 96 ]
 -}
 -"129
 -[; ;main.c: 129: void format_DateTimeChars() {
 -[v _format_DateTimeChars `(v ~T0 @X0 1 ef ]
 -{
 -[e :U _format_DateTimeChars ]
 -[f ]
 -"130
 -[; ;main.c: 130:     sec_0 = sec % 10 + '0';
 -[e = _sec_0 -> + % _sec -> -> 10 `i `ui -> 48 `ui `uc ]
 -"131
 -[; ;main.c: 131:     sec_1 = sec / 10 + '0';
 -[e = _sec_1 -> + / _sec -> -> 10 `i `ui -> 48 `ui `uc ]
 -"132
 -[; ;main.c: 132:     min_0 = min % 10 + '0';
 -[e = _min_0 -> + % _min -> -> 10 `i `ui -> 48 `ui `uc ]
 -"133
 -[; ;main.c: 133:     min_1 = min / 10 + '0';
 -[e = _min_1 -> + / _min -> -> 10 `i `ui -> 48 `ui `uc ]
 -"134
 -[; ;main.c: 134:     hour_0 = hour % 10 + '0';
 -[e = _hour_0 -> + % _hour -> -> 10 `i `ui -> 48 `ui `uc ]
 -"135
 -[; ;main.c: 135:     hour_1 = hour / 10 + '0';
 -[e = _hour_1 -> + / _hour -> -> 10 `i `ui -> 48 `ui `uc ]
 -"136
 -[; ;main.c: 136:     day_0 = date % 10 + '0';
 -[e = _day_0 -> + % _date -> -> 10 `i `ui -> 48 `ui `uc ]
 +{
  "137
 -[; ;main.c: 137:     day_1 = date / 10 + '0';
 -[e = _day_1 -> + / _date -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 137:         if (update) {
 +[e $ ! != _update -> -> 0 `i `ui 99  ]
 +{
  "138
 -[; ;main.c: 138:     month_0 = month % 10 + '0';
 -[e = _month_0 -> + % _month -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 138:             Lcd_Set_Cursor(1, 3);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 3 `i `uc ]
  "139
 -[; ;main.c: 139:     month_1 = month / 10 + '0';
 -[e = _month_1 -> + / _month -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 139:             Lcd_Write_Char(':');
 +[e ( _Lcd_Write_Char (1 -> -> 58 `ui `uc ]
  "140
 -[; ;main.c: 140:     year_0 = year % 10 + '0';
 -[e = _year_0 -> + % _year -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 140:             Lcd_Set_Cursor(1, 6);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 6 `i `uc ]
  "141
 -[; ;main.c: 141:     year_1 = year / 10 + '0';
 -[e = _year_1 -> + / _year -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 141:             Lcd_Write_Char(':');
 +[e ( _Lcd_Write_Char (1 -> -> 58 `ui `uc ]
  "142
 -[; ;main.c: 142:     alarm1_sec_0 = alarm1_sec % 10 + '0';
 -[e = _alarm1_sec_0 -> + % _alarm1_sec -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 142:             Update_Current_Date_Time();
 +[e ( _Update_Current_Date_Time ..  ]
  "143
 -[; ;main.c: 143:     alarm1_sec_1 = alarm1_sec / 10 + '0';
 -[e = _alarm1_sec_1 -> + / _alarm1_sec -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 143:             Read_Alarms_Temp();
 +[e ( _Read_Alarms_Temp ..  ]
  "144
 -[; ;main.c: 144:     alarm1_min_0 = alarm1_min % 10 + '0';
 -[e = _alarm1_min_0 -> + % _alarm1_min -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 144:             Get_Alarm_Status();
 +[e ( _Get_Alarm_Status ..  ]
  "145
 -[; ;main.c: 145:     alarm1_min_1 = alarm1_min / 10 + '0';
 -[e = _alarm1_min_1 -> + / _alarm1_min -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 145:             format_Temperature();
 +[e ( _format_Temperature ..  ]
  "146
 -[; ;main.c: 146:     alarm1_hour_0 = alarm1_hour % 10 + '0';
 -[e = _alarm1_hour_0 -> + % _alarm1_hour -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 146:             update_Display();
 +[e ( _update_Display ..  ]
  "147
 -[; ;main.c: 147:     alarm1_hour_1 = alarm1_hour / 10 + '0';
 -[e = _alarm1_hour_1 -> + / _alarm1_hour -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 147:             update = 0;
 +[e = _update -> -> 0 `i `ui ]
  "148
 -[; ;main.c: 148:     alarm2_min_0 = alarm2_min % 10 + '0';
 -[e = _alarm2_min_0 -> + % _alarm2_min -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 148:             _delay((unsigned long)((500)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 500 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
  "149
 -[; ;main.c: 149:     alarm2_min_1 = alarm2_min / 10 + '0';
 -[e = _alarm2_min_1 -> + / _alarm2_min -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 149:         } else {
 +}
 +[e $U 100  ]
 +[e :U 99 ]
 +{
  "150
 -[; ;main.c: 150:     alarm2_hour_0 = alarm2_hour % 10 + '0';
 -[e = _alarm2_hour_0 -> + % _alarm2_hour -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 150:             Lcd_Set_Cursor(1, 3);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 3 `i `uc ]
  "151
 -[; ;main.c: 151:     alarm2_hour_1 = alarm2_hour / 10 + '0';
 -[e = _alarm2_hour_1 -> + / _alarm2_hour -> -> 10 `i `ui -> 48 `ui `uc ]
 +[; ;main.c: 151:             Lcd_Write_Char(' ');
 +[e ( _Lcd_Write_Char (1 -> -> 32 `ui `uc ]
  "152
 -[; ;main.c: 152: }
 -[e :UE 101 ]
 +[; ;main.c: 152:             Lcd_Set_Cursor(1, 6);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 6 `i `uc ]
 +"153
 +[; ;main.c: 153:             Lcd_Write_Char(' ');
 +[e ( _Lcd_Write_Char (1 -> -> 32 `ui `uc ]
 +"154
 +[; ;main.c: 154:         }
  }
 -"156
 -[; ;main.c: 156: void format_Temperature() {
 -[v _format_Temperature `(v ~T0 @X0 1 ef ]
 -{
 -[e :U _format_Temperature ]
 -[f ]
 -"158
 -[; ;main.c: 158:     if (temperature_msb < 0) {
 -[e $ ! < _temperature_msb -> 0 `i 103  ]
 -{
 -"159
 -[; ;main.c: 159:         temperature_msb *= -1;
 -[e =* _temperature_msb -U -> 1 `i ]
 -"160
 -[; ;main.c: 160:         temp_sign = '-';
 -[e = _temp_sign -> -> 45 `ui `uc ]
 +[e :U 100 ]
  "161
 -[; ;main.c: 161:     } else {
 -}
 -[e $U 104  ]
 -[e :U 103 ]
 +[; ;main.c: 161:         if (!RB2) {
 +[e $ ! ! _RB2 101  ]
  {
  "162
 -[; ;main.c: 162:         temp_sign = '+';
 -[e = _temp_sign -> -> 43 `ui `uc ]
 +[; ;main.c: 162:             _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
  "163
 -[; ;main.c: 163:     }
 +[; ;main.c: 163:             edit_Date_Time();
 +[e ( _edit_Date_Time ..  ]
 +"164
 +[; ;main.c: 164:         }
  }
 -[e :U 104 ]
 -"166
 -[; ;main.c: 166:     temperature_lsb >>= 6;
 -[e =>> _temperature_lsb -> -> 6 `i `ui ]
 -"169
 -[; ;main.c: 169:     temperature_lsb *= 25;
 -[e =* _temperature_lsb -> -> 25 `i `ui ]
 -"171
 -[; ;main.c: 171:     if (temperature_lsb == 0) {
 -[e $ ! == _temperature_lsb -> -> 0 `i `ui 105  ]
 -{
 -"172
 -[; ;main.c: 172:         temp_0 = '0';
 -[e = _temp_0 -> -> 48 `ui `uc ]
 -"173
 -[; ;main.c: 173:     }
 -}
 -[e :U 105 ]
 +[e :U 101 ]
  "175
 -[; ;main.c: 175:     if (temperature_lsb == 25) {
 -[e $ ! == _temperature_lsb -> -> 25 `i `ui 106  ]
 -{
 -"176
 -[; ;main.c: 176:         temp_0 = '2';
 -[e = _temp_0 -> -> 50 `ui `uc ]
 +[; ;main.c: 175:         ldr = Adc_Read(0);
 +[e = _ldr ( _Adc_Read (1 -> -> 0 `i `ui ]
  "177
 -[; ;main.c: 177:     }
 -}
 -[e :U 106 ]
 -"179
 -[; ;main.c: 179:     if (temperature_lsb == 50) {
 -[e $ ! == _temperature_lsb -> -> 50 `i `ui 107  ]
 +[; ;main.c: 177:         if (brtlvl_chg != ldr/256) {
 +[e $ ! != _brtlvl_chg / _ldr -> -> 256 `i `ui 102  ]
  {
 +"178
 +[; ;main.c: 178:             Vfd_Set_Brightness(ldr/256);
 +[e ( _Vfd_Set_Brightness (1 -> / _ldr -> -> 256 `i `ui `i ]
 +"179
 +[; ;main.c: 179:             brtlvl_chg = ldr/256;
 +[e = _brtlvl_chg / _ldr -> -> 256 `i `ui ]
  "180
 -[; ;main.c: 180:         temp_0 = '5';
 -[e = _temp_0 -> -> 53 `ui `uc ]
 -"181
 -[; ;main.c: 181:     }
 -}
 -[e :U 107 ]
 -"183
 -[; ;main.c: 183:     if (temperature_lsb == 75) {
 -[e $ ! == _temperature_lsb -> -> 75 `i `ui 108  ]
 -{
 -"184
 -[; ;main.c: 184:         temp_0 = '7';
 -[e = _temp_0 -> -> 55 `ui `uc ]
 -"185
 -[; ;main.c: 185:     }
 -}
 -[e :U 108 ]
 -"187
 -[; ;main.c: 187:     temp_1 = temperature_msb % 10 + '0';
 -[e = _temp_1 -> + -> % _temperature_msb -> 10 `i `ui -> 48 `ui `uc ]
 -"188
 -[; ;main.c: 188:     temp_2 = temperature_msb / 10 + '0';
 -[e = _temp_2 -> + -> / _temperature_msb -> 10 `i `ui -> 48 `ui `uc ]
 -"189
 -[; ;main.c: 189: }
 -[e :UE 102 ]
 -}
 -"193
 -[; ;main.c: 193: void getWeekDay(unsigned int dayOfWeek) {
 -[v _getWeekDay `(v ~T0 @X0 1 ef1`ui ]
 -{
 -[e :U _getWeekDay ]
 -[v _dayOfWeek `ui ~T0 @X0 1 r1 ]
 -[f ]
 -"194
 -[; ;main.c: 194:     switch (dayOfWeek) {
 -[e $U 111  ]
 -{
 -"195
 -[; ;main.c: 195:         case 1:
 -[e :U 112 ]
 -"196
 -[; ;main.c: 196:             weekday = "Sun";
 -[e = _weekday :s 1C ]
 -"197
 -[; ;main.c: 197:             break;
 -[e $U 110  ]
 -"198
 -[; ;main.c: 198:         case 2:
 -[e :U 113 ]
 -"199
 -[; ;main.c: 199:             weekday = "Mon";
 -[e = _weekday :s 2C ]
 -"200
 -[; ;main.c: 200:             break;
 -[e $U 110  ]
 -"201
 -[; ;main.c: 201:         case 3:
 -[e :U 114 ]
 -"202
 -[; ;main.c: 202:             weekday = "Tue";
 -[e = _weekday :s 3C ]
 -"203
 -[; ;main.c: 203:             break;
 -[e $U 110  ]
 -"204
 -[; ;main.c: 204:         case 4:
 -[e :U 115 ]
 -"205
 -[; ;main.c: 205:             weekday = "Wed";
 -[e = _weekday :s 4C ]
 -"206
 -[; ;main.c: 206:             break;
 -[e $U 110  ]
 +[; ;main.c: 180:         }
 +}
 +[e :U 102 ]
  "207
 -[; ;main.c: 207:         case 5:
 -[e :U 116 ]
 +[; ;main.c: 207:     }
 +}
 +[e :U 96 ]
 +[e $U 97  ]
 +[e :U 98 ]
  "208
 -[; ;main.c: 208:             weekday = "Thu";
 -[e = _weekday :s 5C ]
 -"209
 -[; ;main.c: 209:             break;
 -[e $U 110  ]
 -"210
 -[; ;main.c: 210:         case 6:
 -[e :U 117 ]
 -"211
 -[; ;main.c: 211:             weekday = "Fri";
 -[e = _weekday :s 6C ]
 -"212
 -[; ;main.c: 212:             break;
 -[e $U 110  ]
 -"213
 -[; ;main.c: 213:         case 7:
 -[e :U 118 ]
 -"214
 -[; ;main.c: 214:             weekday = "Sat";
 -[e = _weekday :s 7C ]
 -"215
 -[; ;main.c: 215:             break;
 -[e $U 110  ]
 -"216
 -[; ;main.c: 216:     }
 -}
 -[e $U 110  ]
 -[e :U 111 ]
 -[e [\ _dayOfWeek , $ -> -> 1 `i `ui 112
 - , $ -> -> 2 `i `ui 113
 - , $ -> -> 3 `i `ui 114
 - , $ -> -> 4 `i `ui 115
 - , $ -> -> 5 `i `ui 116
 - , $ -> -> 6 `i `ui 117
 - , $ -> -> 7 `i `ui 118
 - 110 ]
 -[e :U 110 ]
 -"217
 -[; ;main.c: 217: }
 -[e :UE 109 ]
 +[; ;main.c: 208: }
 +[e :UE 95 ]
  }
 -"221
 -[; ;main.c: 221: void Get_Alarm_Status() {
 -[v _Get_Alarm_Status `(v ~T0 @X0 1 ef ]
 +"218
 +[; ;main.c: 218: void format_Temperature() {
 +[v _format_Temperature `(v ~T0 @X0 1 ef ]
  {
 -[e :U _Get_Alarm_Status ]
 +[e :U _format_Temperature ]
  [f ]
  "222
 -[; ;main.c: 222:     alarm1_status = control_reg & 0x01;
 -[e = _alarm1_status & _control_reg -> -> 1 `i `ui ]
 +[; ;main.c: 222:     if (temperature_msb < 0) {
 +[e $ ! < _temperature_msb -> 0 `i 104  ]
 +{
  "223
 -[; ;main.c: 223:     alarm2_status = (control_reg >> 1) & 0x01;
 -[e = _alarm2_status & >> _control_reg -> 1 `i -> -> 1 `i `ui ]
 +[; ;main.c: 223:         temperature_msb *= -1;
 +[e =* _temperature_msb -U -> 1 `i ]
  "224
 -[; ;main.c: 224: }
 -[e :UE 119 ]
 +[; ;main.c: 224:         temp_sign = '-';
 +[e = _temp_sign -> -> 45 `ui `uc ]
 +"225
 +[; ;main.c: 225:     } else {
  }
 -"226
 -[; ;main.c: 226: void display_Intro() {
 -[v _display_Intro `(v ~T0 @X0 1 ef ]
 +[e $U 105  ]
 +[e :U 104 ]
  {
 -[e :U _display_Intro ]
 -[f ]
 -"228
 -[; ;main.c: 228:     Lcd_Clear();
 -[e ( _Lcd_Clear ..  ]
 -"229
 -[; ;main.c: 229:     Lcd_Set_Cursor(1, 1);
 -[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 1 `i `uc ]
 +"226
 +[; ;main.c: 226:         temp_sign = '+';
 +[e = _temp_sign -> -> 43 `ui `uc ]
 +"227
 +[; ;main.c: 227:     }
 +}
 +[e :U 105 ]
  "230
 -[; ;main.c: 230:     Lcd_Write_String("RTC/LCD with PIC");
 -[e ( _Lcd_Write_String (1 :s 8C ]
 -"231
 -[; ;main.c: 231:     Lcd_Set_Cursor(2, 1);
 -[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 1 `i `uc ]
 -"232
 -[; ;main.c: 232:     Lcd_Write_String(" Circuit Digest");
 -[e ( _Lcd_Write_String (1 :s 9C ]
 +[; ;main.c: 230:     temperature_lsb >>= 6;
 +[e =>> _temperature_lsb -> -> 6 `i `ui ]
  "233
 -[; ;main.c: 233:     _delay((unsigned long)((2000)*(20000000/4000.0)));
 -[e ( __delay (1 -> * -> -> 2000 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +[; ;main.c: 233:     temperature_lsb *= 25;
 +[e =* _temperature_lsb -> -> 25 `i `ui ]
  "234
  [; ;main.c: 234: }
 -[e :UE 120 ]
 +[e :UE 103 ]
  }
 -"236
 -[; ;main.c: 236: void display_Lcd_Layout() {
 -[v _display_Lcd_Layout `(v ~T0 @X0 1 ef ]
 +"238
 +[; ;main.c: 238: void Get_Alarm_Status() {
 +[v _Get_Alarm_Status `(v ~T0 @X0 1 ef ]
  {
 -[e :U _display_Lcd_Layout ]
 +[e :U _Get_Alarm_Status ]
  [f ]
 -"238
 -[; ;main.c: 238:     Lcd_Clear();
 -[e ( _Lcd_Clear ..  ]
  "239
 -[; ;main.c: 239:     Lcd_Set_Cursor(1, 1);
 -[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 1 `i `uc ]
 +[; ;main.c: 239:     alarm1_status = control_reg & 0x01;
 +[e = _alarm1_status & _control_reg -> -> 1 `i `ui ]
  "240
 -[; ;main.c: 240:     Lcd_Write_String("HH:mm:ss -PP.P");
 -[e ( _Lcd_Write_String (1 :s 10C ]
 +[; ;main.c: 240:     alarm2_status = (control_reg >> 1) & 0x01;
 +[e = _alarm2_status & >> _control_reg -> 1 `i -> -> 1 `i `ui ]
  "241
 -[; ;main.c: 241:     Lcd_Write_Char(0xDF);
 -[e ( _Lcd_Write_Char (1 -> -> 223 `i `uc ]
 -"242
 -[; ;main.c: 242:     Lcd_Write_Char('C');
 -[e ( _Lcd_Write_Char (1 -> -> 67 `ui `uc ]
 -"243
 -[; ;main.c: 243:     Lcd_Set_Cursor(2, 1);
 -[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 1 `i `uc ]
 -"244
 -[; ;main.c: 244:     Lcd_Write_String("ddd, DD/MM/YY  ");
 -[e ( _Lcd_Write_String (1 :s 11C ]
 +[; ;main.c: 241: }
 +[e :UE 106 ]
 +}
  "245
 -[; ;main.c: 245:     _delay((unsigned long)((2000)*(20000000/4000.0)));
 -[e ( __delay (1 -> * -> -> 2000 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +[; ;main.c: 245: void display_Digit(unsigned int data) {
 +[v _display_Digit `(v ~T0 @X0 1 ef1`ui ]
 +{
 +[e :U _display_Digit ]
 +[v _data `ui ~T0 @X0 1 r1 ]
 +[f ]
  "246
 -[; ;main.c: 246: }
 -[e :UE 121 ]
 -}
 +[; ;main.c: 246:     Lcd_Write_Char(((data / 10) + '0'));
 +[e ( _Lcd_Write_Char (1 -> + / _data -> -> 10 `i `ui -> 48 `ui `uc ]
 +"247
 +[; ;main.c: 247:     Lcd_Write_Char(((data % 10) + '0'));
 +[e ( _Lcd_Write_Char (1 -> + % _data -> -> 10 `i `ui -> 48 `ui `uc ]
  "248
 -[; ;main.c: 248: void update_Display() {
 -[v _update_Display `(v ~T0 @X0 1 ef ]
 +[; ;main.c: 248: }
 +[e :UE 107 ]
 +}
 +"252
 +[; ;main.c: 252: void display_Intro() {
 +[v _display_Intro `(v ~T0 @X0 1 ef ]
  {
 -[e :U _update_Display ]
 +[e :U _display_Intro ]
  [f ]
 -"250
 -[; ;main.c: 250:     Lcd_Set_Cursor(1, 1);
 -[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 1 `i `uc ]
 -"251
 -[; ;main.c: 251:     Lcd_Write_Char(hour_1);
 -[e ( _Lcd_Write_Char (1 -> _hour_1 `uc ]
 -"252
 -[; ;main.c: 252:     Lcd_Write_Char(hour_0);
 -[e ( _Lcd_Write_Char (1 -> _hour_0 `uc ]
 +"254
 +[; ;main.c: 254:     Lcd_Clear();
 +[e ( _Lcd_Clear ..  ]
  "255
  [; ;main.c: 255:     Lcd_Set_Cursor(1, 4);
  [e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 4 `i `uc ]
  "256
 -[; ;main.c: 256:     Lcd_Write_Char(min_1);
 -[e ( _Lcd_Write_Char (1 -> _min_1 `uc ]
 +[; ;main.c: 256:     Lcd_Write_String("Desk Clock");
 +[e ( _Lcd_Write_String (1 :s 1C ]
  "257
 -[; ;main.c: 257:     Lcd_Write_Char(min_0);
 -[e ( _Lcd_Write_Char (1 -> _min_0 `uc ]
 +[; ;main.c: 257:     Lcd_Set_Cursor(2, 15);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 15 `i `uc ]
 +"258
 +[; ;main.c: 258:     Lcd_Write_String("V1");
 +[e ( _Lcd_Write_String (1 :s 2C ]
 +"259
 +[; ;main.c: 259:     _delay((unsigned long)((1000)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 1000 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
  "260
 -[; ;main.c: 260:     Lcd_Set_Cursor(1, 7);
 -[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 7 `i `uc ]
 -"261
 -[; ;main.c: 261:     Lcd_Write_Char(sec_1);
 -[e ( _Lcd_Write_Char (1 -> _sec_1 `uc ]
 -"262
 -[; ;main.c: 262:     Lcd_Write_Char(sec_0);
 -[e ( _Lcd_Write_Char (1 -> _sec_0 `uc ]
 -"265
 -[; ;main.c: 265:     Lcd_Set_Cursor(2, 6);
 -[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 6 `i `uc ]
 +[; ;main.c: 260: }
 +[e :UE 108 ]
 +}
 +"264
 +[; ;main.c: 264: void display_Lcd_Layout() {
 +[v _display_Lcd_Layout `(v ~T0 @X0 1 ef ]
 +{
 +[e :U _display_Lcd_Layout ]
 +[f ]
  "266
 -[; ;main.c: 266:     Lcd_Write_Char(day_1);
 -[e ( _Lcd_Write_Char (1 -> _day_1 `uc ]
 +[; ;main.c: 266:     Lcd_Clear();
 +[e ( _Lcd_Clear ..  ]
  "267
 -[; ;main.c: 267:     Lcd_Write_Char(day_0);
 -[e ( _Lcd_Write_Char (1 -> _day_0 `uc ]
 +[; ;main.c: 267:     Lcd_Set_Cursor(1, 1);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 1 `i `uc ]
 +"268
 +[; ;main.c: 268:     Lcd_Write_String("HH:mm:ss -PP.P");
 +[e ( _Lcd_Write_String (1 :s 3C ]
 +"269
 +[; ;main.c: 269:     Lcd_Write_Char(0xDF);
 +[e ( _Lcd_Write_Char (1 -> -> 223 `i `uc ]
  "270
 -[; ;main.c: 270:     Lcd_Set_Cursor(2, 9);
 -[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 9 `i `uc ]
 +[; ;main.c: 270:     Lcd_Write_Char('C');
 +[e ( _Lcd_Write_Char (1 -> -> 67 `ui `uc ]
  "271
 -[; ;main.c: 271:     Lcd_Write_Char(month_1);
 -[e ( _Lcd_Write_Char (1 -> _month_1 `uc ]
 +[; ;main.c: 271:     Lcd_Set_Cursor(2, 1);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 1 `i `uc ]
  "272
 -[; ;main.c: 272:     Lcd_Write_Char(month_0);
 -[e ( _Lcd_Write_Char (1 -> _month_0 `uc ]
 +[; ;main.c: 272:     Lcd_Write_String(" ddd DD/MM/CCYY ");
 +[e ( _Lcd_Write_String (1 :s 4C ]
 +"274
 +[; ;main.c: 274:     _delay((unsigned long)((1000)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 1000 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
  "275
 -[; ;main.c: 275:     Lcd_Set_Cursor(2, 12);
 -[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 12 `i `uc ]
 -"276
 -[; ;main.c: 276:     Lcd_Write_Char(year_1);
 -[e ( _Lcd_Write_Char (1 -> _year_1 `uc ]
 -"277
 -[; ;main.c: 277:     Lcd_Write_Char(year_0);
 -[e ( _Lcd_Write_Char (1 -> _year_0 `uc ]
 -"280
 -[; ;main.c: 280:     Lcd_Set_Cursor(2, 1);
 -[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 1 `i `uc ]
 +[; ;main.c: 275: }
 +[e :UE 109 ]
 +}
 +"279
 +[; ;main.c: 279: void update_Display() {
 +[v _update_Display `(v ~T0 @X0 1 ef ]
 +{
 +[e :U _update_Display ]
 +[f ]
  "281
 -[; ;main.c: 281:     Lcd_Write_String(weekday);
 -[e ( _Lcd_Write_String (1 _weekday ]
 -"284
 -[; ;main.c: 284:     Lcd_Set_Cursor(1, 10);
 -[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 10 `i `uc ]
 +[; ;main.c: 281:     Lcd_Set_Cursor(1, 1);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 1 `i `uc ]
 +"282
 +[; ;main.c: 282:     display_Digit(hour);
 +[e ( _display_Digit (1 _hour ]
  "285
 -[; ;main.c: 285:     Lcd_Write_Char(temp_sign);
 -[e ( _Lcd_Write_Char (1 -> _temp_sign `uc ]
 +[; ;main.c: 285:     Lcd_Set_Cursor(1, 4);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 4 `i `uc ]
  "286
 -[; ;main.c: 286:     Lcd_Write_Char(temp_2);
 -[e ( _Lcd_Write_Char (1 -> _temp_2 `uc ]
 -"287
 -[; ;main.c: 287:     Lcd_Write_Char(temp_1);
 -[e ( _Lcd_Write_Char (1 -> _temp_1 `uc ]
 -"288
 -[; ;main.c: 288:     Lcd_Set_Cursor(1, 14);
 -[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 14 `i `uc ]
 +[; ;main.c: 286:     display_Digit(min);
 +[e ( _display_Digit (1 _min ]
  "289
 -[; ;main.c: 289:     Lcd_Write_Char(temp_0);
 -[e ( _Lcd_Write_Char (1 -> _temp_0 `uc ]
 -"291
 -[; ;main.c: 291:     if (min == 00 && sec == 00) {
 -[e $ ! && == _min -> -> 0 `i `ui == _sec -> -> 0 `i `ui 123  ]
 -{
 -"292
 -[; ;main.c: 292:         alarm(2);
 -[e ( _alarm (1 -> -> 2 `i `ui ]
 +[; ;main.c: 289:     Lcd_Set_Cursor(1, 7);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 7 `i `uc ]
 +"290
 +[; ;main.c: 290:     display_Digit(sec);
 +[e ( _display_Digit (1 _sec ]
  "293
 -[; ;main.c: 293:     }
 +[; ;main.c: 293:     Lcd_Set_Cursor(2, 6);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 6 `i `uc ]
 +"294
 +[; ;main.c: 294:     display_Digit(date);
 +[e ( _display_Digit (1 _date ]
 +"297
 +[; ;main.c: 297:     Lcd_Set_Cursor(2, 9);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 9 `i `uc ]
 +"298
 +[; ;main.c: 298:     display_Digit(month);
 +[e ( _display_Digit (1 _month ]
 +"301
 +[; ;main.c: 301:     Lcd_Set_Cursor(2, 12);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 12 `i `uc ]
 +"302
 +[; ;main.c: 302:     display_Digit(century);
 +[e ( _display_Digit (1 _century ]
 +"305
 +[; ;main.c: 305:     Lcd_Set_Cursor(2, 14);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 14 `i `uc ]
 +"306
 +[; ;main.c: 306:     display_Digit(year);
 +[e ( _display_Digit (1 _year ]
 +"309
 +[; ;main.c: 309:     Lcd_Set_Cursor(2, 2);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 2 `i `uc ]
 +"310
 +[; ;main.c: 310:     Lcd_Write_String(Get_WeekDay(day));
 +[e ( _Lcd_Write_String (1 ( _Get_WeekDay (1 _day ]
 +"313
 +[; ;main.c: 313:     Lcd_Set_Cursor(1, 10);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 10 `i `uc ]
 +"314
 +[; ;main.c: 314:     Lcd_Write_Char(temp_sign);
 +[e ( _Lcd_Write_Char (1 -> _temp_sign `uc ]
 +"315
 +[; ;main.c: 315:     display_Digit(temperature_msb);
 +[e ( _display_Digit (1 -> _temperature_msb `ui ]
 +"316
 +[; ;main.c: 316:     Lcd_Set_Cursor(1, 14);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 14 `i `uc ]
 +"317
 +[; ;main.c: 317:     Lcd_Write_Char(((temperature_lsb / 10) + '0'));
 +[e ( _Lcd_Write_Char (1 -> + / _temperature_lsb -> -> 10 `i `ui -> 48 `ui `uc ]
 +"320
 +[; ;main.c: 320:     if (min == 00 && sec == 00) {
 +[e $ ! && == _min -> -> 0 `i `ui == _sec -> -> 0 `i `ui 111  ]
 +{
 +"321
 +[; ;main.c: 321:         alarm(2);
 +[e ( _alarm (1 -> -> 2 `i `ui ]
 +"322
 +[; ;main.c: 322:     }
  }
 -[e :U 123 ]
 -"295
 -[; ;main.c: 295:     if (min == 30 && sec == 00) {
 -[e $ ! && == _min -> -> 30 `i `ui == _sec -> -> 0 `i `ui 124  ]
 +[e :U 111 ]
 +"325
 +[; ;main.c: 325:     if (min == 30 && sec == 00) {
 +[e $ ! && == _min -> -> 30 `i `ui == _sec -> -> 0 `i `ui 112  ]
  {
 -"296
 -[; ;main.c: 296:         alarm(1);
 +"326
 +[; ;main.c: 326:         alarm(1);
  [e ( _alarm (1 -> -> 1 `i `ui ]
 -"297
 -[; ;main.c: 297:     }
 +"327
 +[; ;main.c: 327:     }
 +}
 +[e :U 112 ]
 +"328
 +[; ;main.c: 328: }
 +[e :UE 110 ]
 +}
 +"349
 +[; ;main.c: 349: void edit_Date_Time(void) {
 +[v _edit_Date_Time `(v ~T0 @X0 1 ef ]
 +{
 +[e :U _edit_Date_Time ]
 +[f ]
 +"351
 +[; ;main.c: 351:     int updateRTC = 0;
 +[v _updateRTC `i ~T0 @X0 1 a ]
 +[e = _updateRTC -> 0 `i ]
 +"355
 +[; ;main.c: 355:     unsigned int hour_org = hour;
 +[v _hour_org `ui ~T0 @X0 1 a ]
 +[e = _hour_org _hour ]
 +"356
 +[; ;main.c: 356:     unsigned int min_org = min;
 +[v _min_org `ui ~T0 @X0 1 a ]
 +[e = _min_org _min ]
 +"357
 +[; ;main.c: 357:     unsigned int sec_org = sec;
 +[v _sec_org `ui ~T0 @X0 1 a ]
 +[e = _sec_org _sec ]
 +"358
 +[; ;main.c: 358:     unsigned int year_org = year;
 +[v _year_org `ui ~T0 @X0 1 a ]
 +[e = _year_org _year ]
 +"359
 +[; ;main.c: 359:     unsigned int month_org = month;
 +[v _month_org `ui ~T0 @X0 1 a ]
 +[e = _month_org _month ]
 +"360
 +[; ;main.c: 360:     unsigned int date_org = date;
 +[v _date_org `ui ~T0 @X0 1 a ]
 +[e = _date_org _date ]
 +"362
 +[; ;main.c: 362:     Lcd_Set_Cursor(2, 16);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 16 `i `uc ]
 +"363
 +[; ;main.c: 363:     Lcd_Write_Char('S');
 +[e ( _Lcd_Write_Char (1 -> -> 83 `ui `uc ]
 +"364
 +[; ;main.c: 364:     edit_datetime++;
 +[e ++ _edit_datetime -> -> 1 `i `ui ]
 +"365
 +[; ;main.c: 365:     while (edit_datetime > 0 && edit_datetime < 7) {
 +[e $U 114  ]
 +[e :U 115 ]
 +{
 +"368
 +[; ;main.c: 368:         Lcd_Set_Cursor(1, 3);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 3 `i `uc ]
 +"369
 +[; ;main.c: 369:         Lcd_Write_Char(':');
 +[e ( _Lcd_Write_Char (1 -> -> 58 `ui `uc ]
 +"370
 +[; ;main.c: 370:         Lcd_Set_Cursor(1, 6);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 6 `i `uc ]
 +"371
 +[; ;main.c: 371:         Lcd_Write_Char(':');
 +[e ( _Lcd_Write_Char (1 -> -> 58 `ui `uc ]
 +"373
 +[; ;main.c: 373:         switch (edit_datetime) {
 +[e $U 118  ]
 +{
 +"374
 +[; ;main.c: 374:             case 1:
 +[e :U 119 ]
 +"375
 +[; ;main.c: 375:                 Lcd_Set_Cursor(2, 16);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 16 `i `uc ]
 +"376
 +[; ;main.c: 376:                 Lcd_Write_Char('h');
 +[e ( _Lcd_Write_Char (1 -> -> 104 `ui `uc ]
 +"377
 +[; ;main.c: 377:                 if (!RB5) {
 +[e $ ! ! _RB5 120  ]
 +{
 +"378
 +[; ;main.c: 378:                     _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"379
 +[; ;main.c: 379:                     if (hour == 0) {
 +[e $ ! == _hour -> -> 0 `i `ui 121  ]
 +{
 +"380
 +[; ;main.c: 380:                         hour = 23;
 +[e = _hour -> -> 23 `i `ui ]
 +"381
 +[; ;main.c: 381:                     } else {
 +}
 +[e $U 122  ]
 +[e :U 121 ]
 +{
 +"382
 +[; ;main.c: 382:                         hour -= 1;
 +[e =- _hour -> -> 1 `i `ui ]
 +"383
 +[; ;main.c: 383:                     }
 +}
 +[e :U 122 ]
 +"384
 +[; ;main.c: 384:                     Lcd_Set_Cursor(1, 1);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 1 `i `uc ]
 +"385
 +[; ;main.c: 385:                     display_Digit(hour);
 +[e ( _display_Digit (1 _hour ]
 +"387
 +[; ;main.c: 387:                 } else if (!RB4) {
 +}
 +[e $U 123  ]
 +[e :U 120 ]
 +[e $ ! ! _RB4 124  ]
 +{
 +"388
 +[; ;main.c: 388:                     _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"389
 +[; ;main.c: 389:                     if (hour + 1 > 23) {
 +[e $ ! > + _hour -> -> 1 `i `ui -> -> 23 `i `ui 125  ]
 +{
 +"390
 +[; ;main.c: 390:                         hour = 0;
 +[e = _hour -> -> 0 `i `ui ]
 +"391
 +[; ;main.c: 391:                     } else {
 +}
 +[e $U 126  ]
 +[e :U 125 ]
 +{
 +"392
 +[; ;main.c: 392:                         hour += 1;
 +[e =+ _hour -> -> 1 `i `ui ]
 +"393
 +[; ;main.c: 393:                     }
 +}
 +[e :U 126 ]
 +"395
 +[; ;main.c: 395:                     Lcd_Set_Cursor(1, 1);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 1 `i `uc ]
 +"396
 +[; ;main.c: 396:                     display_Digit(hour);
 +[e ( _display_Digit (1 _hour ]
 +"397
 +[; ;main.c: 397:                 }
  }
  [e :U 124 ]
 -"298
 -[; ;main.c: 298: }
 -[e :UE 122 ]
 -}
 -[a 5C 84 104 117 0 ]
 -[a 9C 32 67 105 114 99 117 105 116 32 68 105 103 101 115 116 0 ]
 -[a 7C 83 97 116 0 ]
 -[a 1C 83 117 110 0 ]
 -[a 2C 77 111 110 0 ]
 -[a 6C 70 114 105 0 ]
 -[a 3C 84 117 101 0 ]
 -[a 4C 87 101 100 0 ]
 -[a 10C 72 72 58 109 109 58 115 115 32 45 80 80 46 80 0 ]
 -[a 8C 82 84 67 47 76 67 68 32 119 105 116 104 32 80 73 67 0 ]
 -[a 11C 100 100 100 44 32 68 68 47 77 77 47 89 89 32 32 0 ]
 +[e :U 123 ]
 +"399
 +[; ;main.c: 399:                 break;
 +[e $U 117  ]
 +"401
 +[; ;main.c: 401:             case 2:
 +[e :U 127 ]
 +"402
 +[; ;main.c: 402:                 Lcd_Set_Cursor(2, 16);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 16 `i `uc ]
 +"403
 +[; ;main.c: 403:                 Lcd_Write_Char('m');
 +[e ( _Lcd_Write_Char (1 -> -> 109 `ui `uc ]
 +"404
 +[; ;main.c: 404:                 if (!RB5) {
 +[e $ ! ! _RB5 128  ]
 +{
 +"405
 +[; ;main.c: 405:                     _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"406
 +[; ;main.c: 406:                     if (min == 0) {
 +[e $ ! == _min -> -> 0 `i `ui 129  ]
 +{
 +"407
 +[; ;main.c: 407:                         min = 59;
 +[e = _min -> -> 59 `i `ui ]
 +"408
 +[; ;main.c: 408:                     } else {
 +}
 +[e $U 130  ]
 +[e :U 129 ]
 +{
 +"409
 +[; ;main.c: 409:                         min -= 1;
 +[e =- _min -> -> 1 `i `ui ]
 +"410
 +[; ;main.c: 410:                     }
 +}
 +[e :U 130 ]
 +"411
 +[; ;main.c: 411:                     Lcd_Set_Cursor(1, 4);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 4 `i `uc ]
 +"412
 +[; ;main.c: 412:                     display_Digit(min);
 +[e ( _display_Digit (1 _min ]
 +"414
 +[; ;main.c: 414:                 } else if (!RB4) {
 +}
 +[e $U 131  ]
 +[e :U 128 ]
 +[e $ ! ! _RB4 132  ]
 +{
 +"415
 +[; ;main.c: 415:                     _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"416
 +[; ;main.c: 416:                     if (min + 1 > 59) {
 +[e $ ! > + _min -> -> 1 `i `ui -> -> 59 `i `ui 133  ]
 +{
 +"417
 +[; ;main.c: 417:                         min = 0;
 +[e = _min -> -> 0 `i `ui ]
 +"418
 +[; ;main.c: 418:                     } else {
 +}
 +[e $U 134  ]
 +[e :U 133 ]
 +{
 +"419
 +[; ;main.c: 419:                         min += 1;
 +[e =+ _min -> -> 1 `i `ui ]
 +"420
 +[; ;main.c: 420:                     }
 +}
 +[e :U 134 ]
 +"422
 +[; ;main.c: 422:                     Lcd_Set_Cursor(1, 4);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 4 `i `uc ]
 +"423
 +[; ;main.c: 423:                     display_Digit(min);
 +[e ( _display_Digit (1 _min ]
 +"424
 +[; ;main.c: 424:                 }
 +}
 +[e :U 132 ]
 +[e :U 131 ]
 +"426
 +[; ;main.c: 426:                 break;
 +[e $U 117  ]
 +"428
 +[; ;main.c: 428:             case 3:
 +[e :U 135 ]
 +"429
 +[; ;main.c: 429:                 Lcd_Set_Cursor(2, 16);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 16 `i `uc ]
 +"430
 +[; ;main.c: 430:                 Lcd_Write_Char('s');
 +[e ( _Lcd_Write_Char (1 -> -> 115 `ui `uc ]
 +"431
 +[; ;main.c: 431:                 if (!RB5) {
 +[e $ ! ! _RB5 136  ]
 +{
 +"432
 +[; ;main.c: 432:                     _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"433
 +[; ;main.c: 433:                     if (sec == 0) {
 +[e $ ! == _sec -> -> 0 `i `ui 137  ]
 +{
 +"434
 +[; ;main.c: 434:                         sec = 59;
 +[e = _sec -> -> 59 `i `ui ]
 +"435
 +[; ;main.c: 435:                     } else {
 +}
 +[e $U 138  ]
 +[e :U 137 ]
 +{
 +"436
 +[; ;main.c: 436:                         sec -= 1;
 +[e =- _sec -> -> 1 `i `ui ]
 +"437
 +[; ;main.c: 437:                     }
 +}
 +[e :U 138 ]
 +"438
 +[; ;main.c: 438:                     Lcd_Set_Cursor(1, 7);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 7 `i `uc ]
 +"439
 +[; ;main.c: 439:                     display_Digit(sec);
 +[e ( _display_Digit (1 _sec ]
 +"440
 +[; ;main.c: 440:                     if (sec_org != sec) {
 +[e $ ! != _sec_org _sec 139  ]
 +{
 +"441
 +[; ;main.c: 441:                         updateRTC = 1;
 +[e = _updateRTC -> 1 `i ]
 +"442
 +[; ;main.c: 442:                     }
 +}
 +[e :U 139 ]
 +"444
 +[; ;main.c: 444:                 } else if (!RB4) {
 +}
 +[e $U 140  ]
 +[e :U 136 ]
 +[e $ ! ! _RB4 141  ]
 +{
 +"445
 +[; ;main.c: 445:                     _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"446
 +[; ;main.c: 446:                     if (sec + 1 > 59) {
 +[e $ ! > + _sec -> -> 1 `i `ui -> -> 59 `i `ui 142  ]
 +{
 +"447
 +[; ;main.c: 447:                         sec = 0;
 +[e = _sec -> -> 0 `i `ui ]
 +"448
 +[; ;main.c: 448:                     } else {
 +}
 +[e $U 143  ]
 +[e :U 142 ]
 +{
 +"449
 +[; ;main.c: 449:                         sec += 1;
 +[e =+ _sec -> -> 1 `i `ui ]
 +"450
 +[; ;main.c: 450:                     }
 +}
 +[e :U 143 ]
 +"452
 +[; ;main.c: 452:                     Lcd_Set_Cursor(1, 7);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 1 `i `uc -> -> 7 `i `uc ]
 +"453
 +[; ;main.c: 453:                     display_Digit(sec);
 +[e ( _display_Digit (1 _sec ]
 +"454
 +[; ;main.c: 454:                     if (sec_org != sec) {
 +[e $ ! != _sec_org _sec 144  ]
 +{
 +"455
 +[; ;main.c: 455:                         updateRTC = 1;
 +[e = _updateRTC -> 1 `i ]
 +"456
 +[; ;main.c: 456:                     }
 +}
 +[e :U 144 ]
 +"457
 +[; ;main.c: 457:                 }
 +}
 +[e :U 141 ]
 +[e :U 140 ]
 +"459
 +[; ;main.c: 459:                 break;
 +[e $U 117  ]
 +"461
 +[; ;main.c: 461:             case 6:
 +[e :U 145 ]
 +"462
 +[; ;main.c: 462:                 Lcd_Set_Cursor(2, 16);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 16 `i `uc ]
 +"463
 +[; ;main.c: 463:                 Lcd_Write_Char('D');
 +[e ( _Lcd_Write_Char (1 -> -> 68 `ui `uc ]
 +"464
 +[; ;main.c: 464:                 if (!RB5) {
 +[e $ ! ! _RB5 146  ]
 +{
 +"465
 +[; ;main.c: 465:                     _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"466
 +[; ;main.c: 466:                     if (date - 1 == 0) {
 +[e $ ! == - _date -> -> 1 `i `ui -> -> 0 `i `ui 147  ]
 +{
 +"467
 +[; ;main.c: 467:                         date = Get_Days_In_Month(year, month);
 +[e = _date ( _Get_Days_In_Month (2 , _year _month ]
 +"468
 +[; ;main.c: 468:                     } else {
 +}
 +[e $U 148  ]
 +[e :U 147 ]
 +{
 +"469
 +[; ;main.c: 469:                         date -= 1;
 +[e =- _date -> -> 1 `i `ui ]
 +"470
 +[; ;main.c: 470:                     }
 +}
 +[e :U 148 ]
 +"472
 +[; ;main.c: 472:                     Lcd_Set_Cursor(2, 2);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 2 `i `uc ]
 +"473
 +[; ;main.c: 473:                     Lcd_Write_String(Get_WeekDay(Get_DayOfWeek(year, month, date)));
 +[e ( _Lcd_Write_String (1 ( _Get_WeekDay (1 ( _Get_DayOfWeek (3 , , _year _month _date ]
 +"474
 +[; ;main.c: 474:                     Lcd_Set_Cursor(2, 6);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 6 `i `uc ]
 +"475
 +[; ;main.c: 475:                     display_Digit(date);
 +[e ( _display_Digit (1 _date ]
 +"477
 +[; ;main.c: 477:                 } else if (!RB4) {
 +}
 +[e $U 149  ]
 +[e :U 146 ]
 +[e $ ! ! _RB4 150  ]
 +{
 +"478
 +[; ;main.c: 478:                     _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"480
 +[; ;main.c: 480:                     if (date + 1 > Get_Days_In_Month(year, month)) {
 +[e $ ! > + _date -> -> 1 `i `ui ( _Get_Days_In_Month (2 , _year _month 151  ]
 +{
 +"481
 +[; ;main.c: 481:                         date = 1;
 +[e = _date -> -> 1 `i `ui ]
 +"482
 +[; ;main.c: 482:                     } else {
 +}
 +[e $U 152  ]
 +[e :U 151 ]
 +{
 +"483
 +[; ;main.c: 483:                         date += 1;
 +[e =+ _date -> -> 1 `i `ui ]
 +"484
 +[; ;main.c: 484:                     }
 +}
 +[e :U 152 ]
 +"486
 +[; ;main.c: 486:                     Lcd_Set_Cursor(2, 2);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 2 `i `uc ]
 +"487
 +[; ;main.c: 487:                     Lcd_Write_String(Get_WeekDay(Get_DayOfWeek(year, month, date)));
 +[e ( _Lcd_Write_String (1 ( _Get_WeekDay (1 ( _Get_DayOfWeek (3 , , _year _month _date ]
 +"488
 +[; ;main.c: 488:                     Lcd_Set_Cursor(2, 6);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 6 `i `uc ]
 +"489
 +[; ;main.c: 489:                     display_Digit(date);
 +[e ( _display_Digit (1 _date ]
 +"490
 +[; ;main.c: 490:                 }
 +}
 +[e :U 150 ]
 +[e :U 149 ]
 +"492
 +[; ;main.c: 492:                 break;
 +[e $U 117  ]
 +"494
 +[; ;main.c: 494:             case 5:
 +[e :U 153 ]
 +"495
 +[; ;main.c: 495:                 Lcd_Set_Cursor(2, 16);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 16 `i `uc ]
 +"496
 +[; ;main.c: 496:                 Lcd_Write_Char('M');
 +[e ( _Lcd_Write_Char (1 -> -> 77 `ui `uc ]
 +"497
 +[; ;main.c: 497:                 if (!RB5) {
 +[e $ ! ! _RB5 154  ]
 +{
 +"498
 +[; ;main.c: 498:                     _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"499
 +[; ;main.c: 499:                     if (month - 1 == 0) {
 +[e $ ! == - _month -> -> 1 `i `ui -> -> 0 `i `ui 155  ]
 +{
 +"500
 +[; ;main.c: 500:                         month = 12;
 +[e = _month -> -> 12 `i `ui ]
 +"501
 +[; ;main.c: 501:                     } else {
 +}
 +[e $U 156  ]
 +[e :U 155 ]
 +{
 +"502
 +[; ;main.c: 502:                         month -= 1;
 +[e =- _month -> -> 1 `i `ui ]
 +"503
 +[; ;main.c: 503:                     }
 +}
 +[e :U 156 ]
 +"504
 +[; ;main.c: 504:                     Lcd_Set_Cursor(2, 9);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 9 `i `uc ]
 +"505
 +[; ;main.c: 505:                     display_Digit(month);
 +[e ( _display_Digit (1 _month ]
 +"507
 +[; ;main.c: 507:                 } else if (!RB4) {
 +}
 +[e $U 157  ]
 +[e :U 154 ]
 +[e $ ! ! _RB4 158  ]
 +{
 +"508
 +[; ;main.c: 508:                     _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"509
 +[; ;main.c: 509:                     if (month + 1 > 12) {
 +[e $ ! > + _month -> -> 1 `i `ui -> -> 12 `i `ui 159  ]
 +{
 +"510
 +[; ;main.c: 510:                         month = 1;
 +[e = _month -> -> 1 `i `ui ]
 +"511
 +[; ;main.c: 511:                     } else {
 +}
 +[e $U 160  ]
 +[e :U 159 ]
 +{
 +"512
 +[; ;main.c: 512:                         month += 1;
 +[e =+ _month -> -> 1 `i `ui ]
 +"513
 +[; ;main.c: 513:                     }
 +}
 +[e :U 160 ]
 +"515
 +[; ;main.c: 515:                     Lcd_Set_Cursor(2, 9);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 9 `i `uc ]
 +"516
 +[; ;main.c: 516:                     display_Digit(month);
 +[e ( _display_Digit (1 _month ]
 +"517
 +[; ;main.c: 517:                 }
 +}
 +[e :U 158 ]
 +[e :U 157 ]
 +"519
 +[; ;main.c: 519:                 break;
 +[e $U 117  ]
 +"521
 +[; ;main.c: 521:             case 4:
 +[e :U 161 ]
 +"522
 +[; ;main.c: 522:                 Lcd_Set_Cursor(2, 16);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 16 `i `uc ]
 +"523
 +[; ;main.c: 523:                 Lcd_Write_Char('Y');
 +[e ( _Lcd_Write_Char (1 -> -> 89 `ui `uc ]
 +"524
 +[; ;main.c: 524:                 if (!RB5) {
 +[e $ ! ! _RB5 162  ]
 +{
 +"525
 +[; ;main.c: 525:                     _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"526
 +[; ;main.c: 526:                     if (year == 0) {
 +[e $ ! == _year -> -> 0 `i `ui 163  ]
 +{
 +"527
 +[; ;main.c: 527:                         year = 99;
 +[e = _year -> -> 99 `i `ui ]
 +"528
 +[; ;main.c: 528:                     } else {
 +}
 +[e $U 164  ]
 +[e :U 163 ]
 +{
 +"529
 +[; ;main.c: 529:                         year -= 1;
 +[e =- _year -> -> 1 `i `ui ]
 +"530
 +[; ;main.c: 530:                     }
 +}
 +[e :U 164 ]
 +"531
 +[; ;main.c: 531:                     Lcd_Set_Cursor(2, 14);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 14 `i `uc ]
 +"532
 +[; ;main.c: 532:                     display_Digit(year);
 +[e ( _display_Digit (1 _year ]
 +"534
 +[; ;main.c: 534:                 } else if (!RB4) {
 +}
 +[e $U 165  ]
 +[e :U 162 ]
 +[e $ ! ! _RB4 166  ]
 +{
 +"535
 +[; ;main.c: 535:                     _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"536
 +[; ;main.c: 536:                     if (year + 1 > 99) {
 +[e $ ! > + _year -> -> 1 `i `ui -> -> 99 `i `ui 167  ]
 +{
 +"537
 +[; ;main.c: 537:                         year = 0;
 +[e = _year -> -> 0 `i `ui ]
 +"538
 +[; ;main.c: 538:                     } else {
 +}
 +[e $U 168  ]
 +[e :U 167 ]
 +{
 +"539
 +[; ;main.c: 539:                         year += 1;
 +[e =+ _year -> -> 1 `i `ui ]
 +"540
 +[; ;main.c: 540:                     }
 +}
 +[e :U 168 ]
 +"542
 +[; ;main.c: 542:                     Lcd_Set_Cursor(2, 14);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 14 `i `uc ]
 +"543
 +[; ;main.c: 543:                     display_Digit(year);
 +[e ( _display_Digit (1 _year ]
 +"544
 +[; ;main.c: 544:                 }
 +}
 +[e :U 166 ]
 +[e :U 165 ]
 +"546
 +[; ;main.c: 546:                 break;
 +[e $U 117  ]
 +"550
 +[; ;main.c: 550:             default:
 +[e :U 169 ]
 +"551
 +[; ;main.c: 551:                 break;
 +[e $U 117  ]
 +"552
 +[; ;main.c: 552:         }
 +}
 +[e $U 117  ]
 +[e :U 118 ]
 +[e [\ _edit_datetime , $ -> -> 1 `i `ui 119
 + , $ -> -> 2 `i `ui 127
 + , $ -> -> 3 `i `ui 135
 + , $ -> -> 6 `i `ui 145
 + , $ -> -> 5 `i `ui 153
 + , $ -> -> 4 `i `ui 161
 + 169 ]
 +[e :U 117 ]
 +"554
 +[; ;main.c: 554:         if (!RB2) {
 +[e $ ! ! _RB2 170  ]
 +{
 +"555
 +[; ;main.c: 555:             _delay((unsigned long)((250)*(20000000/4000.0)));
 +[e ( __delay (1 -> * -> -> 250 `i `d / -> -> 20000000 `l `d .4000.0 `ul ]
 +"556
 +[; ;main.c: 556:             edit_datetime++;
 +[e ++ _edit_datetime -> -> 1 `i `ui ]
 +"557
 +[; ;main.c: 557:         }
 +}
 +[e :U 170 ]
 +"558
 +[; ;main.c: 558:     }
 +}
 +[e :U 114 ]
 +"365
 +[; ;main.c: 365:     while (edit_datetime > 0 && edit_datetime < 7) {
 +[e $ && > _edit_datetime -> -> 0 `i `ui < _edit_datetime -> -> 7 `i `ui 115  ]
 +[e :U 116 ]
 +"567
 +[; ;main.c: 567:     if (edit_datetime > 6) {
 +[e $ ! > _edit_datetime -> -> 6 `i `ui 171  ]
 +{
 +"568
 +[; ;main.c: 568:         Lcd_Set_Cursor(2, 16);
 +[e ( _Lcd_Set_Cursor (2 , -> -> 2 `i `uc -> -> 16 `i `uc ]
 +"569
 +[; ;main.c: 569:         Lcd_Write_String(" ");
 +[e ( _Lcd_Write_String (1 :s 5C ]
 +"570
 +[; ;main.c: 570:         edit_datetime = 0;
 +[e = _edit_datetime -> -> 0 `i `ui ]
 +"576
 +[; ;main.c: 576:         if(hour_org != hour || min_org != min || sec_org != sec
 +[e $ ! || || || || || != _hour_org _hour != _min_org _min != _sec_org _sec != _year_org _year != _month_org _month != _date_org _date 172  ]
 +"577
 +[; ;main.c: 577:                 || year_org != year || month_org != month || date_org != date) {
 +{
 +"578
 +[; ;main.c: 578:             updateRTC = 0;
 +[e = _updateRTC -> 0 `i ]
 +"579
 +[; ;main.c: 579:             Set_Time();
 +[e ( _Set_Time ..  ]
 +"580
 +[; ;main.c: 580:             Set_DayOfWeek(Get_DayOfWeek(year, month, date));
 +[e ( _Set_DayOfWeek (1 -> ( _Get_DayOfWeek (3 , , _year _month _date `i ]
 +"581
 +[; ;main.c: 581:             Set_Date();
 +[e ( _Set_Date ..  ]
 +"582
 +[; ;main.c: 582:         }
 +}
 +[e :U 172 ]
 +"583
 +[; ;main.c: 583:     }
 +}
 +[e :U 171 ]
 +"584
 +[; ;main.c: 584: }
 +[e :UE 113 ]
 +}
 +[v $root$_isr `(v ~T0 @X0 0 e ]
 +"592
 +[; ;main.c: 592: void __attribute__((picinterrupt(("")))) isr(void) {
 +[v _isr `(v ~T1 @X0 1 ef ]
 +{
 +[e :U _isr ]
 +[f ]
 +"593
 +[; ;main.c: 593:     if (INTF == 1) {
 +[e $ ! == -> _INTF `i -> 1 `i 174  ]
 +{
 +"594
 +[; ;main.c: 594:         update = 1;
 +[e = _update -> -> 1 `i `ui ]
 +"595
 +[; ;main.c: 595:         INTF = 0;
 +[e = _INTF -> -> 0 `i `b ]
 +"596
 +[; ;main.c: 596:     }
 +}
 +[e :U 174 ]
 +"597
 +[; ;main.c: 597: }
 +[e :UE 173 ]
 +}
 +[a 1C 68 101 115 107 32 67 108 111 99 107 0 ]
 +[a 3C 72 72 58 109 109 58 115 115 32 45 80 80 46 80 0 ]
 +[a 2C 86 49 0 ]
 +[a 4C 32 100 100 100 32 68 68 47 77 77 47 67 67 89 89 32 0 ]
 +[a 5C 32 0 ]
 diff --git a/build/default/production/main.p1.d b/build/default/production/main.p1.d index 36bbc29..a005de4 100755 --- a/build/default/production/main.p1.d +++ b/build/default/production/main.p1.d @@ -5,4 +5,5 @@ main.h  \  lcd.h  \
  i2c.h  \
  ds3231.h  \
 +adc.h  \
  beep.h 
 | 
