|
@@ -26,7 +26,7 @@ const static max7219_reg_t digitPosition[8] = {
|
|
|
RegDigit0, RegDigit1, RegDigit2, RegDigit3,
|
|
|
RegDigit4, RegDigit5, RegDigit6, RegDigit7
|
|
|
};
|
|
|
-const static uint8_t digitValue[16] = {
|
|
|
+const static max7219_sym_t digitValue[16] = {
|
|
|
Sym_0, Sym_1, Sym_2, Sym_3, Sym_4, Sym_5, Sym_6, Sym_7,
|
|
|
Sym_8, Sym_9, Sym_A, Sym_b, Sym_c, Sym_d, Sym_E, Sym_F
|
|
|
};
|
|
@@ -41,14 +41,24 @@ void main(void)
|
|
|
boardInit();
|
|
|
|
|
|
MAX7219_Config();
|
|
|
- uint8_t i;
|
|
|
- for (i=1; i<9; i++) {
|
|
|
- MAX7219_WriteData(digitPosition[i], digitValue[i]);
|
|
|
- }
|
|
|
+
|
|
|
+ MAX7219_WriteData(digitPosition[0], Sym_BLANK);
|
|
|
+ MAX7219_WriteData(digitPosition[1], Sym_BLANK);
|
|
|
+ MAX7219_WriteData(digitPosition[2], Sym_BLANK);
|
|
|
+ MAX7219_WriteData(digitPosition[3], Sym_BLANK);
|
|
|
+ MAX7219_WriteData(digitPosition[4], Sym_BLANK);
|
|
|
+ MAX7219_WriteData(digitPosition[5], Sym_BLANK);
|
|
|
+ MAX7219_WriteData(digitPosition[6], Sym_BLANK);
|
|
|
+ MAX7219_WriteData(digitPosition[7], Sym_BLANK);
|
|
|
|
|
|
/* Infinite loop */
|
|
|
while (1)
|
|
|
{
|
|
|
+ if (CLK_GetSYSCLKSource() == CLK_SOURCE_HSE) {
|
|
|
+ MAX7219_WriteData(digitPosition[3], Sym_E);
|
|
|
+ } else {
|
|
|
+ MAX7219_WriteData(digitPosition[3], Sym_i);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -64,25 +74,41 @@ static void boardInit(void) {
|
|
|
|
|
|
ErrorStatus status = ERROR;
|
|
|
|
|
|
- CLK_DeInit();
|
|
|
-
|
|
|
- /* Configure the Fcpu to DIV1*/
|
|
|
- CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
|
|
|
-
|
|
|
- /* Configure the HSI prescaler to the optimal value */
|
|
|
- CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);
|
|
|
+ /* Initialization of the clock to 16MHz */
|
|
|
+ CLK->CKDIVR = 0x00;
|
|
|
|
|
|
- /* Output Fcpu on CLK_CCO pin */
|
|
|
- CLK_CCOConfig(CLK_OUTPUT_CPU);
|
|
|
+ /* Disable clock of unused peripherial */
|
|
|
+ CLK->PCKENR1 = (uint8_t)(~CLK_PCKENR1_UART1);
|
|
|
+ CLK->PCKENR2 = (uint8_t)(~(CLK_PCKENR2_CAN | CLK_PCKENR2_ADC | CLK_PCKENR2_AWU));
|
|
|
|
|
|
/* Configure the system clock to use HSE clock source and to run at Crystal Mhz */
|
|
|
status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSE, DISABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
|
|
|
-
|
|
|
if (status == ERROR) {
|
|
|
/* Configure the system clock to use HSI clock source and to run at 16Mhz */
|
|
|
- status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSI, DISABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
|
|
|
// set FLAG for
|
|
|
}
|
|
|
+
|
|
|
+ /* Init GPIO */
|
|
|
+ /* Set the MOSI,MISO and SCK at high level */
|
|
|
+ SPI_PORT->ODR |= SPI_MOSI;
|
|
|
+ SPI_PORT->DDR |= SPI_PINS;
|
|
|
+ SPI_PORT->CR1 |= SPI_PINS;
|
|
|
+ SPI_PORT->CR2 |= SPI_PINS;
|
|
|
+
|
|
|
+ /* Configure LOAD pin to Push-Pull, High, Fast*/
|
|
|
+ SPI_LOAD_PORT->ODR |= SPI_LOAD;
|
|
|
+ SPI_LOAD_PORT->DDR |= SPI_LOAD;
|
|
|
+ SPI_LOAD_PORT->CR1 |= SPI_LOAD;
|
|
|
+ SPI_LOAD_PORT->CR2 |= SPI_LOAD;
|
|
|
+
|
|
|
+ /* Init SPI */
|
|
|
+ /* SPI_MODE_MASTER, SPI_FIRSTBIT_MSB, SPI_BAUDRATEPRESCALER_2, SPI_CLOCKPOLARITY_LOW, SPI_CLOCKPHASE_1EDGE */
|
|
|
+ SPI->CR1 = 0x04;
|
|
|
+ /* SPI_DATADIRECTION_1LINE_TX, SPI_NSS_SOFT */
|
|
|
+ SPI->CR2 = 0xC0 | 0x02 | 0x01;
|
|
|
+ /* SPI Enable */
|
|
|
+ SPI->CR1 |= SPI_CR1_SPE;
|
|
|
+
|
|
|
}
|
|
|
|
|
|
#ifdef USE_FULL_ASSERT
|