AVR_MCU(F_CPU, "atmega168");
#define N_DIGIT 14
-#define N_ALPHA 3
+#define N_ALPHA 2
#define N_BYTES (N_DIGIT + N_ALPHA * 3)
#define DIGIT_SEG_DP 0b10000000
#define ALPHA_SEG_DP 0b10000000000000000L
(31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31) % 7, // Nov
(31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30) % 7, // Dec
};
-uint8_t decimal[D_MAX] = {0, 0, 0, 0, 0, 0};
+uint8_t decimal[D_MAX] = {31, 48, 2, 24, 2, 22}; //{0, 0, 0, 0, 0, 0};
uint8_t decimalChanged = 0;
uint8_t keyState;// = 0x7;
uint8_t weekDay(uint8_t day, uint8_t month, uint8_t year) {
uint8_t y0 = year & 3;
- year >>= 3;
+ year >>= 2;
uint8_t y1 = year % 25;
year /= 25;
return (
#include "hc595.h"
#define N_DIGIT 14
-#define N_ALPHA 3
+#define N_ALPHA 2
#define N_BYTES (N_DIGIT + N_ALPHA * 3)
#define ORIGIN_X 50.f
#define ORIGIN_Y 50.f
#define LINE_HEIGHT 525.f
#define COLON_X (ORIGIN_X + 2.f * DIGIT_WIDTH)
#define COLON_Y (ORIGIN_Y + .6f * LINE_HEIGHT)
-//#define WINDOW_X (ORIGIN_X + 5.f * DIGIT_WIDTH + 1.5f * COLON_WIDTH)
-#define WINDOW_X (ORIGIN_X + 5.5f * DIGIT_WIDTH + .5f * COLON_WIDTH)
+#define WINDOW_X (ORIGIN_X + 5.f * DIGIT_WIDTH + 1.5f * COLON_WIDTH)
+//#define WINDOW_X (ORIGIN_X + 5.5f * DIGIT_WIDTH + .5f * COLON_WIDTH)
#define WINDOW_Y (ORIGIN_Y + 1.5f * LINE_HEIGHT)
#define DIGIT_SEG_DP 0x80
{ORIGIN_X + 4.f * DIGIT_WIDTH + 1.5f * COLON_WIDTH, ORIGIN_Y + .6f * LINE_HEIGHT, .5f},
{ORIGIN_X + 4.5f * DIGIT_WIDTH + 1.5f * COLON_WIDTH, ORIGIN_Y + .6f * LINE_HEIGHT, .5f},
// second row
+#if 1
+ {WINDOW_X - 4.f * DIGIT_WIDTH, ORIGIN_Y, .5f},
+ {WINDOW_X - 3.5f * DIGIT_WIDTH, ORIGIN_Y, .5f},
+ {WINDOW_X - 3.f * DIGIT_WIDTH, ORIGIN_Y, .5f},
+ {WINDOW_X - 2.5f * DIGIT_WIDTH, ORIGIN_Y, .5f},
+ {WINDOW_X - 2.f * DIGIT_WIDTH, ORIGIN_Y, .5f},
+ {WINDOW_X - 1.5f * DIGIT_WIDTH, ORIGIN_Y, .5f},
+ {WINDOW_X - DIGIT_WIDTH, ORIGIN_Y, .5f},
+ {WINDOW_X - .5f * DIGIT_WIDTH, ORIGIN_Y, .5f},
+#else
{ORIGIN_X + 1.5f * DIGIT_WIDTH + .5f * COLON_WIDTH, ORIGIN_Y, .5f},
{ORIGIN_X + 2.f * DIGIT_WIDTH + .5f * COLON_WIDTH, ORIGIN_Y, .5f},
{ORIGIN_X + 2.5f * DIGIT_WIDTH + .5f * COLON_WIDTH, ORIGIN_Y, .5f},
{ORIGIN_X + 4.f * DIGIT_WIDTH + .5f * COLON_WIDTH, ORIGIN_Y, .5f},
{ORIGIN_X + 4.5f * DIGIT_WIDTH + .5f * COLON_WIDTH, ORIGIN_Y, .5f},
{ORIGIN_X + 5.f * DIGIT_WIDTH + .5f * COLON_WIDTH, ORIGIN_Y, .5f},
+#endif
};
const float alpha_pos[N_ALPHA][3] = {
// second row
{ORIGIN_X, ORIGIN_Y, .5f},
{ORIGIN_X + .5f * DIGIT_WIDTH, ORIGIN_Y, .5f},
- {ORIGIN_X + 1.f * DIGIT_WIDTH, ORIGIN_Y, .5f},
+ //{ORIGIN_X + 1.f * DIGIT_WIDTH, ORIGIN_Y, .5f},
};
int display_flag = 0;
for (int di = 0; di < N_ALPHA; di++) {
bits =
(uint32_t)display_data[N_DIGIT + di * 3] |
- ((uint32_t)display_data[N_DIGIT + di * 3 + 1] << 8) +
+ ((uint32_t)display_data[N_DIGIT + di * 3 + 1] << 8) |
((uint32_t)display_data[N_DIGIT + di * 3 + 2] << 16);
float x = alpha_pos[di][0];