![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Programme de démo pour la gestion de 4 afficheurs 64 leds
Diff: main.cpp
- Revision:
- 1:61f61158c345
- Parent:
- 0:bd34a367f642
- Child:
- 2:675b923da5d2
diff -r bd34a367f642 -r 61f61158c345 main.cpp --- a/main.cpp Tue Nov 24 06:41:43 2015 +0000 +++ b/main.cpp Mon Mar 28 10:11:31 2022 +0000 @@ -6,17 +6,62 @@ */ #include "mbed.h" +#include "lib_matrix.h" -SPI spi(PTD2, PTD3, PTD1); // Arduino compatible MOSI, MISO, SCLK -DigitalOut cs(PTD0); // Chip select +SPI spi(D11,D12,D13); // Arduino compatible MOSI, MISO, SCLK +DigitalOut cs(D14); // Chip select + +int main() +{ + cs = 1; // CS initially High + spi.format(8,0); // 8-bit format, mode 0,0 + spi.frequency(1000000); // SCLK = 1 MHz + Init_MAX7219(); // Initialize the LED controller + char tab[20]="HELLOWO&&&"; + int i=0; + while (1) { + disp(tab[i]); + i=(i+1)%10; + wait(0.5); + disp(' '); + wait(0.1); // 1 sec delay + + } +} -const unsigned char led1[]= { - 0xFF,0x18,0x18,0x18,0x18,0x18,0x18,0xFF -}; //H -const unsigned char led2[]= { - 0x1F,0x60,0x80,0x40,0x40,0x80,0x60,0x1F -}; //W - +void disp(char c) +{ + switch(c) { + case 'E' : + for(int i=1; i<9; i++) // Write first character (8 rows) + SPI_Write2(i,led_E[i-1]); + break; + case 'H' : + for(int i=1; i<9; i++) // Write first character (8 rows) + SPI_Write2(i,led_H[i-1]); + break; + case 'L' : + for(int i=1; i<9; i++) // Write first character (8 rows) + SPI_Write2(i,led_L[i-1]); + break; + case 'O' : + for(int i=1; i<9; i++) // Write first character (8 rows) + SPI_Write2(i,led_O[i-1]); + break; + case 'W' : // 1 sec delay + for(int i=1; i<9; i++) // Write second character + SPI_Write2(i,led_W[i-1]); + break; + case ' ' : // 1 sec delay + for(int i=1; i<9; i++) // Write second character + SPI_Write2(i,led_blank[i-1]); + break; + case '&' : // 1 sec delay + for(int i=1; i<9; i++) // Write second character + SPI_Write2(i,led_heart[i-1]); + break; + } +} /// Send two bytes to SPI bus void SPI_Write2(unsigned char MSB, unsigned char LSB) { @@ -46,25 +91,3 @@ SPI_Write2(0x0F, 0x00); // Disable display test wait_ms(500); // 500 ms delay } - -int main() -{ - cs = 1; // CS initially High - spi.format(8,0); // 8-bit format, mode 0,0 - spi.frequency(1000000); // SCLK = 1 MHz - Init_MAX7219(); // Initialize the LED controller - while (1) { - for(int i=1; i<9; i++) // Write first character (8 rows) - SPI_Write2(i,led1[i-1]); - wait(1); // 1 sec delay - for(int i=1; i<9; i++) // Write second character - SPI_Write2(i,led2[i-1]); - wait(1); // 1 sec delay - } -} - - - - - -