Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SDFileSystem app epson mbed msp430 pl tests
pagedice.cpp
00001 // 00002 // Filename: pagedice.cpp 00003 // 00004 // Flexbook page for page A2. 00005 // 00006 00007 #include "pagedice.h" 00008 #include "pageoled.h" 00009 #include "hal.h" 00010 #include "mcp23s17.h" 00011 00012 #include "log.h" 00013 00014 #include <iostream> 00015 00016 namespace Flexbook { 00017 00018 PageDice::PageDice() 00019 : pageoled() 00020 { 00021 Log("Creating PageDice"); 00022 } 00023 00024 PageDice::~PageDice() 00025 { 00026 Log("Deleting PageDice"); 00027 } 00028 00029 uint8_t PageDice::DicePoll() 00030 { 00031 DigitalIn dice_D(p23); 00032 DigitalIn dice_C(p24); 00033 DigitalIn dice_B(p25); 00034 uint8_t dicevalue = 0; 00035 if (dice_D) dicevalue =+ 1; 00036 if (dice_C) dicevalue =+ 2; 00037 if (dice_B) dicevalue =+ 4; 00038 return(dicevalue); 00039 } 00040 00041 00042 void PageDice::HandlePageActions() 00043 { 00044 DigitalOut led1(LED1); DigitalOut led2(LED2); 00045 int dicenr = 1; 00046 if (HAL::GetMCP23S17().Read(HAL::GPIOA) == 0xF7) 00047 { 00048 led1 = 1; 00049 while (HAL::GetMCP23S17().Read(HAL::GPIOA) == 0xF7) 00050 { 00051 //write the value of dicenr to the digit on OLED 00052 pageoled.Write(pageoled.Translate(0,0,0,0,0,dicenr)); 00053 //pageoled.DiceRoll(dicenr); 00054 wait(0.1); 00055 dicenr = dicenr + 1; 00056 if (dicenr == 7) dicenr = 1; 00057 } 00058 led1=0; 00059 //finger is now removed from the touch electrode 00060 led2=1; 00061 for (int i=30; i>0; i--) 00062 { 00063 //write the value of dicenr to the digit on OLED 00064 pageoled.Write(pageoled.Translate(0,0,0,0,0,dicenr)); 00065 //pageoled.DiceRoll(dicenr); 00066 wait(4/(i+3)); //change count slow-down formula to suit 00067 } 00068 led2 = 0; 00069 } 00070 } 00071 00072 /* 00073 void PageDice::HandleDice() 00074 { 00075 DigitalOut led1(LED1); DigitalOut led2(LED2); 00076 int dicenr = 1; 00077 //sensordata.dice = 1; 00078 if (HAL::GetMCP23S17().Read(HAL::GPIOA) == 0xF7) 00079 { 00080 led1 = 1; 00081 while (HAL::GetMCP23S17().Read(HAL::GPIOA) == 0xF7) 00082 { 00083 //write the value of dicenr to the digit on OLED 00084 //sensordata.dice = dicenr; 00085 pageoled.Write(pageoled.Translate(0,0,0,0,0,dicenr)); 00086 wait(0.05); 00087 dicenr = dicenr + 1; 00088 if (dicenr == 7) dicenr = 1; 00089 } 00090 led1=0; 00091 //finger is now removed from the touch electrode 00092 led2=1; 00093 for (int i=10; i>0; i--) 00094 { 00095 //write the value of dicenr to the digit on OLED 00096 dicenr = dicenr + 1; 00097 if (dicenr == 7) dicenr = 1; 00098 //sensordata.dice = dicenr; 00099 pageoled.Write(pageoled.Translate(0,0,0,0,0,dicenr)); 00100 wait(4/(i+1)); //change count slow-down formula to suit 00101 //wait(0.3); 00102 } 00103 led2 = 0; 00104 //sensordata.dice = dicenr; 00105 } 00106 } 00107 */ 00108 00109 } // End Flexbook namespace. 00110 00111 00112
Generated on Tue Jul 12 2022 21:14:35 by
