فهرست منبع

Merge branch 'in4x6-dev' of git.shilov.pp.ua:Heaven/SimpleNixieClock into in4x6-dev

Vladimir N. Shilov 4 سال پیش
والد
کامیت
f02c677eb4
11فایلهای تغییر یافته به همراه17 افزوده شده و 5 حذف شده
  1. 3 3
      Makefile
  2. BIN
      hw/cpu-bu-w104.dip
  3. BIN
      hw/cpu-bu-w95.dip
  4. BIN
      hw/cpu-bu.dch
  5. BIN
      hw/disp-bu-in4x6.dch
  6. BIN
      hw/disp-bu-in4x6.dip
  7. BIN
      hw/disp-in4x6.dch
  8. BIN
      hw/disp-in4x6.dip
  9. 1 0
      inc/ds3231.h
  10. 11 0
      src/ds3231.c
  11. 2 2
      src/main.c

+ 3 - 3
Makefile

@@ -117,7 +117,7 @@ ASRC =
 # Optimization level, can be [0, 1, 2, 3, s].
 #     0 = turn off optimization. s = optimize for size.
 #     (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
-OPT = s
+OPT = 2
 
 
 # Debugging format.
@@ -139,7 +139,7 @@ EXTRAINCDIRS = inc
 #     gnu89 = c89 plus GCC extensions
 #     c99   = ISO C99 standard (not yet fully implemented)
 #     gnu99 = c99 plus GCC extensions
-CSTANDARD = -std=gnu99
+CSTANDARD = -std=gnu11
 
 
 # Place -D or -U options here for C sources
@@ -555,7 +555,7 @@ extcoff: $(BINDIR)/$(TARGET).elf
 %.eep: %.elf
 #	@echo
 	@echo $(MSG_EEPROM) $@
-	@-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
+	@-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom='alloc,load' \
 	--change-section-lma .eeprom=0 --no-change-warnings -O $(FORMAT) $< $@ || exit 0
 
 # Create extended listing file from ELF output file.

BIN
hw/cpu-bu-w104.dip


BIN
hw/cpu-bu-w95.dip


BIN
hw/cpu-bu.dch


BIN
hw/disp-bu-in4x6.dch


BIN
hw/disp-bu-in4x6.dip


BIN
hw/disp-in4x6.dch


BIN
hw/disp-in4x6.dip


+ 1 - 0
inc/ds3231.h

@@ -89,6 +89,7 @@ void RTC_ReadCalendar(rtc_t * data);
 
 void RTC_WriteAll(rtc_t * data);
 void RTC_WriteTime(rtc_t * data);
+void RTC_WriteHH(rtc_t * data);
 void RTC_WriteHHMM(rtc_t * data);
 void RTC_WriteCalendar(rtc_t * data);
 

+ 11 - 0
src/ds3231.c

@@ -98,6 +98,17 @@ void RTC_WriteTime(rtc_t * data) {
   I2C_Stop();
 }
 
+/**
+ * @brief Запись часов
+ */
+void RTC_WriteHH(rtc_t * data) {
+  I2C_Start();
+  I2C_WriteByte(DS3231_I2C_WRADDR);
+  I2C_WriteByte(DS3231_TIME_CAL_ADDR + 2);
+  I2C_WriteByte(data->Hr);
+  I2C_Stop();
+}
+
 /**
  * @brief Запись часов и минут
  */

+ 2 - 2
src/main.c

@@ -288,7 +288,7 @@ static void setSummerWinterTime(void) {
   if ((RTC.Mon == 3) && (RTC.WD == 7) && (RTC.Hr == 3) && (sunTime != 0)) {
     if ((RTC.Day + 7) > 31) {
       RTC.Hr = 4;
-      RTC_WriteHHMM(&RTC);
+      RTC_WriteHH(&RTC);
       sunTime = 0;
       eeprom_update_byte(&EEP_SummerTime, sunTime);
     }
@@ -298,7 +298,7 @@ static void setSummerWinterTime(void) {
   if ((RTC.Mon == 10) && (RTC.WD == 7) && (RTC.Hr == 4) && (sunTime == 0)) {
     if ((RTC.Day + 7) > 31) {
       RTC.Hr = 3;
-      RTC_WriteHHMM(&RTC);
+      RTC_WriteHH(&RTC);
       sunTime = 1;
       eeprom_update_byte(&EEP_SummerTime, sunTime);
     }