00001
00025
00026 #include "Main.h"
00027 #include "Buttons.h"
00028 #include "Lcd_functions.h"
00029
00030
00031 __flash unsigned char *SRAM_values[6][3] = {{&HOUR , &MINUTE , &SECOND },
00032 {&DAY , &MONTH , &YEAR_LO },
00033 {&SET_POINT , &SET_POINT , &SET_POINT },
00034 {0 , 0 , 0 },
00035 {0 , 0 , 0 },
00036 {&CONTRAST , &CONTRAST , &CONTRAST }};
00037
00038
00039 unsigned char LCD_Menu1 = 0;
00040 unsigned char LCD_Menu2 = 0;
00041 unsigned char LCD_Menu3 = 0;
00042
00043 unsigned char Buttons = 0;
00044
00045
00049 void CheckButtons(void)
00050 {
00051 unsigned char Temp_buttons;
00052
00053 Temp_buttons = ~PINE;
00054 Temp_buttons &= 0xE0;
00055
00056
00057 if(Temp_buttons && (Temp_buttons != Buttons))
00058 {
00059 Buttons = Temp_buttons;
00060
00061 if(Buttons == Button1)
00062 {
00063 if(LCD_Menu2)
00064 {
00065 if(LCD_Menu3)
00066 Execute(1);
00067 else
00068 {
00069 LCD_Menu2++;
00070
00071 if(LCD_Menu2 > 3)
00072 LCD_Menu2 = 1;
00073 }
00074 }
00075 else
00076 {
00077 LCD_Menu1++;
00078
00079 if(LCD_Menu1 > 6)
00080 LCD_Menu1 = 1;
00081 }
00082 }
00083 else if(Buttons == Button2)
00084 {
00085 if(LCD_Menu1)
00086 {
00087 if(LCD_Menu2)
00088 {
00089 if(LCD_Menu3)
00090 Execute(0);
00091 else
00092 LCD_Menu3 = 1;
00093 }
00094 else
00095 LCD_Menu2 = 1;
00096 }
00097 }
00098 else if(Buttons == Button3)
00099 {
00100 if(LCD_Menu1)
00101 {
00102 if(LCD_Menu2)
00103 {
00104 if(LCD_Menu3)
00105 LCD_Menu3 = 0;
00106 else
00107 LCD_Menu2 = 0;
00108 }
00109 else
00110 LCD_Menu1 = 0;
00111 }
00112 }
00113
00114 LCDsetupData();
00115 }
00116 else
00117 Buttons = Temp_buttons;
00118 }
00119
00120
00121
00125 void Execute(unsigned char Adjust)
00126 {
00127 if(SRAM_values[LCD_Menu1-1][LCD_Menu2-1])
00128 {
00129 if(Adjust)
00130 *SRAM_values[LCD_Menu1-1][LCD_Menu2-1] += 1;
00131 else
00132 *SRAM_values[LCD_Menu1-1][LCD_Menu2-1] -= 1;
00133 }
00134 }