Class Module for EA DOGS102 Graphic LCD display SPI Interface

Dependents:   mDotEVBM2X MTDOT-EVB-LinkCheck-AL MTDOT-EVBDemo-DRH MTDOT_BOX_EVB_LCD_Helloworld ... more

Files at this revision

API Documentation at this revision

Comitter:
Mike Fiore
Date:
Mon Dec 21 10:48:01 2015 -0600
Parent:
3:a0f69c276cc6
Child:
5:e66152f036d9
Commit message:
protect serial transactions by disabling interrupts

Changed in this revision

DOGS102.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/DOGS102.cpp	Tue Nov 10 15:45:53 2015 -0600
+++ b/DOGS102.cpp	Mon Dec 21 10:48:01 2015 -0600
@@ -175,8 +175,10 @@
 {
     uint8_t result = 0;
     
+    __disable_irq();
     _spi->frequency(4000000);
     _spi->format(8,3);		// 8bit transfers, SPI mode 3
+    __enable_irq();
     _lcd_cs->write(1);		// initialize chip select pin
     _cmnd_data->write(1);	// initialize command/data pin
     _update_flag = 0;		// initialize update semaphore
@@ -282,8 +284,10 @@
 
     if (result == 0)
     {
+	__disable_irq();
         _spi->frequency(4000000);
         _spi->format(8,3);		// 8bit transfers, SPI mode 3
+	__enable_irq();
 
         _lcd_cs->write (0);			// enable LCD SPI interface
     	_cmnd_data->write(0);		// set to command mode
@@ -292,11 +296,15 @@
     	{
     	case SETELECVOL :
     	case SETAPROGCTRL :
+		__disable_irq();
         	_spi->write(reg);
+		__enable_irq();
         	break;
         }
 
+	__disable_irq();
     	_spi->write(buf);			// send command register
+	__enable_irq();
 
     	_cmnd_data->write(1);		// set back to data mode
     	_lcd_cs->write(1);			// disable LCD SPI Interface
@@ -316,15 +324,19 @@
     uint8_t result = 0;
     uint8_t i;
     
+    __disable_irq();
     _spi->frequency(4000000);
     _spi->format(8,3);		// 8bit transfers, SPI mode 3
+    __enable_irq();
 
     _lcd_cs->write(0);			// enable LCD SPI interface
 	i = 0;						// initialize transfer counter
 
     do
     {
+	__disable_irq();
         _spi->write(data[i]);
+	__enable_irq();
         i++;
     } while ((result == 0) && (i <= count)) ;