Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 2:2616b6004345
- Parent:
- 1:61f61158c345
- Child:
- 3:6d221b7c12f2
diff -r 61f61158c345 -r 2616b6004345 main.cpp
--- a/main.cpp Mon Mar 28 10:11:31 2022 +0000
+++ b/main.cpp Mon May 23 19:14:54 2022 +0000
@@ -1,93 +1,49 @@
-/* 06_spi_max7219_led8x8
- *
- * Simple demo to drive a 8x8-as LED matrix by a MAX7219 LED driver IC
- * After initialisation two characters (H and W) are displayed alternatively.
- * The MAX7219 IC is driven by hardware SPI: SPI0 module at PTD1, PTD2, PTD3.
- */
+#include "mbed.h"
-#include "mbed.h"
-#include "lib_matrix.h"
+void SPI_Ecrire2Octets(unsigned char MSB, unsigned char LSB);
+void Init_MAX7219(void);
SPI spi(D11,D12,D13); // Arduino compatible MOSI, MISO, SCLK
DigitalOut cs(D14); // Chip select
-
+ // Programme principal
int main()
{
- cs = 1; // CS initially High
+ cs.write(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
+
}
}
+ // Pour envoyer 2 octets sur le bus SPI
+void SPI_Ecrire2Octets(unsigned char MSB, unsigned char LSB)
+{
+ // Ecrire ici le code de votre fonction
+}
-void disp(char c)
+ // initialisation du MAX7219
+void Init_MAX7219(void)
{
- 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;
+ for(int i=0; i<4; i++) {
+ SPI_Ecrire2Octets(0x09, 0x00); // Decoding off
+ SPI_Ecrire2Octets(0x0A, 0x08); // Brightness to intermediate
+ SPI_Ecrire2Octets(0x0B, 0x07); // Scan limit = 7
+ SPI_Ecrire2Octets(0x0C, 0x01); // Normal operation mode
+ SPI_Ecrire2Octets(0x0F, 0x0F); // Enable display test
+ wait_ms(500); // 500 ms delay
+
+ SPI_Ecrire2Octets(0x01, 0x00); // Clear row 0.
+ SPI_Ecrire2Octets(0x02, 0x00); // Clear row 1.
+ SPI_Ecrire2Octets(0x03, 0x00); // Clear row 2.
+ SPI_Ecrire2Octets(0x04, 0x00); // Clear row 3.
+ SPI_Ecrire2Octets(0x05, 0x00); // Clear row 4.
+ SPI_Ecrire2Octets(0x06, 0x00); // Clear row 5.
+ SPI_Ecrire2Octets(0x07, 0x00); // Clear row 6.
+ SPI_Ecrire2Octets(0x08, 0x00); // Clear row 7.
+ SPI_Ecrire2Octets(0x0F, 0x00); // Disable display test
+ wait_ms(500); // 500 ms delay
}
}
-/// Send two bytes to SPI bus
-void SPI_Write2(unsigned char MSB, unsigned char LSB)
-{
- cs = 0; // Set CS Low
- spi.write(MSB); // Send two bytes
- spi.write(LSB);
- cs = 1; // Set CS High
-}
-
-/// MAX7219 initialisation
-void Init_MAX7219(void)
-{
- SPI_Write2(0x09, 0x00); // Decoding off
- SPI_Write2(0x0A, 0x08); // Brightness to intermediate
- SPI_Write2(0x0B, 0x07); // Scan limit = 7
- SPI_Write2(0x0C, 0x01); // Normal operation mode
- SPI_Write2(0x0F, 0x0F); // Enable display test
- wait_ms(500); // 500 ms delay
- SPI_Write2(0x01, 0x00); // Clear row 0.
- SPI_Write2(0x02, 0x00); // Clear row 1.
- SPI_Write2(0x03, 0x00); // Clear row 2.
- SPI_Write2(0x04, 0x00); // Clear row 3.
- SPI_Write2(0x05, 0x00); // Clear row 4.
- SPI_Write2(0x06, 0x00); // Clear row 5.
- SPI_Write2(0x07, 0x00); // Clear row 6.
- SPI_Write2(0x08, 0x00); // Clear row 7.
- SPI_Write2(0x0F, 0x00); // Disable display test
- wait_ms(500); // 500 ms delay
-}