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
Revision 4:8797ad72a9a8, committed 2015-12-21
- 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)) ;