diff --git a/env/csl/stm32f042/config.cmake b/env/csl/stm32f042/config.cmake index 45ac57b..2341869 100644 --- a/env/csl/stm32f042/config.cmake +++ b/env/csl/stm32f042/config.cmake @@ -4,10 +4,6 @@ set(CPU_MCU "-mcpu=cortex-m0") -#set(IDIR_BIN "${CMAKE_SOURCE_DIR}/bsl/nucleo_f042k6/bin") -#set(IDIR_LIB "${CMAKE_SOURCE_DIR}/bsl/nucleo_f042k6/lib") -#set(IDIR_INC "${CMAKE_SOURCE_DIR}/bsl/nucleo_f042k6/inc") - #################################################################################################### #PROJECT & LIBRARIES : defined by user and important that it comes after the VARIABLES otherwise the Set varibale will not be used. #################################################################################################### @@ -75,5 +71,6 @@ list(APPEND EXTRA_LIBS sub::delay) list(APPEND EXTRA_LIBS sub::usart) list(APPEND EXTRA_LIBS sub::timer) list(APPEND EXTRA_LIBS sub::init) +list(APPEND EXTRA_LIBS sub::max7219) list(APPEND EXTRA_LIBS sub::spi) -list(APPEND EXTRA_LIBS sub::pin) +list(APPEND EXTRA_LIBS sub::pin) diff --git a/env/drivers/CMakeLists.txt b/env/drivers/CMakeLists.txt index 5d23225..1fd19a1 100644 --- a/env/drivers/CMakeLists.txt +++ b/env/drivers/CMakeLists.txt @@ -1 +1 @@ -# add_subdirectory(${CSL_USED}) +add_subdirectory(max7219) diff --git a/env/drivers/max7219/CMakeLists.txt b/env/drivers/max7219/CMakeLists.txt new file mode 100644 index 0000000..280709b --- /dev/null +++ b/env/drivers/max7219/CMakeLists.txt @@ -0,0 +1,5 @@ +add_library(MAX7219 max7219.c) +target_compile_options(MAX7219 PRIVATE ${C_FLAGS}) +target_compile_definitions(MAX7219 PRIVATE ${C_DEFS}) +target_include_directories(MAX7219 PUBLIC . ${PERIFERALS_DIR} ${CSL_INCLUDES}) +add_library(sub::max7219 ALIAS MAX7219) diff --git a/env/drivers/max7219/max7219.c b/env/drivers/max7219/max7219.c new file mode 100644 index 0000000..2794331 --- /dev/null +++ b/env/drivers/max7219/max7219.c @@ -0,0 +1,124 @@ +#include "max7219.h" + +void max7219_init( + max7219_t *display, + spi_ch_t *spi_ch) +{ + display->spiCH = spi_ch; +} + +void max7219_testDisplay( + max7219_t *display, + uint8_t logic) +{ + spiWriteReg(display->spiCH,0x0F, (logic) ? 0x01 : 0x00); +} + +void max7219_shutdownDiaply( + max7219_t *display, + uint8_t logic) +{ + spiWriteReg(display->spiCH,0x0C, (logic) ? 0x00 : 0x01); +} + +void max7219_setDecodeMode( + max7219_t *display, + max7219_decodeMode_t dmode) +{ + spiWriteReg(display->spiCH,0x09,(uint8_t) dmode); +} + +void max7219_setIntensity( + max7219_t *display, + uint8_t intensity) +{ + spiWriteReg(display->spiCH, 0x0A, intensity & 0x0F); +} + +void max7219_setScanLimit( + max7219_t *display, + max7219_scanLimit_t slimit) +{ + spiWriteReg(display->spiCH, 0x0B, ((uint8_t) slimit) & 0x0F); +} + +void max7219_setAllLEDsOff( + max7219_t *display) +{ + uint8_t i; + for(i = 0; i < 9; i++) { + spiWriteReg(display->spiCH, i, 0x00); + } +} + +void max7219_ledMatrixSetLED( + max7219_t *display, + uint8_t row, + uint8_t col) +{ + + uint8_t val = 0xAE; + + row = (row & 0x07) + 1; + col = 1 << (col & 0x07); + + spiWriteReg(display->spiCH, row,col); +} + +void max7219_rawWrite( + max7219_t *display, + uint8_t reg, + uint8_t data) +{ + spiWriteReg(display->spiCH, reg, data); +} + +void max7219_printLedMatrix( + max7219_t *display, + uint8_t matrix[]) +{ + uint8_t i = 0; + + for(i = 0; i < 8; i ++) { + spiWriteReg(display->spiCH, i+1, matrix[i]); + } +} + +void max7219_ledMatrixUnsetLED( + max7219_t *display, + uint8_t row, + uint8_t col) +{ + row = (row & 0x07) + 1; + col = 1 << (col & 0x07); + // TODO: find out how to turn off LED + spiWriteReg(display->spiCH, row,col+1); +} + +#if 0 + +// daysichained matrix +typedef struct{ + spi_ch_t *spiCH; + uint8_t nDevices; +}max7219_dm_t; + + +void max7219_dm_write( + max7219_dm_t *matrix, + uint8_t **data) +{ + uint8_t i = 0; + uint8_t j = 0; + // TODO: Test it out + for(i = 0; i < 8; i++) { + pinWrite(matrix->spiCH->pin, 0); + for(j = 0; j < matrix->nDevices; j++) { + spiTrx8BitPolling(matrix->spiCH->spi, i+1); // reg + spiTrx8BitPolling(matrix->spiCH->spi, data[j][i]); + } + pinWrite(matrix->spiCH->pin, 1); + } +} +#endif + diff --git a/env/drivers/max7219/max7219.h b/env/drivers/max7219/max7219.h new file mode 100755 index 0000000..63046f7 --- /dev/null +++ b/env/drivers/max7219/max7219.h @@ -0,0 +1,111 @@ +/** + ************************************************************************************************** + * @file max7219.h + * @author Kerem Yollu & Edwin Koch + * @date 25.08.2022 + * @version 1.0 + ************************************************************************************************** + * @brief + * + * **Detailed Description :** + * + * @todo + ************************************************************************************************** +*/ + +#ifndef _MAX7219_H_ +#define _MAX7219_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include "spi.h" +#include "pin.h" + +typedef enum{ + NO_DECODE_DIGIT_7_TO_0 = 0x00, + CODE_B_DECODE_ONLY_DIGIT_0 = 0x01, + CODE_B_DECODE_ONLY_DIGIT_3_TO_0 = 0x0F, + CODE_B_DECOD_DIGIT_7_TO_0 = 0xFF +}max7219_decodeMode_t; + +typedef enum{ + DISPLAY_DIGIT_0 = 0x00, + DISPLAY_DIGIT_1_TO_0 = 0x01, + DSIPLAX_DIGIT_2_TO_0 = 0x02, + DSIPLAX_DIGIT_3_TO_0 = 0x03, + DSIPLAX_DIGIT_4_TO_0 = 0x04, + DSIPLAX_DIGIT_5_TO_0 = 0x05, + DSIPLAX_DIGIT_6_TO_0 = 0x06, + DSIPLAX_DIGIT_7_TO_0 = 0x07 +}max7219_scanLimit_t; + +typedef struct{ + spi_ch_t *spiCH; +}max7219_t; + +void max7219_init( + max7219_t *display, + spi_ch_t *spi_ch); + +void max7219_testDisplay( + max7219_t *display, + uint8_t logic); + +void max7219_shutdownDiaply( + max7219_t *display, + uint8_t logic); + +void max7219_setDecodeMode( + max7219_t *display, + max7219_decodeMode_t dmode); + +void max7219_setIntensity( + max7219_t *display, + uint8_t intensity); + +void max7219_setScanLimit( + max7219_t *display, + max7219_scanLimit_t slimit); + +void max7219_setAllLEDsOff( + max7219_t *display); + +void max7219_ledMatrixSetLED( + max7219_t *display, + uint8_t row, + uint8_t col); + +void max7219_rawWrite( + max7219_t *display, + uint8_t reg, + uint8_t data); + +void max7219_printLedMatrix( + max7219_t *display, + uint8_t matrix[]); + +void max7219_ledMatrixUnsetLED( + max7219_t *display, + uint8_t row, + uint8_t col); +#if 0 +// daysichained matrix +typedef struct{ + spi_ch_t *spiCH; + uint8_t nDevices; +}max7219_dm_t; + + +void max7219_dm_write( + max7219_dm_t *matrix, + uint8_t **data); +#endif + +#ifdef _cplusplus +} +#endif + +#endif // _MAX7219_H_ diff --git a/env/drivers/max7219/new_max7219.c b/env/drivers/max7219/new_max7219.c new file mode 100644 index 0000000..64679b3 --- /dev/null +++ b/env/drivers/max7219/new_max7219.c @@ -0,0 +1,126 @@ +#include "max7219.h" + +void max7219_init( + max7219_t *display, + spi_ch_t *spi_ch) +{ + display->spiCH = spi_ch; +} + +void h + +void max7219_testDisplay( + max7219_t *display, + uint8_t logic) +{ + spiWriteReg(display->spiCH,0x0F, (logic) ? 0x01 : 0x00); +} + +void max7219_shutdownDiaply( + max7219_t *display, + uint8_t logic) +{ + spiWriteReg(display->spiCH,0x0C, (logic) ? 0x00 : 0x01); +} + +void max7219_setDecodeMode( + max7219_t *display, + max7219_decodeMode_t dmode) +{ + spiWriteReg(display->spiCH,0x09,(uint8_t) dmode); +} + +void max7219_setIntensity( + max7219_t *display, + uint8_t intensity) +{ + spiWriteReg(display->spiCH, 0x0A, intensity & 0x0F); +} + +void max7219_setScanLimit( + max7219_t *display, + max7219_scanLimit_t slimit) +{ + spiWriteReg(display->spiCH, 0x0B, ((uint8_t) slimit) & 0x0F); +} + +void max7219_setAllLEDsOff( + max7219_t *display) +{ + uint8_t i; + for(i = 0; i < 9; i++) { + spiWriteReg(display->spiCH, i, 0x00); + } +} + +void max7219_ledMatrixSetLED( + max7219_t *display, + uint8_t row, + uint8_t col) +{ + + uint8_t val = 0xAE; + + row = (row & 0x07) + 1; + col = 1 << (col & 0x07); + + spiWriteReg(display->spiCH, row,col); +} + +void max7219_rawWrite( + max7219_t *display, + uint8_t reg, + uint8_t data) +{ + spiWriteReg(display->spiCH, reg, data); +} + +void max7219_printLedMatrix( + max7219_t *display, + uint8_t matrix[]) +{ + uint8_t i = 0; + + for(i = 0; i < 8; i ++) { + spiWriteReg(display->spiCH, i+1, matrix[i]); + } +} + +void max7219_ledMatrixUnsetLED( + max7219_t *display, + uint8_t row, + uint8_t col) +{ + row = (row & 0x07) + 1; + col = 1 << (col & 0x07); + // TODO: find out how to turn off LED + spiWriteReg(display->spiCH, row,col+1); +} + +#if 0 + +// daysichained matrix +typedef struct{ + spi_ch_t *spiCH; + uint8_t nDevices; +}max7219_dm_t; + + +void max7219_dm_write( + max7219_dm_t *matrix, + uint8_t **data) +{ + uint8_t i = 0; + uint8_t j = 0; + // TODO: Test it out + for(i = 0; i < 8; i++) { + pinWrite(matrix->spiCH->pin, 0); + for(j = 0; j < matrix->nDevices; j++) { + spiTrx8BitPolling(matrix->spiCH->spi, i+1); // reg + spiTrx8BitPolling(matrix->spiCH->spi, data[j][i]); + } + pinWrite(matrix->spiCH->pin, 1); + } +} +#endif + diff --git a/env/drivers/max7219/new_max7219.h b/env/drivers/max7219/new_max7219.h new file mode 100755 index 0000000..34839e6 --- /dev/null +++ b/env/drivers/max7219/new_max7219.h @@ -0,0 +1,160 @@ +/** + ************************************************************************************************** + * @file max7219.h + * @author Kerem Yollu & Edwin Koch + * @date 25.08.2022 + * @version 1.0 + ************************************************************************************************** + * @brief + * + * **Detailed Description :** + * + * @todo + ************************************************************************************************** +*/ + +#ifndef _MAX7219_H_ +#define _MAX7219_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include "spi.h" +#include "pin.h" + +typedef enum{ + NO_DECODE_DIGIT_7_TO_0 = 0x00, + CODE_B_DECODE_ONLY_DIGIT_0 = 0x01, + CODE_B_DECODE_ONLY_DIGIT_3_TO_0 = 0x0F, + CODE_B_DECOD_DIGIT_7_TO_0 = 0xFF +}max7219_decodeMode_t; + +typedef enum{ + DISPLAY_DIGIT_0 = 0x00, + DISPLAY_DIGIT_1_TO_0 = 0x01, + DSIPLAX_DIGIT_2_TO_0 = 0x02, + DSIPLAX_DIGIT_3_TO_0 = 0x03, + DSIPLAX_DIGIT_4_TO_0 = 0x04, + DSIPLAX_DIGIT_5_TO_0 = 0x05, + DSIPLAX_DIGIT_6_TO_0 = 0x06, + DSIPLAX_DIGIT_7_TO_0 = 0x07 +}max7219_scanLimit_t; + +/** + * @brief max7219 matrix class + * + * The matrix can be ccomposed of only one ore many devices daysichained + * together. + * @var *spiCH Pointer to spi channel object + * @var nDevicesChained Ammount of devices hoocked up together + * @var brightness brightness of the matrix + * @var buf Array of matrix content. Each n to n + 7 (n can be 0, 8, 16, etc) represents the + * content of one individual max7219 device. + */ +typedef struct{ + spi_ch_t *spiCH; + uint8_t nDevicesChained; + uint8_t brightness; + uint8_t buf[]; +}max7219_mx_t; + +void max7219_t_mx_init( + max7219_mx_t *matrix, + spi_ch_t *spiChannel, + uint8_t *pBuf, + uint8_t bufLen); + +void max7219_mx_setPixel( + max7219_mx_t *matrix, + uint8_t row, + uint8_t col, + uint8_t logic); + +void max7219_mx_print( + max7219_mx_t *matrix, + char *text, + uint8_t len); + +void max7219_mx_show( + max7219_mx_t *matrix); + +void max7219_mx_shutdown( + max7219_mx_t *matrix); + +void max7219_mx_test( + max7219_mx_t *matrix); + +void max7219_mx_mapMatrix( + max7219_mx_t *matrix, + uint8_t *map); + + + +/* + + +void max7219_init( + max7219_t *display, + spi_ch_t *spi_ch); + +void max7219_testDisplay( + max7219_t *display, + uint8_t logic); + +void max7219_shutdownDiaply( + max7219_t *display, + uint8_t logic); + +void max7219_setDecodeMode( + max7219_t *display, + max7219_decodeMode_t dmode); + +void max7219_setIntensity( + max7219_t *display, + uint8_t intensity); + +void max7219_setScanLimit( + max7219_t *display, + max7219_scanLimit_t slimit); + +void max7219_setAllLEDsOff( + max7219_t *display); + +void max7219_ledMatrixSetLED( + max7219_t *display, + uint8_t row, + uint8_t col); + +void max7219_rawWrite( + max7219_t *display, + uint8_t reg, + uint8_t data); + +void max7219_printLedMatrix( + max7219_t *display, + uint8_t matrix[]); + +void max7219_ledMatrixUnsetLED( + max7219_t *display, + uint8_t row, + uint8_t col); +#if 0 +// daysichained matrix +typedef struct{ + spi_ch_t *spiCH; + uint8_t nDevices; +}max7219_dm_t; + + +void max7219_dm_write( + max7219_dm_t *matrix, + uint8_t **data); +#endif +*/ +#ifdef _cplusplus +} +#endif + +#endif // _MAX7219_H_ diff --git a/main.c b/main.c index 3709117..dc57805 100644 --- a/main.c +++ b/main.c @@ -4,9 +4,370 @@ #include "usart.h" #include "ascii.h" #include "timer.h" +#include "spi.h" +#include "max7219.h" +//#include "ked/device_drivers/max7219/max7219.h" + +#if 0 +typedef enum{ + NO_DECODE_DIGIT_7_TO_0 = 0x00, + CODE_B_DECODE_ONLY_DIGIT_0 = 0x01, + CODE_B_DECODE_ONLY_DIGIT_3_TO_0 = 0x0F, + CODE_B_DECOD_DIGIT_7_TO_0 = 0xFF +}max7219_decodeMode_t; + +typedef enum{ + DISPLAY_DIGIT_0 = 0x00, + DISPLAY_DIGIT_1_TO_0 = 0x01, + DSIPLAX_DIGIT_2_TO_0 = 0x02, + DSIPLAX_DIGIT_3_TO_0 = 0x03, + DSIPLAX_DIGIT_4_TO_0 = 0x04, + DSIPLAX_DIGIT_5_TO_0 = 0x05, + DSIPLAX_DIGIT_6_TO_0 = 0x06, + DSIPLAX_DIGIT_7_TO_0 = 0x07 +}max7219_scanLimit_t; + +typedef struct{ + spi_ch_t *spiCH; +}max7219_t; + +void max7219_init( + max7219_t *display, + spi_ch_t *spi_ch) +{ + display->spiCH = spi_ch; +} + +void max7219_testDisplay( + max7219_t *display, + uint8_t logic) +{ + spiWriteReg(display->spiCH,0x0F, (logic) ? 0x01 : 0x00); +} + +void max7219_shutdownDiaply( + max7219_t *display, + uint8_t logic) +{ + spiWriteReg(display->spiCH,0x0C, (logic) ? 0x00 : 0x01); +} + +void max7219_setDecodeMode( + max7219_t *display, + max7219_decodeMode_t dmode) +{ + spiWriteReg(display->spiCH,0x09,(uint8_t) dmode); +} + +void max7219_setIntensity( + max7219_t *display, + uint8_t intensity) +{ + spiWriteReg(display->spiCH, 0x0A, intensity & 0x0F); +} + +void max7219_setScanLimit( + max7219_t *display, + max7219_scanLimit_t slimit) +{ + spiWriteReg(display->spiCH, 0x0B, ((uint8_t) slimit) & 0x0F); +} + +void max7219_setAllLEDsOff( + max7219_t *display) +{ + uint8_t i; + for(i = 0; i < 9; i++) { + spiWriteReg(display->spiCH, i, 0x00); + } +} + +void max7219_ledMatrixSetLED( + max7219_t *display, + uint8_t row, + uint8_t col) +{ + + uint8_t val = 0xAE; + + row = (row & 0x07) + 1; + col = 1 << (col & 0x07); + + spiWriteReg(display->spiCH, row,col); +} + +void max7219_rawWrite( + max7219_t *display, + uint8_t reg, + uint8_t data) +{ + spiWriteReg(display->spiCH, reg, data); +} + +void max7219_printLedMatrix( + max7219_t *display, + uint8_t matrix[]) +{ + uint8_t i = 0; + + for(i = 0; i < 8; i ++) { + spiWriteReg(display->spiCH, i+1, matrix[i]); + } +} + +void max7219_ledMatrixUnsetLED( + max7219_t *display, + uint8_t row, + uint8_t col) +{ + row = (row & 0x07) + 1; + col = 1 << (col & 0x07); + // TODO: find out how to turn off LED + spiWriteReg(display->spiCH, row,col+1); +} + + +// daysichained matrix +typedef struct{ + spi_ch_t *spiCH; + uint8_t nDevices; +}max7219_dm_t; + + +void max7219_dm_write( + max7219_dm_t *matrix, + uint8_t **data) +{ + uint8_t i = 0; + uint8_t j = 0; + // TODO: Test it out + for(i = 0; i < 8; i++) { + pinWrite(matrix->spiCH->pin, 0); + for(j = 0; j < matrix->nDevices; j++) { + spiTrx8BitPolling(matrix->spiCH->spi, i+1); // reg + spiTrx8BitPolling(matrix->spiCH->spi, data[j][i]); + } + pinWrite(matrix->spiCH->pin, 1); + + } +} +#endif + + +void dispTest(max7219_t *disp) +{ + max7219_testDisplay(disp, 1); + delayMs(500); + max7219_testDisplay(disp, 0); + delayMs(500); +} + +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); + + //max7219_testDisplay(spi_ch, 1); + +// 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); + //max7219_testDisplay(spi_ch, 0); + 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; + uint8_t j = 0; + + uint8_t matrix[] = { + 0xAA, + 0xFF, + 0xAA, + 0xFF, + 0xAA, + 0xFF, + 0xAA, + 0xFF}; + + uint8_t matrix_1[] = { + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11, + 0x11}; + spi_ch_t spi_test_channel; + max7219_t ledMatrix; + + // 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(pinA3); + + //pinConfig(pinA6, alternate, floating, pullDown, veryFast); + pinConfig(pinA3, output, pushPull, output, veryFast); + + // spi hardware channel setup + spiInitMaster(SPI_CH_1, + SPI_NONINVERTED, + SPI_CAPTURE_ON_FIRST_CLK_TRANSITION, + SPI_MSB_FIRST, + SPI_DOUPLEX, + 7, + pinA5, + 0, + pinA7, + 0, + pinA6, + 0); + + spiSetupCH(&spi_test_channel, SPI_CH_1, pinA3); + + // LED Matrix object setup + //ledMatrix.spiCH = &spi_test_channel; + max7219_init(&ledMatrix, &spi_test_channel); + + 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); + } + + max7219_testDisplay(&ledMatrix,1); + delayMs(500); + max7219_testDisplay(&ledMatrix,0); + max7219_shutdownDiaply(&ledMatrix,0); + max7219_setDecodeMode(&ledMatrix, NO_DECODE_DIGIT_7_TO_0); + max7219_setScanLimit(&ledMatrix, DSIPLAX_DIGIT_7_TO_0); + max7219_setIntensity(&ledMatrix,0x01); + + max7219_ledMatrixSetLED(&ledMatrix,0,0); + delayMs(1000); + max7219_setAllLEDsOff(&ledMatrix); +/* + for(i=0; i < 8; i++) { + max7219_ledMatrixSetLED(&ledMatrix,i,i); + delayMs(100); + } +*/ + + while(1) { + max7219_printLedMatrix(&ledMatrix, matrix); + //max7219_ledMatrixSetLED(&ledMatrix, 0, 0); + delayMs(100); + max7219_printLedMatrix(&ledMatrix, matrix_1); + delayMs(100); + } + + while(1) { + for(i=0; i < 0x8; i++) { + max7219_ledMatrixSetLED(&ledMatrix,i,i+j); + delayMs(100); + } + //delayMs(10); + j++; + if(j > 7) j =0; + } + + + + /* + while(1){ + pinToggle(pinB3); + dispTest(&ledMatrix); + //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) { } @@ -14,3 +375,4 @@ int main(int argc, char *argv[]) return 1; } +