Revision 3:0d112217a912, committed 2017-10-10
- Comitter:
- mcm
- Date:
- Tue Oct 10 09:24:46 2017 +0000
- Parent:
- 2:98dff9534ae1
- Commit message:
- The driver was completed and tested, it works as expected.
Changed in this revision
diff -r 98dff9534ae1 -r 0d112217a912 MAX7219.h
--- a/MAX7219.h Mon Oct 09 16:26:39 2017 +0000
+++ b/MAX7219.h Tue Oct 10 09:24:46 2017 +0000
@@ -20,7 +20,114 @@
/**
Example:
-[todo]
+#include "mbed.h"
+#include "MAX7219.h"
+
+
+MAX7219 myMAX7219 ( p11, p12, p13, p14, 1000000 ); // MOSI: P11 | MISO: P12 | SCLK: P13 | CS: P14 | FREQ: 1MHz
+
+Ticker newReading;
+DigitalOut myled1 ( LED1 );
+
+
+MAX7219::MAX7219_status_t mySPI_status;
+
+bool changeDP_status = false;
+
+
+// Change the state of the DP
+void readDATA ( void )
+{
+ myled1 = 1;
+
+ if ( changeDP_status == true ) {
+ // DP OFF
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_0, MAX7219::CHARACTER_0, MAX7219::DP_DISABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_1, MAX7219::CHARACTER_1, MAX7219::DP_DISABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_2, MAX7219::CHARACTER_2, MAX7219::DP_DISABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_3, MAX7219::CHARACTER_3, MAX7219::DP_DISABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_4, MAX7219::CHARACTER_4, MAX7219::DP_DISABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_5, MAX7219::CHARACTER_5, MAX7219::DP_DISABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_6, MAX7219::CHARACTER_6, MAX7219::DP_DISABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_7, MAX7219::CHARACTER_7, MAX7219::DP_DISABLED );
+
+ changeDP_status = false;
+ } else {
+ // DP ON
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_0, MAX7219::CHARACTER_0, MAX7219::DP_ENABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_1, MAX7219::CHARACTER_1, MAX7219::DP_ENABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_2, MAX7219::CHARACTER_2, MAX7219::DP_ENABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_3, MAX7219::CHARACTER_3, MAX7219::DP_ENABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_4, MAX7219::CHARACTER_4, MAX7219::DP_ENABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_5, MAX7219::CHARACTER_5, MAX7219::DP_ENABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_6, MAX7219::CHARACTER_6, MAX7219::DP_ENABLED );
+ wait_us ( 10 );
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( MAX7219::SET_DIGIT_7, MAX7219::CHARACTER_7, MAX7219::DP_ENABLED );
+
+ changeDP_status = true;
+ }
+
+ myled1 = 0;
+}
+
+
+int main()
+{
+ uint32_t i = 0;
+
+
+ // BCD code ON
+ mySPI_status = myMAX7219.MAX7219_DecodeMode ( MAX7219::DECODE_DIGITS_7_0 );
+ wait_us ( 10 );
+
+ // 7 digits available
+ mySPI_status = myMAX7219.MAX7219_SetScanLimit( MAX7219::DISPLAY_DIGIT_0_1_2_3_4_5_6_7 );
+ wait_us ( 10 );
+
+ // Configure the intensity
+ mySPI_status = myMAX7219.MAX7219_SetIntensity( MAX7219::DUTY_CICLE_9_32 );
+ wait_us ( 10 );
+
+ // Clear all the digits
+ for ( i = MAX7219::SET_DIGIT_0; i <= MAX7219::SET_DIGIT_7; i++ ) {
+ mySPI_status = myMAX7219.MAX7219_SetDigit ( ( MAX7219::MAX7219_digit_t )i, MAX7219::CHARACTER_BLANK, MAX7219::DP_DISABLED );
+ wait_us ( 10 );
+ }
+
+
+ // Test Mode Enabled: All displays ON
+ mySPI_status = myMAX7219.MAX7219_DisplayTest ( MAX7219::DISPLAY_TEST_MODE );
+ wait_ms ( 2500 );
+
+ // Test Mode Disabled
+ mySPI_status = myMAX7219.MAX7219_DisplayTest ( MAX7219::DISPLAY_NORMAL_OPERATION );
+ wait_us ( 10 );
+
+ // Device in normal operation mode
+ mySPI_status = myMAX7219.MAX7219_Mode ( MAX7219::NORMAL_OPERATION );
+
+
+ newReading.attach( &readDATA, 1 ); // the address of the function to be attached ( readDATA ) and the interval ( 1s )
+
+
+ // Let the callbacks take care of everything
+ while(1) {
+ sleep();
+ }
+}
*/