#include "main.h" #include "delay.h" #include "deviceSetup.h" #include "usart.h" #include "ascii.h" #include "timer.h" #include "spi.h" void max7219_test_display(spi_ch_t* spi_ch) { // set mode to display test /* pinWrite(spi_ch->pin, 0); spiTrx(spi_ch->spi, 0x0F); spiTrx(spi_ch->spi, 0x01); pinWrite(spi_ch->pin,1); */ spiWriteReg(spi_ch,0x0F,0x01); // spiWrite16bit(spi_ch, 0x0F01); //delayMs(50); // spiWrite16bit(spi_ch, 0x0F01); delayMs(200); /* pinWrite(spi_ch->pin, 0); spiTrx(spi_ch->spi, 0x0F); spiTrx(spi_ch->spi, 0x00); pinWrite(spi_ch->pin,1); */ // set mode to shutdown spiWrite16bit(spi_ch, 0x0F00); delayMs(200); /* pinWrite(spi_ch->pin, 0); spiTrx(spi_ch->spi, 0x0C); spiTrx(spi_ch->spi, 0x00); pinWrite(spi_ch->pin,1); // set mode to shutdown // spiWrite16bit(spi_ch, 0x0C00); delayMs(1000);*/ } void max7219_setIntensity(spi_ch_t* spi_ch, uint8_t intensity) { spiWrite16bit(spi_ch, 0x0A00 | intensity); } int main(int argc, char *argv[]) { uint8_t i = 0; spi_ch_t spi_test_channel; // making array with all available timers delayInitMs(8000000, 1000); // Clock Freq and Divider for ARM library pinConfig(pinB3, output, pushPull, output, def_speed); pinConfig(pinA0, input, def_stage, pullDown, def_speed); setupInit(); // This is the sescond call of System init the assebly start code is calling it before the main. usartInit( usart2, pinA2, pinA15, 115200, eight, NO_PARITY_CTRL, noFlowControl); //clears screen and send the wellcome messgae print_Usart(usart2, ASCII_clear); print_Usart(usart2, "HEllooo to our KED project\n\r"); for(i = 0 ; i < 5 ; i++) { delayMs(100); pinToggle(pinB3); delayMs(100); } pinWrite(pinB3,0); pinInit(pinA5); pinInit(pinA6); pinInit(pinA7); pinInit(pinA4); pinConfig(pinA5, alternate, pushPull, output, veryFast); pinConfig(pinA6, alternate, floating, input , veryFast); pinConfig(pinA7, alternate, pushPull, output, veryFast); //pinConfig(pinA6, alternate, floating, pullDown, veryFast); pinConfig(pinA4, output, pushPull, output, veryFast); pinSetAlternate(pinA5, 0); // SPI1_SCK pinSetAlternate(pinA6, 0); // SPI1_MISO pinSetAlternate(pinA7, 0); // SPI1_MOSI spiInitMaster(SPI_CH_1, SPI_NONINVERTED, SPI_CAPTURE_ON_FIRST_CLK_TRANSITION, SPI_MSB_FIRST, SPI_DOUPLEX, 7); spiSetupCH(&spi_test_channel, SPI_CH_1, pinA4); spiEnable(SPI_CH_1); /* * MAX7219 hoockup for this example * * Signal pin nucleo * -------------------------- * MOSI pinA7 A6 * MISO pinA6 A5 * CLK pinA5 A4 * CS pinA4 A3 */ for(i = 0 ; i < 10 ; i++) { delayMs(50); pinToggle(pinB3); delayMs(50); } while(1){ pinToggle(pinB3); max7219_test_display(&spi_test_channel); } for(i = 0 ; i < 100 ; i++) { pinWrite(pinB3, 1); //pinWrite(pinA4,1); delayMs(100); pinWrite(pinB3, 0); //pinWrite(pinA4,0); delayMs(900); } //timer_capture_compare_test(timer_2); //print_Usart(usart2, "All is working fine \r\n"); while(1) { } return 1; }