From 442b88a5b418a7cb7bec780800f9635e0c731cba Mon Sep 17 00:00:00 2001 From: William Harrington Date: Wed, 21 Aug 2019 03:07:37 -0500 Subject: Okay then --- build/default/production/ds3231.i | 244 ++++- build/default/production/ds3231.p1 | 898 ++++++++++------ build/default/production/ds3231.p1.d | 5 +- build/default/production/i2c.i | 65 +- build/default/production/i2c.p1 | 165 ++- build/default/production/lcd.i | 49 +- build/default/production/lcd.p1 | 381 +++---- build/default/production/main.i | 737 ++++++++----- build/default/production/main.p1 | 1960 +++++++++++++++++++++++----------- build/default/production/main.p1.d | 1 + 10 files changed, 2880 insertions(+), 1625 deletions(-) (limited to 'build') 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 "" 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 "" 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 "" 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 -- cgit v1.2.3-54-g00ecf