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
pagetouch.cpp
00001 // 00002 // Filename: pagetouch.cpp 00003 // 00004 // Flexbook page for page A4. 00005 // 00006 00007 #include "pagetouch.h" 00008 #include "pageflexenable.h" 00009 00010 #include "log.h" 00011 00012 #include <iostream> 00013 00014 namespace Flexbook { 00015 00016 PageTouch::PageTouch() 00017 : pageflexenable(), 00018 i2c(p28, p27), irq(p26), 00019 at42qt2120(i2c), key(0) 00020 { 00021 Log("Creating PageTouch"); 00022 00023 at42qt2120.SetSliderOptions(HAL::WHEEL); 00024 00025 at42qt2120.SetKeyControl(1, false, 2, false, true); 00026 at42qt2120.SetKeyControl(2, false, 2, false, true); 00027 at42qt2120.SetKeyControl(3, false, 2, false, true); 00028 00029 at42qt2120.SetKeyControl(5, false, 1, false, true); 00030 at42qt2120.SetKeyControl(6, false, 1, false, true); 00031 at42qt2120.SetKeyControl(7, false, 1, false, true); 00032 at42qt2120.SetKeyControl(8, false, 1, false, true); 00033 at42qt2120.SetKeyControl(9, false, 1, false, true); 00034 at42qt2120.SetKeyControl(10, false, 1, false, true); 00035 00036 irq.fall(callback(this, &Flexbook::PageTouch::TouchChange)); 00037 newtouch = false; 00038 imgnumber = 0; 00039 00040 #ifdef VERBOSE 00041 for(int n = 0; n < 99; n++) 00042 printf("Register %03d %02x\n", n, at42qt2120.Read((HAL::REG_AT42QT2120) n)); 00043 #endif 00044 } 00045 00046 PageTouch::~PageTouch() 00047 { 00048 Log("Deleting PageTouch"); 00049 00050 irq.disable_irq(); 00051 } 00052 00053 void PageTouch::TouchChange() 00054 { 00055 static volatile bool inirq = false; 00056 if(!inirq) 00057 { 00058 inirq = true; 00059 Page::ShortBeep(); 00060 00061 HAL::AT42QT2120::Status status; 00062 if(at42qt2120.ReadStatus(status)) 00063 { 00064 if(status.keyschanged) 00065 { 00066 key = status.keys; 00067 00068 if(status.keys & HAL::KEY0) 00069 Log("Key 0"); 00070 if(status.keys & HAL::KEY1) 00071 Log("Key 1"); 00072 if(status.keys & HAL::KEY2) 00073 Log("Key 2"); 00074 if(status.keys & HAL::KEY3) 00075 Log("Key 3"); 00076 if(status.keys & HAL::KEY4) 00077 Log("Key 4"); 00078 if(status.keys & HAL::KEY5) 00079 Log("Key 5"); 00080 if(status.keys & HAL::KEY6) 00081 { 00082 Log("Key 6"); 00083 if (imgnumber < 8) imgnumber = imgnumber + 1; 00084 printf("%i \n", imgnumber); 00085 pageflexenable.numimage = imgnumber; 00086 Log("number set"); 00087 //pageflexenable.UpdateImage(); 00088 Log("image updated"); 00089 } 00090 if(status.keys & HAL::KEY7) 00091 Log("Key 7"); 00092 if(status.keys & HAL::KEY8) 00093 Log("Key 8"); 00094 if(status.keys & HAL::KEY9) 00095 { 00096 Log("Key 9"); 00097 if (imgnumber > 0) imgnumber = imgnumber - 1; 00098 printf("%i \n", imgnumber); 00099 pageflexenable.numimage = imgnumber; 00100 Log("number set"); 00101 //pageflexenable.UpdateImage(); 00102 Log("image updated"); 00103 } 00104 if(status.keys & HAL::KEY10) 00105 Log("Key 10"); 00106 if(status.keys & HAL::KEY11) 00107 Log("Key 11"); 00108 } 00109 if(status.sliderchanged) 00110 { 00111 printf("Slider/wheel: %x\n", status.slider); 00112 } 00113 } 00114 00115 inirq = false; 00116 } 00117 } 00118 00119 int PageTouch::GetKey() 00120 { 00121 int outkey = key; 00122 key = 0; 00123 return outkey; 00124 } 00125 00126 /* 00127 void PageTouch::HandlePageActions() 00128 { 00129 if (newtouch) 00130 { 00131 printf("%i \n", imgnumber); 00132 pageflexenable.numimage = imgnumber; 00133 //pageflexenable.UpdateImage(); 00134 newtouch = false; 00135 } 00136 } 00137 */ 00138 } // End Flexbook namespace. 00139 00140 00141
Generated on Tue Jul 12 2022 21:14:35 by
