Vladimir N. Shilov преди 5 години
родител
ревизия
1f7f76e812
променени са 5 файла, в които са добавени 44 реда и са изтрити 31 реда
  1. 4 0
      ReadMe.txt
  2. 1 1
      inc/main.h
  3. 3 3
      src/ds3231.c
  4. 25 25
      src/event-system.c
  5. 11 2
      src/main.c

+ 4 - 0
ReadMe.txt

@@ -44,3 +44,7 @@ My Nixie Clock IN-12 / Мои часы на ГРИ ИН-12
 Вчера всё получилось.
 
 Начинаю внедрять настройку часов.
+---
+2019.06.01
+Всё отлично. Есть один-два несущественных момента.
+Первый релиз.

+ 1 - 1
inc/main.h

@@ -41,7 +41,7 @@
 #define BUTTON_PERIOD      10
 /* все временные константы кнопок кратны периоду опроса кнопок. */
 #define BTN_TIME_PRESSED   5
-#define BTN_TIME_HOLDED    25
+#define BTN_TIME_HOLDED    50
 #define BTN_TIME_REPEATED  10
 #define BTN_TIME_PAUSE     5
 

+ 3 - 3
src/ds3231.c

@@ -76,7 +76,7 @@ void RTC_ReadCalendar(rtc_t * data) {
 void RTC_WriteAll(rtc_t * data) {
   I2C_Start();
   I2C_WriteByte(DS3231_I2C_WRADDR);
-  I2C_WriteByte(DS3231_CONTROL_ADDR);
+  I2C_WriteByte(DS3231_TIME_CAL_ADDR);
   I2C_WriteByte(data->Sec);
   I2C_WriteByte(data->Min);
   I2C_WriteByte(data->Hr);
@@ -93,7 +93,7 @@ void RTC_WriteAll(rtc_t * data) {
 void RTC_WriteTime(rtc_t * data) {
   I2C_Start();
   I2C_WriteByte(DS3231_I2C_WRADDR);
-  I2C_WriteByte(DS3231_CONTROL_ADDR);
+  I2C_WriteByte(DS3231_TIME_CAL_ADDR);
   I2C_WriteByte(data->Sec);
   I2C_WriteByte(data->Min);
   I2C_WriteByte(data->Hr);
@@ -106,7 +106,7 @@ void RTC_WriteTime(rtc_t * data) {
 void RTC_WriteCalendar(rtc_t * data) {
   I2C_Start();
   I2C_WriteByte(DS3231_I2C_WRADDR);
-  I2C_WriteByte(DS3231_CONTROL_ADDR);
+  I2C_WriteByte(DS3231_CALENDAR_ADDR);
   I2C_WriteByte(data->WD);
   I2C_WriteByte(data->Day);
   I2C_WriteByte(data->Mon);

+ 25 - 25
src/event-system.c

@@ -64,32 +64,32 @@ const table_state_t stateTable[] PROGMEM = {
   {stSetHH, evBTN1Holded, stShowTime, setTimeEnd, showTime},
   {stSetMM, evBTN1Holded, stShowTime, setTimeEnd, showTime},
 
-  {stSetHH, evBTN2Pressed, stNoChange, setHHInc, setTimeShow},
-  {stSetHH, evBTN2Holded,  stNoChange, setHHInc, setTimeShow},
-  {stSetHH, evBTN3Pressed, stNoChange, setHHDec, setTimeShow},
-  {stSetHH, evBTN3Holded,  stNoChange, setHHDec, setTimeShow},
-
-  {stSetMM, evBTN2Pressed, stNoChange, setMMInc, setTimeShow},
-  {stSetMM, evBTN2Holded,  stNoChange, setMMInc, setTimeShow},
-  {stSetMM, evBTN3Pressed, stNoChange, setMMDec, setTimeShow},
-  {stSetMM, evBTN3Holded,  stNoChange, setMMDec, setTimeShow},
+  {stSetHH, evBTN3Pressed, stNoChange, setHHInc, setTimeShow},
+  {stSetHH, evBTN3Holded,  stNoChange, setHHInc, setTimeShow},
+  {stSetHH, evBTN2Pressed, stNoChange, setHHDec, setTimeShow},
+  {stSetHH, evBTN2Holded,  stNoChange, setHHDec, setTimeShow},
+
+  {stSetMM, evBTN3Pressed, stNoChange, setMMInc, setTimeShow},
+  {stSetMM, evBTN3Holded,  stNoChange, setMMInc, setTimeShow},
+  {stSetMM, evBTN2Pressed, stNoChange, setMMDec, setTimeShow},
+  {stSetMM, evBTN2Holded,  stNoChange, setMMDec, setTimeShow},
   /* edit calendar */
-  {stShowWDay, evBTN2Pressed, stNoChange, incWDay,  showWDay},
-  {stShowWDay, evBTN2Holded,  stNoChange, incWDay,  showWDay},
-  {stShowMDay, evBTN2Pressed, stNoChange, incMDay,  showMDay},
-  {stShowMDay, evBTN2Holded,  stNoChange, incMDay,  showMDay},
-  {stShowMon,  evBTN2Pressed, stNoChange, incMonth, showMonth},
-  {stShowMon,  evBTN2Holded,  stNoChange, incMonth, showMonth},
-  {stShowYear, evBTN2Pressed, stNoChange, incYear,  showYear},
-  {stShowYear, evBTN2Holded,  stNoChange, incYear,  showYear},
-  {stShowWDay, evBTN3Pressed, stNoChange, decWDay,  showWDay},
-  {stShowWDay, evBTN3Holded,  stNoChange, decWDay,  showWDay},
-  {stShowMDay, evBTN3Pressed, stNoChange, decMDay,  showMDay},
-  {stShowMDay, evBTN3Holded,  stNoChange, decMDay,  showMDay},
-  {stShowMon,  evBTN3Pressed, stNoChange, decMonth, showMonth},
-  {stShowMon,  evBTN3Holded,  stNoChange, decMonth, showMonth},
-  {stShowYear, evBTN3Pressed, stNoChange, decYear,  showYear},
-  {stShowYear, evBTN3Holded,  stNoChange, decYear,  showYear},
+  {stShowWDay, evBTN3Pressed, stNoChange, incWDay,  showWDay},
+  {stShowWDay, evBTN3Holded,  stNoChange, incWDay,  showWDay},
+  {stShowMDay, evBTN3Pressed, stNoChange, incMDay,  showMDay},
+  {stShowMDay, evBTN3Holded,  stNoChange, incMDay,  showMDay},
+  {stShowMon,  evBTN3Pressed, stNoChange, incMonth, showMonth},
+  {stShowMon,  evBTN3Holded,  stNoChange, incMonth, showMonth},
+  {stShowYear, evBTN3Pressed, stNoChange, incYear,  showYear},
+  {stShowYear, evBTN3Holded,  stNoChange, incYear,  showYear},
+  {stShowWDay, evBTN2Pressed, stNoChange, decWDay,  showWDay},
+  {stShowWDay, evBTN2Holded,  stNoChange, decWDay,  showWDay},
+  {stShowMDay, evBTN2Pressed, stNoChange, decMDay,  showMDay},
+  {stShowMDay, evBTN2Holded,  stNoChange, decMDay,  showMDay},
+  {stShowMon,  evBTN2Pressed, stNoChange, decMonth, showMonth},
+  {stShowMon,  evBTN2Holded,  stNoChange, decMonth, showMonth},
+  {stShowYear, evBTN2Pressed, stNoChange, decYear,  showYear},
+  {stShowYear, evBTN2Holded,  stNoChange, decYear,  showYear},
   /* обязательная пустая строка таблицы */
   {stNoChange, eventNull, stNoChange, EmptyFunc, EmptyFunc}
 };

+ 11 - 2
src/main.c

@@ -197,7 +197,11 @@ void showTime(void) {
   dotOn();
   RTOS_SetTask(dotOff, 500, 0);
 
-  Digit[0] = RTC.Hr >> 4;
+  if (RTC.Hr > 0x09) {
+    Digit[0] = RTC.Hr >> 4;
+  } else {
+    Digit[0] = DIGIT_BLANK;
+  }
   Digit[1] = RTC.Hr & 0x0F;
   Digit[2] = RTC.Min >> 4;
   Digit[3] = RTC.Min & 0x0F;
@@ -328,6 +332,7 @@ void setTimeShow(void) {
 
 void setTimeBegin(void) {
   RTC_ReadTime(&setRTC);
+  RTOS_SetTask(btnProcess, 500, 10);
 }
 
 void setHHBegin(void) {
@@ -367,13 +372,17 @@ void setMMDec(void) {
 void setTimeEnd(void) {
   setRTC.Sec = 0;
   RTC_WriteTime(&setRTC);
-  RTC_ReadTime(&RTC);
+
+  RTOS_SetTask(btnProcess, 2000, 10);
+
   RTOS_DeleteTask(blink);
   Flag.blink0 = 0;
   Flag.blink1 = 0;
   Flag.blink2 = 0;
   Flag.blink3 = 0;
   Flag.blinkC = 0;
+
+  RTC_ReadTime(&RTC);
 }