Ken Parish
/
XYZ_01
very rough at the mo
main.cpp@0:636856aa3373, 2014-06-24 (annotated)
- Committer:
- ghostaudio
- Date:
- Tue Jun 24 10:24:58 2014 +0000
- Revision:
- 0:636856aa3373
very rough at the mo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ghostaudio | 0:636856aa3373 | 1 | #include "mbed.h" |
ghostaudio | 0:636856aa3373 | 2 | #include "QT60486.h" |
ghostaudio | 0:636856aa3373 | 3 | |
ghostaudio | 0:636856aa3373 | 4 | #define NUM_KEYS 48 |
ghostaudio | 0:636856aa3373 | 5 | |
ghostaudio | 0:636856aa3373 | 6 | SPI captouch(p5,p6,p7); |
ghostaudio | 0:636856aa3373 | 7 | DigitalOut qt_cs (p8); |
ghostaudio | 0:636856aa3373 | 8 | DigitalOut qt_wake (p9); |
ghostaudio | 0:636856aa3373 | 9 | DigitalIn qt_drdy (p10); |
ghostaudio | 0:636856aa3373 | 10 | Serial pc(USBTX, USBRX); |
ghostaudio | 0:636856aa3373 | 11 | |
ghostaudio | 0:636856aa3373 | 12 | uint16_t keydata[NUM_KEYS]; |
ghostaudio | 0:636856aa3373 | 13 | uint16_t * p; |
ghostaudio | 0:636856aa3373 | 14 | |
ghostaudio | 0:636856aa3373 | 15 | void qt_signalAll(void); |
ghostaudio | 0:636856aa3373 | 16 | |
ghostaudio | 0:636856aa3373 | 17 | bool qt_proxsetup(void); |
ghostaudio | 0:636856aa3373 | 18 | |
ghostaudio | 0:636856aa3373 | 19 | bool qt_calAll(void); |
ghostaudio | 0:636856aa3373 | 20 | |
ghostaudio | 0:636856aa3373 | 21 | void setup() { |
ghostaudio | 0:636856aa3373 | 22 | pc.baud(38400); |
ghostaudio | 0:636856aa3373 | 23 | pc.printf("baudset\r\n"); |
ghostaudio | 0:636856aa3373 | 24 | captouch.format(8,3); |
ghostaudio | 0:636856aa3373 | 25 | pc.printf("formated\r\n"); |
ghostaudio | 0:636856aa3373 | 26 | qt_cs = 1; // set pin high, disables communication |
ghostaudio | 0:636856aa3373 | 27 | while(qt_proxsetup() == false) |
ghostaudio | 0:636856aa3373 | 28 | {;;} |
ghostaudio | 0:636856aa3373 | 29 | pc.printf("setup_done\r\n"); |
ghostaudio | 0:636856aa3373 | 30 | } |
ghostaudio | 0:636856aa3373 | 31 | |
ghostaudio | 0:636856aa3373 | 32 | |
ghostaudio | 0:636856aa3373 | 33 | int main() |
ghostaudio | 0:636856aa3373 | 34 | { |
ghostaudio | 0:636856aa3373 | 35 | setup(); |
ghostaudio | 0:636856aa3373 | 36 | |
ghostaudio | 0:636856aa3373 | 37 | qt_signalAll(); |
ghostaudio | 0:636856aa3373 | 38 | |
ghostaudio | 0:636856aa3373 | 39 | for(uint8_t i = 0; i < NUM_KEYS; i ++) |
ghostaudio | 0:636856aa3373 | 40 | { |
ghostaudio | 0:636856aa3373 | 41 | pc.printf("%i\t",keydata[i]); |
ghostaudio | 0:636856aa3373 | 42 | } |
ghostaudio | 0:636856aa3373 | 43 | pc.printf("\r\n"); |
ghostaudio | 0:636856aa3373 | 44 | |
ghostaudio | 0:636856aa3373 | 45 | wait(0.001); |
ghostaudio | 0:636856aa3373 | 46 | } |
ghostaudio | 0:636856aa3373 | 47 | |
ghostaudio | 0:636856aa3373 | 48 | |
ghostaudio | 0:636856aa3373 | 49 | void qt_signalAll(void) |
ghostaudio | 0:636856aa3373 | 50 | { |
ghostaudio | 0:636856aa3373 | 51 | qt_cs = 0; |
ghostaudio | 0:636856aa3373 | 52 | captouch.write(SIGNAL_ALL); |
ghostaudio | 0:636856aa3373 | 53 | while(qt_drdy == 0){ |
ghostaudio | 0:636856aa3373 | 54 | for(uint8_t i = 0; i < NUM_KEYS; i ++ ){ |
ghostaudio | 0:636856aa3373 | 55 | keydata[i] = ((captouch.write(0x00) << 8) & captouch.write(0x00)); |
ghostaudio | 0:636856aa3373 | 56 | } |
ghostaudio | 0:636856aa3373 | 57 | } |
ghostaudio | 0:636856aa3373 | 58 | |
ghostaudio | 0:636856aa3373 | 59 | }; |
ghostaudio | 0:636856aa3373 | 60 | |
ghostaudio | 0:636856aa3373 | 61 | |
ghostaudio | 0:636856aa3373 | 62 | |
ghostaudio | 0:636856aa3373 | 63 | |
ghostaudio | 0:636856aa3373 | 64 | |
ghostaudio | 0:636856aa3373 | 65 | bool qt_proxsetup(void) |
ghostaudio | 0:636856aa3373 | 66 | { |
ghostaudio | 0:636856aa3373 | 67 | //bool ret = false; |
ghostaudio | 0:636856aa3373 | 68 | //qt_cs = 0; |
ghostaudio | 0:636856aa3373 | 69 | //uint8_t ret = 0x00; |
ghostaudio | 0:636856aa3373 | 70 | //while(captouch.write(0x0F) != 0xF0) |
ghostaudio | 0:636856aa3373 | 71 | // {;;} |
ghostaudio | 0:636856aa3373 | 72 | //ret = captouch.write(ENTER_SETUP); |
ghostaudio | 0:636856aa3373 | 73 | //ret = captouch.write(ENTER_SETUP); |
ghostaudio | 0:636856aa3373 | 74 | |
ghostaudio | 0:636856aa3373 | 75 | //while(captouch.write(0x00) != 0xFE) |
ghostaudio | 0:636856aa3373 | 76 | // {;;} |
ghostaudio | 0:636856aa3373 | 77 | |
ghostaudio | 0:636856aa3373 | 78 | // captouch.write(0x00); |
ghostaudio | 0:636856aa3373 | 79 | // captouch.write(0x00); |
ghostaudio | 0:636856aa3373 | 80 | |
ghostaudio | 0:636856aa3373 | 81 | // qt_cs = 1; |
ghostaudio | 0:636856aa3373 | 82 | |
ghostaudio | 0:636856aa3373 | 83 | // wait(0.025); |
ghostaudio | 0:636856aa3373 | 84 | |
ghostaudio | 0:636856aa3373 | 85 | qt_cs = 0; |
ghostaudio | 0:636856aa3373 | 86 | |
ghostaudio | 0:636856aa3373 | 87 | //captouch.write(FORCE_RESET); |
ghostaudio | 0:636856aa3373 | 88 | |
ghostaudio | 0:636856aa3373 | 89 | //while(captouch.write(0x0F) != 0xF0) |
ghostaudio | 0:636856aa3373 | 90 | // {;;} |
ghostaudio | 0:636856aa3373 | 91 | |
ghostaudio | 0:636856aa3373 | 92 | while(qt_calAll() == false) |
ghostaudio | 0:636856aa3373 | 93 | {;;} |
ghostaudio | 0:636856aa3373 | 94 | |
ghostaudio | 0:636856aa3373 | 95 | pc.printf("caldone\r\n"); |
ghostaudio | 0:636856aa3373 | 96 | captouch.write(REPORT_FIRST); |
ghostaudio | 0:636856aa3373 | 97 | |
ghostaudio | 0:636856aa3373 | 98 | if (qt_drdy == 0) { |
ghostaudio | 0:636856aa3373 | 99 | while (qt_drdy == 0) |
ghostaudio | 0:636856aa3373 | 100 | {;;} |
ghostaudio | 0:636856aa3373 | 101 | } |
ghostaudio | 0:636856aa3373 | 102 | |
ghostaudio | 0:636856aa3373 | 103 | if (captouch.write(0x00) != 0x3F) |
ghostaudio | 0:636856aa3373 | 104 | {qt_calAll(); |
ghostaudio | 0:636856aa3373 | 105 | } |
ghostaudio | 0:636856aa3373 | 106 | while(qt_calAll() == false) |
ghostaudio | 0:636856aa3373 | 107 | {;;} |
ghostaudio | 0:636856aa3373 | 108 | |
ghostaudio | 0:636856aa3373 | 109 | return true; |
ghostaudio | 0:636856aa3373 | 110 | }; |
ghostaudio | 0:636856aa3373 | 111 | |
ghostaudio | 0:636856aa3373 | 112 | |
ghostaudio | 0:636856aa3373 | 113 | bool qt_calAll(void) |
ghostaudio | 0:636856aa3373 | 114 | { |
ghostaudio | 0:636856aa3373 | 115 | pc.printf("calibrating...\r\n"); |
ghostaudio | 0:636856aa3373 | 116 | bool ret = false; |
ghostaudio | 0:636856aa3373 | 117 | captouch.write(CAL_ALL); |
ghostaudio | 0:636856aa3373 | 118 | if (qt_drdy == 0) { |
ghostaudio | 0:636856aa3373 | 119 | while (qt_drdy == 0) |
ghostaudio | 0:636856aa3373 | 120 | {;;} |
ghostaudio | 0:636856aa3373 | 121 | } |
ghostaudio | 0:636856aa3373 | 122 | captouch.write(CAL_ALL); |
ghostaudio | 0:636856aa3373 | 123 | if (qt_drdy == 0) { |
ghostaudio | 0:636856aa3373 | 124 | while (qt_drdy == 0) |
ghostaudio | 0:636856aa3373 | 125 | {;;} |
ghostaudio | 0:636856aa3373 | 126 | } |
ghostaudio | 0:636856aa3373 | 127 | pc.printf("comms...\r\n"); |
ghostaudio | 0:636856aa3373 | 128 | while(captouch.write(0x00) != 0xFC) |
ghostaudio | 0:636856aa3373 | 129 | {;;} |
ghostaudio | 0:636856aa3373 | 130 | |
ghostaudio | 0:636856aa3373 | 131 | //uint8_t genstat = captouch.write(GENERAL_STATUS); |
ghostaudio | 0:636856aa3373 | 132 | //ret = !(genstat & 0x04); |
ghostaudio | 0:636856aa3373 | 133 | ret = true; |
ghostaudio | 0:636856aa3373 | 134 | pc.printf("ret %i\r\n", ret); |
ghostaudio | 0:636856aa3373 | 135 | return ret; |
ghostaudio | 0:636856aa3373 | 136 | } |
ghostaudio | 0:636856aa3373 | 137 | |
ghostaudio | 0:636856aa3373 | 138 | |
ghostaudio | 0:636856aa3373 | 139 | |
ghostaudio | 0:636856aa3373 | 140 | |
ghostaudio | 0:636856aa3373 | 141 | |
ghostaudio | 0:636856aa3373 | 142 | |
ghostaudio | 0:636856aa3373 | 143 |