Error as described in MBs email to MS

Dependencies:   SDFileSystem app epson mbed msp430 pl tests

Committer:
marcbax
Date:
Thu Jan 11 14:12:00 2018 +0000
Revision:
1:5874c1a074a7
Parent:
0:c643d398cdb6
Version 180111a with error as reported to Mark Symonds

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcbax 0:c643d398cdb6 1 //
marcbax 0:c643d398cdb6 2 // Filename: pagedice.cpp
marcbax 0:c643d398cdb6 3 //
marcbax 0:c643d398cdb6 4 // Flexbook page for page A2.
marcbax 0:c643d398cdb6 5 //
marcbax 0:c643d398cdb6 6
marcbax 0:c643d398cdb6 7 #include "pagedice.h"
marcbax 0:c643d398cdb6 8 #include "pageoled.h"
marcbax 0:c643d398cdb6 9 #include "hal.h"
marcbax 0:c643d398cdb6 10 #include "mcp23s17.h"
marcbax 0:c643d398cdb6 11
marcbax 0:c643d398cdb6 12 #include "log.h"
marcbax 0:c643d398cdb6 13
marcbax 0:c643d398cdb6 14 #include <iostream>
marcbax 0:c643d398cdb6 15
marcbax 0:c643d398cdb6 16 namespace Flexbook {
marcbax 0:c643d398cdb6 17
marcbax 0:c643d398cdb6 18 PageDice::PageDice()
marcbax 0:c643d398cdb6 19 : pageoled()
marcbax 0:c643d398cdb6 20 {
marcbax 0:c643d398cdb6 21 Log("Creating PageDice");
marcbax 0:c643d398cdb6 22 }
marcbax 0:c643d398cdb6 23
marcbax 0:c643d398cdb6 24 PageDice::~PageDice()
marcbax 0:c643d398cdb6 25 {
marcbax 0:c643d398cdb6 26 Log("Deleting PageDice");
marcbax 0:c643d398cdb6 27 }
marcbax 0:c643d398cdb6 28
marcbax 0:c643d398cdb6 29 uint8_t PageDice::DicePoll()
marcbax 0:c643d398cdb6 30 {
marcbax 0:c643d398cdb6 31 DigitalIn dice_D(p23);
marcbax 0:c643d398cdb6 32 DigitalIn dice_C(p24);
marcbax 0:c643d398cdb6 33 DigitalIn dice_B(p25);
marcbax 0:c643d398cdb6 34 uint8_t dicevalue = 0;
marcbax 0:c643d398cdb6 35 if (dice_D) dicevalue =+ 1;
marcbax 0:c643d398cdb6 36 if (dice_C) dicevalue =+ 2;
marcbax 0:c643d398cdb6 37 if (dice_B) dicevalue =+ 4;
marcbax 0:c643d398cdb6 38 return(dicevalue);
marcbax 0:c643d398cdb6 39 }
marcbax 0:c643d398cdb6 40
marcbax 0:c643d398cdb6 41
marcbax 0:c643d398cdb6 42 void PageDice::HandlePageActions()
marcbax 0:c643d398cdb6 43 {
marcbax 0:c643d398cdb6 44 DigitalOut led1(LED1); DigitalOut led2(LED2);
marcbax 0:c643d398cdb6 45 int dicenr = 1;
marcbax 0:c643d398cdb6 46 if (HAL::GetMCP23S17().Read(HAL::GPIOA) == 0xF7)
marcbax 0:c643d398cdb6 47 {
marcbax 0:c643d398cdb6 48 led1 = 1;
marcbax 0:c643d398cdb6 49 while (HAL::GetMCP23S17().Read(HAL::GPIOA) == 0xF7)
marcbax 0:c643d398cdb6 50 {
marcbax 0:c643d398cdb6 51 //write the value of dicenr to the digit on OLED
marcbax 0:c643d398cdb6 52 pageoled.Write(pageoled.Translate(0,0,0,0,0,dicenr));
marcbax 0:c643d398cdb6 53 //pageoled.DiceRoll(dicenr);
marcbax 0:c643d398cdb6 54 wait(0.1);
marcbax 0:c643d398cdb6 55 dicenr = dicenr + 1;
marcbax 0:c643d398cdb6 56 if (dicenr == 7) dicenr = 1;
marcbax 0:c643d398cdb6 57 }
marcbax 0:c643d398cdb6 58 led1=0;
marcbax 0:c643d398cdb6 59 //finger is now removed from the touch electrode
marcbax 0:c643d398cdb6 60 led2=1;
marcbax 0:c643d398cdb6 61 for (int i=30; i>0; i--)
marcbax 0:c643d398cdb6 62 {
marcbax 0:c643d398cdb6 63 //write the value of dicenr to the digit on OLED
marcbax 0:c643d398cdb6 64 pageoled.Write(pageoled.Translate(0,0,0,0,0,dicenr));
marcbax 0:c643d398cdb6 65 //pageoled.DiceRoll(dicenr);
marcbax 0:c643d398cdb6 66 wait(4/(i+3)); //change count slow-down formula to suit
marcbax 0:c643d398cdb6 67 }
marcbax 0:c643d398cdb6 68 led2 = 0;
marcbax 0:c643d398cdb6 69 }
marcbax 0:c643d398cdb6 70 }
marcbax 0:c643d398cdb6 71
marcbax 0:c643d398cdb6 72 /*
marcbax 0:c643d398cdb6 73 void PageDice::HandleDice()
marcbax 0:c643d398cdb6 74 {
marcbax 0:c643d398cdb6 75 DigitalOut led1(LED1); DigitalOut led2(LED2);
marcbax 0:c643d398cdb6 76 int dicenr = 1;
marcbax 0:c643d398cdb6 77 //sensordata.dice = 1;
marcbax 0:c643d398cdb6 78 if (HAL::GetMCP23S17().Read(HAL::GPIOA) == 0xF7)
marcbax 0:c643d398cdb6 79 {
marcbax 0:c643d398cdb6 80 led1 = 1;
marcbax 0:c643d398cdb6 81 while (HAL::GetMCP23S17().Read(HAL::GPIOA) == 0xF7)
marcbax 0:c643d398cdb6 82 {
marcbax 0:c643d398cdb6 83 //write the value of dicenr to the digit on OLED
marcbax 0:c643d398cdb6 84 //sensordata.dice = dicenr;
marcbax 0:c643d398cdb6 85 pageoled.Write(pageoled.Translate(0,0,0,0,0,dicenr));
marcbax 0:c643d398cdb6 86 wait(0.05);
marcbax 0:c643d398cdb6 87 dicenr = dicenr + 1;
marcbax 0:c643d398cdb6 88 if (dicenr == 7) dicenr = 1;
marcbax 0:c643d398cdb6 89 }
marcbax 0:c643d398cdb6 90 led1=0;
marcbax 0:c643d398cdb6 91 //finger is now removed from the touch electrode
marcbax 0:c643d398cdb6 92 led2=1;
marcbax 0:c643d398cdb6 93 for (int i=10; i>0; i--)
marcbax 0:c643d398cdb6 94 {
marcbax 0:c643d398cdb6 95 //write the value of dicenr to the digit on OLED
marcbax 0:c643d398cdb6 96 dicenr = dicenr + 1;
marcbax 0:c643d398cdb6 97 if (dicenr == 7) dicenr = 1;
marcbax 0:c643d398cdb6 98 //sensordata.dice = dicenr;
marcbax 0:c643d398cdb6 99 pageoled.Write(pageoled.Translate(0,0,0,0,0,dicenr));
marcbax 0:c643d398cdb6 100 wait(4/(i+1)); //change count slow-down formula to suit
marcbax 0:c643d398cdb6 101 //wait(0.3);
marcbax 0:c643d398cdb6 102 }
marcbax 0:c643d398cdb6 103 led2 = 0;
marcbax 0:c643d398cdb6 104 //sensordata.dice = dicenr;
marcbax 0:c643d398cdb6 105 }
marcbax 0:c643d398cdb6 106 }
marcbax 0:c643d398cdb6 107 */
marcbax 0:c643d398cdb6 108
marcbax 0:c643d398cdb6 109 } // End Flexbook namespace.
marcbax 0:c643d398cdb6 110
marcbax 0:c643d398cdb6 111
marcbax 0:c643d398cdb6 112