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: pagetouch.cpp
marcbax 0:c643d398cdb6 3 //
marcbax 0:c643d398cdb6 4 // Flexbook page for page A4.
marcbax 0:c643d398cdb6 5 //
marcbax 0:c643d398cdb6 6
marcbax 0:c643d398cdb6 7 #include "pagetouch.h"
marcbax 0:c643d398cdb6 8 #include "pageflexenable.h"
marcbax 0:c643d398cdb6 9
marcbax 0:c643d398cdb6 10 #include "eink.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 PageTouch::PageTouch()
marcbax 0:c643d398cdb6 19 : pageflexenable(),
marcbax 0:c643d398cdb6 20 hangmangame(),
marcbax 0:c643d398cdb6 21 i2c(p28, p27), irq(p26),
marcbax 0:c643d398cdb6 22 at42qt2120(i2c), key(0)
marcbax 0:c643d398cdb6 23 {
marcbax 0:c643d398cdb6 24 Log("Creating PageTouch");
marcbax 0:c643d398cdb6 25
marcbax 0:c643d398cdb6 26
marcbax 0:c643d398cdb6 27 at42qt2120.SetSliderOptions(HAL::WHEEL);
marcbax 0:c643d398cdb6 28
marcbax 0:c643d398cdb6 29 at42qt2120.SetKeyControl(1, false, 2, false, true);
marcbax 0:c643d398cdb6 30 at42qt2120.SetKeyControl(2, false, 2, false, true);
marcbax 0:c643d398cdb6 31 at42qt2120.SetKeyControl(3, false, 2, false, true);
marcbax 0:c643d398cdb6 32
marcbax 0:c643d398cdb6 33 at42qt2120.SetKeyControl(5, false, 1, false, true);
marcbax 0:c643d398cdb6 34 at42qt2120.SetKeyControl(6, false, 1, false, true);
marcbax 0:c643d398cdb6 35 at42qt2120.SetKeyControl(7, false, 1, false, true);
marcbax 0:c643d398cdb6 36 at42qt2120.SetKeyControl(8, false, 1, false, true);
marcbax 0:c643d398cdb6 37 at42qt2120.SetKeyControl(9, false, 1, false, true);
marcbax 0:c643d398cdb6 38 at42qt2120.SetKeyControl(10, false, 1, false, true);
marcbax 0:c643d398cdb6 39
marcbax 0:c643d398cdb6 40 irq.fall(callback(this, &Flexbook::PageTouch::TouchChange));
marcbax 0:c643d398cdb6 41 newtouch = false;
marcbax 0:c643d398cdb6 42 imgnumber = 0;
marcbax 0:c643d398cdb6 43
marcbax 0:c643d398cdb6 44 #ifdef VERBOSE
marcbax 0:c643d398cdb6 45 for(int n = 0; n < 99; n++)
marcbax 0:c643d398cdb6 46 printf("Register %03d %02x\n", n, at42qt2120.Read((HAL::REG_AT42QT2120) n));
marcbax 0:c643d398cdb6 47 #endif
marcbax 0:c643d398cdb6 48 }
marcbax 0:c643d398cdb6 49
marcbax 0:c643d398cdb6 50 PageTouch::~PageTouch()
marcbax 0:c643d398cdb6 51 {
marcbax 0:c643d398cdb6 52 Log("Deleting PageTouch");
marcbax 0:c643d398cdb6 53
marcbax 0:c643d398cdb6 54 irq.disable_irq();
marcbax 0:c643d398cdb6 55 }
marcbax 0:c643d398cdb6 56
marcbax 0:c643d398cdb6 57 void PageTouch::TouchChange()
marcbax 0:c643d398cdb6 58 {
marcbax 0:c643d398cdb6 59 static volatile bool inirq = false;
marcbax 0:c643d398cdb6 60 if(!inirq)
marcbax 0:c643d398cdb6 61 {
marcbax 0:c643d398cdb6 62 inirq = true;
marcbax 0:c643d398cdb6 63 Page::ShortBeep();
marcbax 0:c643d398cdb6 64
marcbax 0:c643d398cdb6 65 HAL::AT42QT2120::Status status;
marcbax 0:c643d398cdb6 66 if(at42qt2120.ReadStatus(status))
marcbax 0:c643d398cdb6 67 {
marcbax 0:c643d398cdb6 68 if(status.keyschanged)
marcbax 0:c643d398cdb6 69 {
marcbax 0:c643d398cdb6 70 key = status.keys;
marcbax 0:c643d398cdb6 71
marcbax 0:c643d398cdb6 72 if(status.keys & HAL::KEY0)
marcbax 0:c643d398cdb6 73 Log("Key 0");
marcbax 0:c643d398cdb6 74 if(status.keys & HAL::KEY1)
marcbax 0:c643d398cdb6 75 Log("Key 1");
marcbax 0:c643d398cdb6 76 if(status.keys & HAL::KEY2)
marcbax 0:c643d398cdb6 77 Log("Key 2");
marcbax 0:c643d398cdb6 78 if(status.keys & HAL::KEY3)
marcbax 0:c643d398cdb6 79 Log("Key 3");
marcbax 0:c643d398cdb6 80 if(status.keys & HAL::KEY4)
marcbax 0:c643d398cdb6 81 Log("Key 4");
marcbax 0:c643d398cdb6 82 if(status.keys & HAL::KEY5)
marcbax 0:c643d398cdb6 83 Log("Key 5");
marcbax 0:c643d398cdb6 84 if(status.keys & HAL::KEY6)
marcbax 0:c643d398cdb6 85 {
marcbax 0:c643d398cdb6 86 Log("Key 6");
marcbax 0:c643d398cdb6 87 hangmangame.currentpos = hangmangame.MoveCursor(hangmangame.alphabet, 6, hangmangame.oldpos);
marcbax 0:c643d398cdb6 88 Log("back in pagetouch");
marcbax 0:c643d398cdb6 89 }
marcbax 0:c643d398cdb6 90 if(status.keys & HAL::KEY7)
marcbax 0:c643d398cdb6 91 {
marcbax 0:c643d398cdb6 92 Log("Key 7");
marcbax 0:c643d398cdb6 93 hangmangame.currentpos = hangmangame.MoveCursor(hangmangame.alphabet, 7, hangmangame.oldpos);
marcbax 0:c643d398cdb6 94 }
marcbax 0:c643d398cdb6 95 if(status.keys & HAL::KEY8)
marcbax 0:c643d398cdb6 96 {
marcbax 0:c643d398cdb6 97 Log("Key 8");
marcbax 0:c643d398cdb6 98 }
marcbax 0:c643d398cdb6 99 if(status.keys & HAL::KEY9)
marcbax 0:c643d398cdb6 100 {
marcbax 0:c643d398cdb6 101 Log("Key 9");
marcbax 0:c643d398cdb6 102 hangmangame.currentpos = hangmangame.MoveCursor(hangmangame.alphabet, 9, hangmangame.oldpos);
marcbax 0:c643d398cdb6 103 }
marcbax 0:c643d398cdb6 104 if(status.keys & HAL::KEY10)
marcbax 0:c643d398cdb6 105 {
marcbax 0:c643d398cdb6 106 Log("Key 10");
marcbax 0:c643d398cdb6 107 hangmangame.currentpos = hangmangame.MoveCursor(hangmangame.alphabet, 10, hangmangame.oldpos);
marcbax 0:c643d398cdb6 108 }
marcbax 0:c643d398cdb6 109 if(status.keys & HAL::KEY11)
marcbax 0:c643d398cdb6 110 Log("Key 11");
marcbax 0:c643d398cdb6 111 }
marcbax 0:c643d398cdb6 112 if(status.sliderchanged)
marcbax 0:c643d398cdb6 113 {
marcbax 0:c643d398cdb6 114 printf("Slider/wheel: %x\n", status.slider);
marcbax 0:c643d398cdb6 115 }
marcbax 0:c643d398cdb6 116 }
marcbax 0:c643d398cdb6 117
marcbax 0:c643d398cdb6 118 inirq = false;
marcbax 0:c643d398cdb6 119 }
marcbax 0:c643d398cdb6 120 }
marcbax 0:c643d398cdb6 121
marcbax 0:c643d398cdb6 122 int PageTouch::GetKey()
marcbax 0:c643d398cdb6 123 {
marcbax 0:c643d398cdb6 124 int outkey = key;
marcbax 0:c643d398cdb6 125 key = 0;
marcbax 0:c643d398cdb6 126 return outkey;
marcbax 0:c643d398cdb6 127 }
marcbax 0:c643d398cdb6 128
marcbax 0:c643d398cdb6 129 /*
marcbax 0:c643d398cdb6 130 void PageTouch::HandlePageActions()
marcbax 0:c643d398cdb6 131 {
marcbax 0:c643d398cdb6 132 if (newtouch)
marcbax 0:c643d398cdb6 133 {
marcbax 0:c643d398cdb6 134 printf("%i \n", imgnumber);
marcbax 0:c643d398cdb6 135 pageflexenable.numimage = imgnumber;
marcbax 0:c643d398cdb6 136 //pageflexenable.UpdateImage();
marcbax 0:c643d398cdb6 137 newtouch = false;
marcbax 0:c643d398cdb6 138 }
marcbax 0:c643d398cdb6 139 }
marcbax 0:c643d398cdb6 140 */
marcbax 0:c643d398cdb6 141 } // End Flexbook namespace.
marcbax 0:c643d398cdb6 142
marcbax 0:c643d398cdb6 143
marcbax 0:c643d398cdb6 144