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
|