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