Error as described in MBs email to MS
Dependencies: SDFileSystem app epson mbed msp430 pl tests
pagedice.cpp@1:5874c1a074a7, 2018-01-11 (annotated)
- 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?
User | Revision | Line number | New 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 |