/* MAX7219 Header file * --------------------------- * For more information see * http://www.adnbr.co.uk/articles/max7219-and-7-segment-displays * ---------------------------------------------------------------------------- * "THE BEER-WARE LICENSE" (Revision 42): * wrote this file. As long as you retain this notice you * can do whatever you want with this stuff. If we meet some day, and you think * this stuff is worth it, you can buy me a beer in return. Shilov V.N. * ---------------------------------------------------------------------------- */ /* Define to prevent recursive inclusion -------------------------------------*/ #pragma once #ifndef __MAX7219_H #define __MAX7219_H /* Includes ------------------------------------------------------------------*/ #include "stm8l15x.h" /* Exported defines ----------------------------------------------------------*/ // соответсвие бит сегментам #define SEG_A 1 #define SEG_B 3 #define SEG_C 2 #define SEG_D 5 #define SEG_E 6 #define SEG_F 0 #define SEG_G 7 #define SEG_DP 4 // symbols // Для BCD #define MAX7219_CHAR_BLANK 0x0F #define MAX7219_CHAR_FULL 0x88 // без кодирования #define SYM_0 0x6F #define SYM_1 0x0C #define SYM_2 0xEA #define SYM_3 0xAE #define SYM_4 0x8D #define SYM_5 0xA7 #define SYM_6 0xE7 #define SYM_7 0x0E #define SYM_8 0xEF #define SYM_9 0xAF #define SYM_A 0xCF #define SYM_b 0xE5 #define SYM_c 0xE0 #define SYM_C 0x63 #define SYM_d 0xEC #define SYM_E 0xE3 #define SYM_F 0xC3 #define SYM_P 0xCB #define SYM_Gradus 0x8B #define SYM_LGradus 0xE4 #define SYM_Temp 0xE1 #define SYM_Minus 0x80 #define SYM_Plus 0xD1 #define SYM_BLANK 0x00 #define SYM_FULL 0xFF #define SYM_DOT 0x10 #define MAX7219_ON 0x01 #define MAX7219_OFF 0x00 #define MAX7219_BRIGHT 0x08 // used LED digits - 1 #define MAX7219_DIGITS 7 /* Exported types ------------------------------------------------------------*/ typedef enum { NoOp = 0x00, Digit0 = 0x03, Digit1 = 0x08, Digit2 = 0x02, Digit3 = 0x01, Digit4 = 0x07, Digit5 = 0x04, Digit6 = 0x06, Digit7 = 0x05, DecodeMode = 0x09, Intensity = 0x0A, ScanLimit = 0x0B, Power = 0x0C, Test = 0x0F } max7219_reg_t; typedef enum { SegA = SEG_A, SegB = SEG_B, SegC = SEG_C, SegD = SEG_D, SegE = SEG_E, SegF = SEG_F, SegG = SEG_G, SegDP = SEG_DP, } max7219_seg_t; typedef enum { Sym_0 = SYM_0, Sym_1 = SYM_1, Sym_2 = SYM_2, Sym_3 = SYM_3, Sym_4 = SYM_4, Sym_5 = SYM_5, Sym_6 = SYM_6, Sym_7 = SYM_7, Sym_8 = SYM_8, Sym_9 = SYM_9, Sym_A = SYM_A, Sym_b = SYM_b, Sym_c = SYM_c, Sym_C = SYM_C, Sym_d = SYM_d, Sym_E = SYM_E, Sym_F = SYM_F, Sym_P = SYM_P, Sym_Gradus = SYM_Gradus, Sym_LGradus = SYM_LGradus, Sym_Temp = SYM_Temp, Sym_Minus = SYM_Minus, Sym_Plus = SYM_P, Sym_BLANK = SYM_BLANK, Sym_FULL = SYM_FULL, Sym_Dot = SYM_DOT } max7219_sym_t; /* Exported constants --------------------------------------------------------*/ /* Exported macro ------------------------------------------------------------*/ /* Exported variables --------------------------------------------------------*/ /* Exported functions --------------------------------------------------------*/ void MAX7219_Init(void); void MAX7219_WriteData(max7219_reg_t reg, uint8_t data); #endif /* __MAX7219_H */