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.
main.cpp@1:51a340435086, 2015-04-17 (annotated)
- Committer:
- 4000263
- Date:
- Fri Apr 17 01:50:54 2015 +0000
- Revision:
- 1:51a340435086
- Parent:
- 0:2ead13cba2ae
galvano
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
4000263 | 0:2ead13cba2ae | 1 | //********************************************************************** |
4000263 | 0:2ead13cba2ae | 2 | #include "mbed.h" |
4000263 | 0:2ead13cba2ae | 3 | #include "TextLCD.h" |
4000263 | 0:2ead13cba2ae | 4 | |
4000263 | 0:2ead13cba2ae | 5 | #include "star.h" |
4000263 | 0:2ead13cba2ae | 6 | #include "square.h" |
4000263 | 0:2ead13cba2ae | 7 | #include "jibanyan.h" |
4000263 | 0:2ead13cba2ae | 8 | |
4000263 | 1:51a340435086 | 9 | #include "crescent_moon_edge.h" |
4000263 | 1:51a340435086 | 10 | #include "crescent_moon_mesh.h" |
4000263 | 1:51a340435086 | 11 | |
4000263 | 1:51a340435086 | 12 | |
4000263 | 1:51a340435086 | 13 | #include "blktest.h" |
4000263 | 1:51a340435086 | 14 | #include "blktest2.h" |
4000263 | 1:51a340435086 | 15 | |
4000263 | 1:51a340435086 | 16 | #include "square_160x120_raster.h" |
4000263 | 1:51a340435086 | 17 | #include "square_160x120_vector.h" |
4000263 | 1:51a340435086 | 18 | #include "square_160x120_vector_half.h" |
4000263 | 1:51a340435086 | 19 | #include "square_160x120_hybrid.h" |
4000263 | 1:51a340435086 | 20 | |
4000263 | 1:51a340435086 | 21 | #include "square_full_vector.h" |
4000263 | 1:51a340435086 | 22 | #include "square_L_vector.h" |
4000263 | 1:51a340435086 | 23 | #include "square_M_vector.h" |
4000263 | 1:51a340435086 | 24 | #include "square_S_vector.h" |
4000263 | 1:51a340435086 | 25 | |
4000263 | 1:51a340435086 | 26 | |
4000263 | 0:2ead13cba2ae | 27 | #include <stdlib.h> |
4000263 | 0:2ead13cba2ae | 28 | |
4000263 | 0:2ead13cba2ae | 29 | |
4000263 | 0:2ead13cba2ae | 30 | Serial pc(USBTX, USBRX); // tx, rx |
4000263 | 0:2ead13cba2ae | 31 | TextLCD lcd(p26, p25, p24, p23, p22, p21); // rs, e, d4-d7 |
4000263 | 0:2ead13cba2ae | 32 | |
4000263 | 0:2ead13cba2ae | 33 | SPI spi(p11, p12, p13); // mosi, miso, sclk |
4000263 | 0:2ead13cba2ae | 34 | DigitalOut CS(p10); |
4000263 | 0:2ead13cba2ae | 35 | DigitalOut LDAC(p9); |
4000263 | 0:2ead13cba2ae | 36 | |
4000263 | 0:2ead13cba2ae | 37 | DigitalOut BLK(p8); // laser blanking |
4000263 | 0:2ead13cba2ae | 38 | |
4000263 | 0:2ead13cba2ae | 39 | #define CHA 0x7000 // //0x0000 //0x7000 |
4000263 | 0:2ead13cba2ae | 40 | #define CHB 0xF000 // //0x8000 //0xF000 |
4000263 | 1:51a340435086 | 41 | #define BLK_DELAY 80 // < 100 default |
4000263 | 1:51a340435086 | 42 | //#define BLK_DELAY 160 // < 100 |
4000263 | 1:51a340435086 | 43 | |
4000263 | 0:2ead13cba2ae | 44 | |
4000263 | 0:2ead13cba2ae | 45 | //********************************************************************** |
4000263 | 0:2ead13cba2ae | 46 | |
4000263 | 0:2ead13cba2ae | 47 | void mcp4922DataSet(char ch, uint16_t dt) |
4000263 | 0:2ead13cba2ae | 48 | { |
4000263 | 0:2ead13cba2ae | 49 | if (dt >= 4096) { |
4000263 | 0:2ead13cba2ae | 50 | //return; |
4000263 | 0:2ead13cba2ae | 51 | dt = dt &0x0FFF; |
4000263 | 0:2ead13cba2ae | 52 | } |
4000263 | 0:2ead13cba2ae | 53 | //return; |
4000263 | 0:2ead13cba2ae | 54 | // |
4000263 | 0:2ead13cba2ae | 55 | if (ch == 'A') { |
4000263 | 0:2ead13cba2ae | 56 | dt = CHA | dt ; //dt = 0b0111000000000000 | dt; |
4000263 | 0:2ead13cba2ae | 57 | } else { |
4000263 | 0:2ead13cba2ae | 58 | dt = CHB | dt ; //dt = 0b1111000000000000 | dt; |
4000263 | 0:2ead13cba2ae | 59 | } |
4000263 | 0:2ead13cba2ae | 60 | // |
4000263 | 0:2ead13cba2ae | 61 | CS = 0; |
4000263 | 0:2ead13cba2ae | 62 | |
4000263 | 0:2ead13cba2ae | 63 | spi.write(dt); |
4000263 | 0:2ead13cba2ae | 64 | //LPC_SSP0->DR = dt; // | 0x10000; //hardware dependent |
4000263 | 0:2ead13cba2ae | 65 | //while(1) { |
4000263 | 0:2ead13cba2ae | 66 | // if( (LPC_SSP0->SR &0x13) == 3) break; |
4000263 | 0:2ead13cba2ae | 67 | //} |
4000263 | 0:2ead13cba2ae | 68 | |
4000263 | 0:2ead13cba2ae | 69 | CS = 1; |
4000263 | 0:2ead13cba2ae | 70 | } |
4000263 | 0:2ead13cba2ae | 71 | |
4000263 | 0:2ead13cba2ae | 72 | //********************************************************************** |
4000263 | 0:2ead13cba2ae | 73 | |
4000263 | 0:2ead13cba2ae | 74 | void mcp4922Init() |
4000263 | 0:2ead13cba2ae | 75 | { |
4000263 | 0:2ead13cba2ae | 76 | CS = 1; |
4000263 | 0:2ead13cba2ae | 77 | // SCK = 0; |
4000263 | 0:2ead13cba2ae | 78 | // SDI = 0; |
4000263 | 0:2ead13cba2ae | 79 | CS = 0; |
4000263 | 0:2ead13cba2ae | 80 | LDAC = 1; |
4000263 | 0:2ead13cba2ae | 81 | // |
4000263 | 0:2ead13cba2ae | 82 | mcp4922DataSet('A', 0); |
4000263 | 0:2ead13cba2ae | 83 | mcp4922DataSet('B', 0); |
4000263 | 0:2ead13cba2ae | 84 | } |
4000263 | 0:2ead13cba2ae | 85 | |
4000263 | 0:2ead13cba2ae | 86 | |
4000263 | 0:2ead13cba2ae | 87 | |
4000263 | 0:2ead13cba2ae | 88 | void high_flat(void) |
4000263 | 0:2ead13cba2ae | 89 | { |
4000263 | 0:2ead13cba2ae | 90 | while(1) { |
4000263 | 0:2ead13cba2ae | 91 | mcp4922DataSet('A', 4095);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 92 | mcp4922DataSet('B', 4095);//wait_us(20); |
4000263 | 1:51a340435086 | 93 | |
4000263 | 0:2ead13cba2ae | 94 | LDAC = 0; |
4000263 | 0:2ead13cba2ae | 95 | LDAC = 1; |
4000263 | 1:51a340435086 | 96 | wait_us(100); |
4000263 | 0:2ead13cba2ae | 97 | } |
4000263 | 0:2ead13cba2ae | 98 | } |
4000263 | 0:2ead13cba2ae | 99 | |
4000263 | 0:2ead13cba2ae | 100 | |
4000263 | 0:2ead13cba2ae | 101 | void triangle2(void) |
4000263 | 0:2ead13cba2ae | 102 | { |
4000263 | 0:2ead13cba2ae | 103 | int i=0; |
4000263 | 0:2ead13cba2ae | 104 | |
4000263 | 0:2ead13cba2ae | 105 | while(1) { |
4000263 | 0:2ead13cba2ae | 106 | i++; |
4000263 | 0:2ead13cba2ae | 107 | if (i == 256) i = 0; |
4000263 | 0:2ead13cba2ae | 108 | else if (i < 128) { |
4000263 | 0:2ead13cba2ae | 109 | mcp4922DataSet('A', (i<<1)<<4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 110 | mcp4922DataSet('B', (i<<1)<<4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 111 | } else { |
4000263 | 0:2ead13cba2ae | 112 | mcp4922DataSet('A', ((255 - i)<<1)<<4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 113 | mcp4922DataSet('B', ((255 - i)<<1)<<4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 114 | } |
4000263 | 0:2ead13cba2ae | 115 | LDAC = 0; |
4000263 | 0:2ead13cba2ae | 116 | LDAC = 1; |
4000263 | 0:2ead13cba2ae | 117 | BLK = i % 2; |
4000263 | 0:2ead13cba2ae | 118 | wait_us(100); |
4000263 | 0:2ead13cba2ae | 119 | } |
4000263 | 0:2ead13cba2ae | 120 | } |
4000263 | 0:2ead13cba2ae | 121 | |
4000263 | 0:2ead13cba2ae | 122 | |
4000263 | 0:2ead13cba2ae | 123 | /* |
4000263 | 0:2ead13cba2ae | 124 | void star(void) |
4000263 | 0:2ead13cba2ae | 125 | { |
4000263 | 0:2ead13cba2ae | 126 | int i=0; |
4000263 | 0:2ead13cba2ae | 127 | uint16_t x,y; |
4000263 | 0:2ead13cba2ae | 128 | |
4000263 | 0:2ead13cba2ae | 129 | while(1) { |
4000263 | 0:2ead13cba2ae | 130 | x = star001[i++]; |
4000263 | 0:2ead13cba2ae | 131 | y = star001[i++]; |
4000263 | 0:2ead13cba2ae | 132 | if (x == 0 && y == 0) { |
4000263 | 0:2ead13cba2ae | 133 | i = 0; |
4000263 | 0:2ead13cba2ae | 134 | } |
4000263 | 0:2ead13cba2ae | 135 | x += 32767; |
4000263 | 0:2ead13cba2ae | 136 | y += 32767; |
4000263 | 0:2ead13cba2ae | 137 | x = 65535 - x; // X-axis invert |
4000263 | 0:2ead13cba2ae | 138 | mcp4922DataSet('A', x>>4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 139 | mcp4922DataSet('B', y>>4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 140 | LDAC = 0; |
4000263 | 0:2ead13cba2ae | 141 | LDAC = 1; |
4000263 | 0:2ead13cba2ae | 142 | wait_us(100); |
4000263 | 0:2ead13cba2ae | 143 | |
4000263 | 0:2ead13cba2ae | 144 | } |
4000263 | 0:2ead13cba2ae | 145 | } |
4000263 | 0:2ead13cba2ae | 146 | */ |
4000263 | 0:2ead13cba2ae | 147 | /* |
4000263 | 0:2ead13cba2ae | 148 | void jibanyan(void) |
4000263 | 0:2ead13cba2ae | 149 | { |
4000263 | 0:2ead13cba2ae | 150 | int i=0; |
4000263 | 0:2ead13cba2ae | 151 | uint16_t x,y; |
4000263 | 0:2ead13cba2ae | 152 | |
4000263 | 0:2ead13cba2ae | 153 | while(1) { |
4000263 | 0:2ead13cba2ae | 154 | x = jibanyan001[i++]; |
4000263 | 0:2ead13cba2ae | 155 | y = jibanyan001[i++]; |
4000263 | 0:2ead13cba2ae | 156 | if (x == 0 && y == 0) { |
4000263 | 0:2ead13cba2ae | 157 | i = 0; |
4000263 | 0:2ead13cba2ae | 158 | } |
4000263 | 0:2ead13cba2ae | 159 | x += 32767; |
4000263 | 0:2ead13cba2ae | 160 | y += 32767; |
4000263 | 0:2ead13cba2ae | 161 | x = 65535 - x; // X-axis invert |
4000263 | 0:2ead13cba2ae | 162 | mcp4922DataSet('A', x>>4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 163 | mcp4922DataSet('B', y>>4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 164 | LDAC = 0; |
4000263 | 0:2ead13cba2ae | 165 | LDAC = 1; |
4000263 | 0:2ead13cba2ae | 166 | wait_us(100); |
4000263 | 0:2ead13cba2ae | 167 | |
4000263 | 0:2ead13cba2ae | 168 | } |
4000263 | 0:2ead13cba2ae | 169 | } |
4000263 | 0:2ead13cba2ae | 170 | */ |
4000263 | 0:2ead13cba2ae | 171 | |
4000263 | 0:2ead13cba2ae | 172 | /* |
4000263 | 0:2ead13cba2ae | 173 | void square(void) |
4000263 | 0:2ead13cba2ae | 174 | { |
4000263 | 0:2ead13cba2ae | 175 | int i=0; |
4000263 | 0:2ead13cba2ae | 176 | uint16_t x,y; |
4000263 | 0:2ead13cba2ae | 177 | bool b; |
4000263 | 0:2ead13cba2ae | 178 | |
4000263 | 0:2ead13cba2ae | 179 | while(1) { |
4000263 | 0:2ead13cba2ae | 180 | b = square001[i++]; |
4000263 | 0:2ead13cba2ae | 181 | x = square001[i++]; |
4000263 | 0:2ead13cba2ae | 182 | y = square001[i++]; |
4000263 | 0:2ead13cba2ae | 183 | if (x == 0 && y == 0) { |
4000263 | 0:2ead13cba2ae | 184 | i = 0; |
4000263 | 0:2ead13cba2ae | 185 | } |
4000263 | 0:2ead13cba2ae | 186 | x += 32767; |
4000263 | 0:2ead13cba2ae | 187 | y += 32767; |
4000263 | 0:2ead13cba2ae | 188 | mcp4922DataSet('A', x>>4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 189 | mcp4922DataSet('B', y>>4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 190 | LDAC = 0; |
4000263 | 0:2ead13cba2ae | 191 | LDAC = 1; |
4000263 | 0:2ead13cba2ae | 192 | BLK = b; |
4000263 | 0:2ead13cba2ae | 193 | // wait_us(400); |
4000263 | 0:2ead13cba2ae | 194 | wait_us(2000); |
4000263 | 0:2ead13cba2ae | 195 | |
4000263 | 0:2ead13cba2ae | 196 | } |
4000263 | 0:2ead13cba2ae | 197 | |
4000263 | 0:2ead13cba2ae | 198 | } |
4000263 | 0:2ead13cba2ae | 199 | */ |
4000263 | 0:2ead13cba2ae | 200 | |
4000263 | 0:2ead13cba2ae | 201 | |
4000263 | 0:2ead13cba2ae | 202 | |
4000263 | 0:2ead13cba2ae | 203 | /* |
4000263 | 0:2ead13cba2ae | 204 | void square(void) |
4000263 | 0:2ead13cba2ae | 205 | { |
4000263 | 0:2ead13cba2ae | 206 | int i=0; |
4000263 | 0:2ead13cba2ae | 207 | uint16_t x,y; |
4000263 | 0:2ead13cba2ae | 208 | |
4000263 | 0:2ead13cba2ae | 209 | while(1) { |
4000263 | 0:2ead13cba2ae | 210 | x = square001[i++]; |
4000263 | 0:2ead13cba2ae | 211 | y = square001[i++]; |
4000263 | 0:2ead13cba2ae | 212 | if (x == 0 && y == 0) { |
4000263 | 0:2ead13cba2ae | 213 | i = 0; |
4000263 | 0:2ead13cba2ae | 214 | } |
4000263 | 0:2ead13cba2ae | 215 | x += 32767; |
4000263 | 0:2ead13cba2ae | 216 | y += 32767; |
4000263 | 0:2ead13cba2ae | 217 | x = 65535 - x; // X-axis invert |
4000263 | 0:2ead13cba2ae | 218 | mcp4922DataSet('A', x>>4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 219 | mcp4922DataSet('B', y>>4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 220 | LDAC = 0; |
4000263 | 0:2ead13cba2ae | 221 | LDAC = 1; |
4000263 | 0:2ead13cba2ae | 222 | wait_us(100); |
4000263 | 0:2ead13cba2ae | 223 | |
4000263 | 0:2ead13cba2ae | 224 | } |
4000263 | 0:2ead13cba2ae | 225 | |
4000263 | 0:2ead13cba2ae | 226 | } |
4000263 | 0:2ead13cba2ae | 227 | */ |
4000263 | 0:2ead13cba2ae | 228 | |
4000263 | 0:2ead13cba2ae | 229 | |
4000263 | 0:2ead13cba2ae | 230 | |
4000263 | 0:2ead13cba2ae | 231 | |
4000263 | 0:2ead13cba2ae | 232 | |
4000263 | 0:2ead13cba2ae | 233 | Ticker timer; |
4000263 | 0:2ead13cba2ae | 234 | |
4000263 | 0:2ead13cba2ae | 235 | uint8_t CNT=0; |
4000263 | 0:2ead13cba2ae | 236 | // timer.attach(&int_timer, 1); // 1 second |
4000263 | 0:2ead13cba2ae | 237 | void int_timer(void) |
4000263 | 0:2ead13cba2ae | 238 | { |
4000263 | 0:2ead13cba2ae | 239 | CNT++; |
4000263 | 0:2ead13cba2ae | 240 | } |
4000263 | 0:2ead13cba2ae | 241 | |
4000263 | 0:2ead13cba2ae | 242 | |
4000263 | 0:2ead13cba2ae | 243 | |
4000263 | 1:51a340435086 | 244 | void laserscan(const int *p, const int num) |
4000263 | 0:2ead13cba2ae | 245 | { |
4000263 | 0:2ead13cba2ae | 246 | int i = 0; |
4000263 | 0:2ead13cba2ae | 247 | uint16_t x,y = 0; |
4000263 | 0:2ead13cba2ae | 248 | |
4000263 | 0:2ead13cba2ae | 249 | // while(1) { |
4000263 | 0:2ead13cba2ae | 250 | while(CNT < 5) { |
4000263 | 0:2ead13cba2ae | 251 | |
4000263 | 0:2ead13cba2ae | 252 | x = *(p + i++); |
4000263 | 0:2ead13cba2ae | 253 | y = *(p + i++); |
4000263 | 0:2ead13cba2ae | 254 | |
4000263 | 1:51a340435086 | 255 | // if (x == 0 && y == 0) { |
4000263 | 1:51a340435086 | 256 | // i = 0; |
4000263 | 1:51a340435086 | 257 | // } |
4000263 | 1:51a340435086 | 258 | |
4000263 | 1:51a340435086 | 259 | if (i == num) { |
4000263 | 0:2ead13cba2ae | 260 | i = 0; |
4000263 | 0:2ead13cba2ae | 261 | } |
4000263 | 0:2ead13cba2ae | 262 | |
4000263 | 0:2ead13cba2ae | 263 | x += 32767; |
4000263 | 0:2ead13cba2ae | 264 | y += 32767; |
4000263 | 0:2ead13cba2ae | 265 | x = 65535 - x; // X-axis invert |
4000263 | 0:2ead13cba2ae | 266 | |
4000263 | 0:2ead13cba2ae | 267 | mcp4922DataSet('A', x>>4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 268 | mcp4922DataSet('B', y>>4);//wait_us(20); |
4000263 | 0:2ead13cba2ae | 269 | |
4000263 | 0:2ead13cba2ae | 270 | LDAC = 0; |
4000263 | 0:2ead13cba2ae | 271 | LDAC = 1; |
4000263 | 0:2ead13cba2ae | 272 | |
4000263 | 0:2ead13cba2ae | 273 | wait_us(100); |
4000263 | 0:2ead13cba2ae | 274 | } |
4000263 | 0:2ead13cba2ae | 275 | CNT = 0; |
4000263 | 0:2ead13cba2ae | 276 | } |
4000263 | 0:2ead13cba2ae | 277 | |
4000263 | 0:2ead13cba2ae | 278 | |
4000263 | 1:51a340435086 | 279 | // add laser blanking control |
4000263 | 1:51a340435086 | 280 | void laserscan_blk(const int *p, const int num) |
4000263 | 1:51a340435086 | 281 | { |
4000263 | 1:51a340435086 | 282 | int i = 0; |
4000263 | 1:51a340435086 | 283 | uint16_t x,y = 0; |
4000263 | 1:51a340435086 | 284 | bool b = 0; |
4000263 | 1:51a340435086 | 285 | |
4000263 | 1:51a340435086 | 286 | // while(1) { |
4000263 | 1:51a340435086 | 287 | while(CNT < 5) { |
4000263 | 1:51a340435086 | 288 | |
4000263 | 1:51a340435086 | 289 | b = *(p + i++); |
4000263 | 1:51a340435086 | 290 | x = *(p + i++); |
4000263 | 1:51a340435086 | 291 | y = *(p + i++); |
4000263 | 0:2ead13cba2ae | 292 | |
4000263 | 1:51a340435086 | 293 | // if (x == 0 && y == 0) { |
4000263 | 1:51a340435086 | 294 | // i = 0; |
4000263 | 1:51a340435086 | 295 | // } |
4000263 | 1:51a340435086 | 296 | |
4000263 | 1:51a340435086 | 297 | if (i == num) { |
4000263 | 1:51a340435086 | 298 | i = 0; |
4000263 | 1:51a340435086 | 299 | } |
4000263 | 1:51a340435086 | 300 | |
4000263 | 1:51a340435086 | 301 | x += 32767; |
4000263 | 1:51a340435086 | 302 | y += 32767; |
4000263 | 1:51a340435086 | 303 | x = 65535 - x; // X-axis invert |
4000263 | 1:51a340435086 | 304 | |
4000263 | 1:51a340435086 | 305 | mcp4922DataSet('A', x>>4);//wait_us(20); |
4000263 | 1:51a340435086 | 306 | mcp4922DataSet('B', y>>4);//wait_us(20); |
4000263 | 1:51a340435086 | 307 | LDAC = 0; |
4000263 | 1:51a340435086 | 308 | LDAC = 1; |
4000263 | 1:51a340435086 | 309 | |
4000263 | 1:51a340435086 | 310 | wait_us(BLK_DELAY); |
4000263 | 1:51a340435086 | 311 | // BLK = b; |
4000263 | 1:51a340435086 | 312 | BLK = 1; |
4000263 | 1:51a340435086 | 313 | |
4000263 | 1:51a340435086 | 314 | wait_us(200 - BLK_DELAY); // default |
4000263 | 1:51a340435086 | 315 | // wait_us(400 - BLK_DELAY); |
4000263 | 1:51a340435086 | 316 | |
4000263 | 1:51a340435086 | 317 | } |
4000263 | 1:51a340435086 | 318 | CNT = 0; |
4000263 | 1:51a340435086 | 319 | } |
4000263 | 1:51a340435086 | 320 | |
4000263 | 1:51a340435086 | 321 | |
4000263 | 1:51a340435086 | 322 | // serial com test |
4000263 | 1:51a340435086 | 323 | void laserscan_com(void) |
4000263 | 1:51a340435086 | 324 | { |
4000263 | 1:51a340435086 | 325 | int i = 0; |
4000263 | 1:51a340435086 | 326 | int buff[4] = {0,0,0,0}; |
4000263 | 1:51a340435086 | 327 | uint16_t x,y = 0; |
4000263 | 1:51a340435086 | 328 | |
4000263 | 1:51a340435086 | 329 | while(1) { |
4000263 | 1:51a340435086 | 330 | |
4000263 | 1:51a340435086 | 331 | for (i = 0; i < 4; i++) { |
4000263 | 1:51a340435086 | 332 | char c = pc.getc(); |
4000263 | 1:51a340435086 | 333 | buff[i] = c; |
4000263 | 1:51a340435086 | 334 | // lcd.printf("%02X",buff[i]); |
4000263 | 1:51a340435086 | 335 | |
4000263 | 1:51a340435086 | 336 | } |
4000263 | 1:51a340435086 | 337 | |
4000263 | 1:51a340435086 | 338 | // lcd.printf("\n"); |
4000263 | 1:51a340435086 | 339 | |
4000263 | 1:51a340435086 | 340 | x = (buff[1] << 8) + buff[0]; |
4000263 | 1:51a340435086 | 341 | y = (buff[3] << 8) + buff[2]; |
4000263 | 1:51a340435086 | 342 | // lcd.printf("x=%04X,y=%04X\n",x,y); |
4000263 | 1:51a340435086 | 343 | |
4000263 | 1:51a340435086 | 344 | if (x == 0 && y == 0) { |
4000263 | 1:51a340435086 | 345 | i = 0; |
4000263 | 1:51a340435086 | 346 | } |
4000263 | 1:51a340435086 | 347 | |
4000263 | 1:51a340435086 | 348 | x += 32767; |
4000263 | 1:51a340435086 | 349 | y += 32767; |
4000263 | 1:51a340435086 | 350 | x = 65535 - x; // X-axis invert |
4000263 | 1:51a340435086 | 351 | |
4000263 | 1:51a340435086 | 352 | mcp4922DataSet('A', x>>4);//wait_us(20); |
4000263 | 1:51a340435086 | 353 | mcp4922DataSet('B', y>>4);//wait_us(20); |
4000263 | 1:51a340435086 | 354 | |
4000263 | 1:51a340435086 | 355 | LDAC = 0; |
4000263 | 1:51a340435086 | 356 | LDAC = 1; |
4000263 | 1:51a340435086 | 357 | |
4000263 | 1:51a340435086 | 358 | wait_us(100); |
4000263 | 1:51a340435086 | 359 | } |
4000263 | 1:51a340435086 | 360 | } |
4000263 | 0:2ead13cba2ae | 361 | |
4000263 | 0:2ead13cba2ae | 362 | |
4000263 | 0:2ead13cba2ae | 363 | |
4000263 | 0:2ead13cba2ae | 364 | |
4000263 | 0:2ead13cba2ae | 365 | |
4000263 | 0:2ead13cba2ae | 366 | int main(void) |
4000263 | 0:2ead13cba2ae | 367 | { |
4000263 | 0:2ead13cba2ae | 368 | |
4000263 | 0:2ead13cba2ae | 369 | spi.format(16,0); |
4000263 | 0:2ead13cba2ae | 370 | spi.frequency(20000000); |
4000263 | 0:2ead13cba2ae | 371 | |
4000263 | 1:51a340435086 | 372 | pc.baud(230400); |
4000263 | 1:51a340435086 | 373 | |
4000263 | 0:2ead13cba2ae | 374 | mcp4922Init(); |
4000263 | 0:2ead13cba2ae | 375 | |
4000263 | 0:2ead13cba2ae | 376 | timer.attach(&int_timer, 1); |
4000263 | 0:2ead13cba2ae | 377 | |
4000263 | 0:2ead13cba2ae | 378 | /* |
4000263 | 0:2ead13cba2ae | 379 | while(1) { |
4000263 | 0:2ead13cba2ae | 380 | char c = pc.getc(); |
4000263 | 0:2ead13cba2ae | 381 | lcd.printf("%02X",c); |
4000263 | 0:2ead13cba2ae | 382 | |
4000263 | 0:2ead13cba2ae | 383 | // char str[] = "145"; |
4000263 | 0:2ead13cba2ae | 384 | // int buff = atoi(str); |
4000263 | 0:2ead13cba2ae | 385 | // lcd.printf("%02X",buff); |
4000263 | 0:2ead13cba2ae | 386 | |
4000263 | 0:2ead13cba2ae | 387 | laserscan(c); |
4000263 | 0:2ead13cba2ae | 388 | |
4000263 | 0:2ead13cba2ae | 389 | } |
4000263 | 0:2ead13cba2ae | 390 | */ |
4000263 | 0:2ead13cba2ae | 391 | |
4000263 | 1:51a340435086 | 392 | // triangle2(); |
4000263 | 1:51a340435086 | 393 | // high_flat(); |
4000263 | 0:2ead13cba2ae | 394 | |
4000263 | 0:2ead13cba2ae | 395 | while(1) { |
4000263 | 1:51a340435086 | 396 | |
4000263 | 1:51a340435086 | 397 | // non blanking control |
4000263 | 1:51a340435086 | 398 | // laserscan(jibanyan,jibanyan_dnum); |
4000263 | 1:51a340435086 | 399 | // laserscan(star,star_dnum); |
4000263 | 1:51a340435086 | 400 | // laserscan(crescent_moon_edge,crescent_moon_edge_dnum); |
4000263 | 1:51a340435086 | 401 | // laserscan(crescent_moon_mesh,crescent_moon_mesh_dnum); |
4000263 | 1:51a340435086 | 402 | |
4000263 | 1:51a340435086 | 403 | // add blanking control |
4000263 | 1:51a340435086 | 404 | // laserscan_blk(blktest2,blktest2_dnum); |
4000263 | 1:51a340435086 | 405 | // laserscan_blk(square_20x20_raster,square_20x20_raster_dnum); |
4000263 | 1:51a340435086 | 406 | // laserscan_blk(square_160x120_raster,square_160x120_raster_dnum); |
4000263 | 1:51a340435086 | 407 | // laserscan_blk(square_160x120_vector,square_160x120_vector_dnum); |
4000263 | 1:51a340435086 | 408 | // laserscan_blk(square_160x120_vector_half,square_160x120_vector_half_dnum); |
4000263 | 1:51a340435086 | 409 | // laserscan_blk(square_160x120_hybrid,square_160x120_hybrid_dnum); |
4000263 | 1:51a340435086 | 410 | // laserscan_blk(square_full_vector,square_full_vector_dnum); |
4000263 | 1:51a340435086 | 411 | laserscan_blk(square_L_vector,square_L_vector_dnum); |
4000263 | 1:51a340435086 | 412 | laserscan_blk(square_M_vector,square_M_vector_dnum); |
4000263 | 1:51a340435086 | 413 | laserscan_blk(square_S_vector,square_S_vector_dnum); |
4000263 | 1:51a340435086 | 414 | |
4000263 | 1:51a340435086 | 415 | |
4000263 | 1:51a340435086 | 416 | |
4000263 | 1:51a340435086 | 417 | // add PC serial com |
4000263 | 1:51a340435086 | 418 | // laserscan_com(); |
4000263 | 0:2ead13cba2ae | 419 | } |
4000263 | 0:2ead13cba2ae | 420 | |
4000263 | 0:2ead13cba2ae | 421 | |
4000263 | 0:2ead13cba2ae | 422 | } |
4000263 | 1:51a340435086 | 423 | |
4000263 | 1:51a340435086 | 424 | |
4000263 | 1:51a340435086 | 425 |