A system demonstrating interface of 6DOF sensor to Android
Fork of 6dof_new_workwith_v2 by
main.cpp@1:6ec19e5615d9, 2013-03-18 (annotated)
- Committer:
- Vigneshwar
- Date:
- Mon Mar 18 02:32:48 2013 +0000
- Revision:
- 1:6ec19e5615d9
- Parent:
- 0:5ca44aa85a30
Micropower Wireless Health sensors
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
chenzhai | 0:5ca44aa85a30 | 1 | #include "ITG3200.h" |
chenzhai | 0:5ca44aa85a30 | 2 | #include "ADXL345_I2C.h" |
chenzhai | 0:5ca44aa85a30 | 3 | |
Vigneshwar | 1:6ec19e5615d9 | 4 | Serial rn42(p9, p10); |
Vigneshwar | 1:6ec19e5615d9 | 5 | //Serial pc(USBTX, USBRX); |
chenzhai | 0:5ca44aa85a30 | 6 | ITG3200 gyro(p28, p27); |
chenzhai | 0:5ca44aa85a30 | 7 | ADXL345_I2C accel(p28, p27); |
chenzhai | 0:5ca44aa85a30 | 8 | DigitalOut WakeLed(LED1); |
chenzhai | 0:5ca44aa85a30 | 9 | DigitalOut SleepLed(LED2); |
chenzhai | 0:5ca44aa85a30 | 10 | DigitalOut ReadLed(LED3); |
chenzhai | 0:5ca44aa85a30 | 11 | DigitalOut CalLed(LED4); |
chenzhai | 0:5ca44aa85a30 | 12 | |
chenzhai | 0:5ca44aa85a30 | 13 | double w_last_x=0; |
chenzhai | 0:5ca44aa85a30 | 14 | double w_last_y=0; |
chenzhai | 0:5ca44aa85a30 | 15 | double w_last_z=0; |
chenzhai | 0:5ca44aa85a30 | 16 | int autosleep_counter=100; |
chenzhai | 0:5ca44aa85a30 | 17 | |
Vigneshwar | 1:6ec19e5615d9 | 18 | int accel_read[3] = {0, 0, 0}; |
chenzhai | 0:5ca44aa85a30 | 19 | double twocomp16_to_double(int16_t x); |
chenzhai | 0:5ca44aa85a30 | 20 | int16_t double_to_twocomp16(double x); |
chenzhai | 0:5ca44aa85a30 | 21 | char RegPeekAcc(char address); |
chenzhai | 0:5ca44aa85a30 | 22 | void RegPokeAcc(char address, char value); |
chenzhai | 0:5ca44aa85a30 | 23 | void AccCalib(); |
chenzhai | 0:5ca44aa85a30 | 24 | void RegdumpAcc(); |
chenzhai | 0:5ca44aa85a30 | 25 | |
chenzhai | 0:5ca44aa85a30 | 26 | void sleep1(); |
chenzhai | 0:5ca44aa85a30 | 27 | |
chenzhai | 0:5ca44aa85a30 | 28 | InterruptIn pushbutt(p21); |
chenzhai | 0:5ca44aa85a30 | 29 | void bushbutt_handler() |
Vigneshwar | 1:6ec19e5615d9 | 30 | { |
Vigneshwar | 1:6ec19e5615d9 | 31 | WakeLed=1; |
Vigneshwar | 1:6ec19e5615d9 | 32 | SleepLed=0; |
chenzhai | 0:5ca44aa85a30 | 33 | } |
Vigneshwar | 1:6ec19e5615d9 | 34 | |
chenzhai | 0:5ca44aa85a30 | 35 | InterruptIn accinterupt(p22); |
chenzhai | 0:5ca44aa85a30 | 36 | void acc_int_handler() |
Vigneshwar | 1:6ec19e5615d9 | 37 | { |
Vigneshwar | 1:6ec19e5615d9 | 38 | RegPeekAcc(0x30); //clear interrput |
Vigneshwar | 1:6ec19e5615d9 | 39 | WakeLed=1; |
Vigneshwar | 1:6ec19e5615d9 | 40 | SleepLed=0; |
chenzhai | 0:5ca44aa85a30 | 41 | } |
chenzhai | 0:5ca44aa85a30 | 42 | |
chenzhai | 0:5ca44aa85a30 | 43 | |
Vigneshwar | 1:6ec19e5615d9 | 44 | int main() |
Vigneshwar | 1:6ec19e5615d9 | 45 | { |
chenzhai | 0:5ca44aa85a30 | 46 | |
Vigneshwar | 1:6ec19e5615d9 | 47 | rn42.baud(115200); |
chenzhai | 0:5ca44aa85a30 | 48 | char str[512]; |
chenzhai | 0:5ca44aa85a30 | 49 | gyro.setWhoAmI(0x68); |
Vigneshwar | 1:6ec19e5615d9 | 50 | //pc.printf("Now starting 6-degrees-of-freedom (ITG-3200 ADXL345) test...\n"); |
Vigneshwar | 1:6ec19e5615d9 | 51 | //pc.printf("Accelerometer Device ID is: 0x%02x\n", accel.getDeviceID()); |
Vigneshwar | 1:6ec19e5615d9 | 52 | //pc.printf("Gyro Devide ID is: 0x%02x\n", gyro.getWhoAmI()); |
Vigneshwar | 1:6ec19e5615d9 | 53 | |
chenzhai | 0:5ca44aa85a30 | 54 | // Accel setup |
chenzhai | 0:5ca44aa85a30 | 55 | // These are here to test whether any of the initialization fails. It will print the failure |
Vigneshwar | 1:6ec19e5615d9 | 56 | if (accel.setPowerControl(0x00)) { |
Vigneshwar | 1:6ec19e5615d9 | 57 | //pc.printf("didn't intitialize power control\n"); |
Vigneshwar | 1:6ec19e5615d9 | 58 | return 0; |
Vigneshwar | 1:6ec19e5615d9 | 59 | } |
chenzhai | 0:5ca44aa85a30 | 60 | //Full resolution, +/-16g, 4mg/LSB. |
Vigneshwar | 1:6ec19e5615d9 | 61 | wait(.001); |
Vigneshwar | 1:6ec19e5615d9 | 62 | if(accel.setDataFormatControl(0x0B)) { |
Vigneshwar | 1:6ec19e5615d9 | 63 | //pc.printf("didn't set data format\n"); |
Vigneshwar | 1:6ec19e5615d9 | 64 | return 0; |
Vigneshwar | 1:6ec19e5615d9 | 65 | } |
chenzhai | 0:5ca44aa85a30 | 66 | wait(.001); |
chenzhai | 0:5ca44aa85a30 | 67 | //3.2kHz data rate. |
Vigneshwar | 1:6ec19e5615d9 | 68 | if(accel.setDataRate(ADXL345_3200HZ)) { |
Vigneshwar | 1:6ec19e5615d9 | 69 | //pc.printf("didn't set data rate\n"); |
Vigneshwar | 1:6ec19e5615d9 | 70 | return 0; |
Vigneshwar | 1:6ec19e5615d9 | 71 | } |
Vigneshwar | 1:6ec19e5615d9 | 72 | wait(.001); |
Vigneshwar | 1:6ec19e5615d9 | 73 | //Measurement mode. |
chenzhai | 0:5ca44aa85a30 | 74 | if(accel.setPowerControl(MeasurementMode)) { |
Vigneshwar | 1:6ec19e5615d9 | 75 | //pc.printf("didn't set the power control to measurement\n"); |
Vigneshwar | 1:6ec19e5615d9 | 76 | return 0; |
Vigneshwar | 1:6ec19e5615d9 | 77 | } |
Vigneshwar | 1:6ec19e5615d9 | 78 | // Gyro setup |
chenzhai | 0:5ca44aa85a30 | 79 | gyro.setLpBandwidth(LPFBW_42HZ); |
Vigneshwar | 1:6ec19e5615d9 | 80 | |
chenzhai | 0:5ca44aa85a30 | 81 | //Added for Acc |
chenzhai | 0:5ca44aa85a30 | 82 | WakeLed=1; |
chenzhai | 0:5ca44aa85a30 | 83 | AccCalib(); |
chenzhai | 0:5ca44aa85a30 | 84 | RegPokeAcc(0x24,0x9);//set threshold for activity |
chenzhai | 0:5ca44aa85a30 | 85 | RegPokeAcc(0x27,0xF0);//Activity axis control |
chenzhai | 0:5ca44aa85a30 | 86 | RegPokeAcc(0x2E,0x10);//interrupt enable |
chenzhai | 0:5ca44aa85a30 | 87 | RegPeekAcc(0x30); //clear interrput |
chenzhai | 0:5ca44aa85a30 | 88 | wait(0.1); |
chenzhai | 0:5ca44aa85a30 | 89 | pushbutt.rise(&bushbutt_handler); //enable mbed trigger detect |
Vigneshwar | 1:6ec19e5615d9 | 90 | accinterupt.rise(&acc_int_handler); |
chenzhai | 0:5ca44aa85a30 | 91 | RegdumpAcc(); |
chenzhai | 0:5ca44aa85a30 | 92 | |
Vigneshwar | 1:6ec19e5615d9 | 93 | |
chenzhai | 0:5ca44aa85a30 | 94 | if(true) |
Vigneshwar | 1:6ec19e5615d9 | 95 | for(int i=0; i<=100000; i++) { |
Vigneshwar | 1:6ec19e5615d9 | 96 | wait(0.01); |
Vigneshwar | 1:6ec19e5615d9 | 97 | |
Vigneshwar | 1:6ec19e5615d9 | 98 | if(ReadLed==1) ReadLed=0; |
Vigneshwar | 1:6ec19e5615d9 | 99 | else ReadLed=1; |
Vigneshwar | 1:6ec19e5615d9 | 100 | |
Vigneshwar | 1:6ec19e5615d9 | 101 | accel.getOutput(accel_read); |
Vigneshwar | 1:6ec19e5615d9 | 102 | |
Vigneshwar | 1:6ec19e5615d9 | 103 | sprintf(str, "%i,%i,%i,%i,%i,%i,%i,A", (int16_t)accel_read[0], (int16_t)accel_read[1], (int16_t)accel_read[2], |
Vigneshwar | 1:6ec19e5615d9 | 104 | gyro.getGyroX(), gyro.getGyroY(), gyro.getGyroZ(), (int16_t)gyro.getTemperature()); |
Vigneshwar | 1:6ec19e5615d9 | 105 | |
Vigneshwar | 1:6ec19e5615d9 | 106 | rn42.printf(str); |
chenzhai | 0:5ca44aa85a30 | 107 | |
Vigneshwar | 1:6ec19e5615d9 | 108 | double d_accelx=(double) (int16_t)accel_read[0]; |
Vigneshwar | 1:6ec19e5615d9 | 109 | double d_accely=(double) (int16_t)accel_read[1]; |
Vigneshwar | 1:6ec19e5615d9 | 110 | double d_accelz=(double) (int16_t)accel_read[2]; |
Vigneshwar | 1:6ec19e5615d9 | 111 | double wp=6.28e-2; //IIR pole for DC cancellation |
Vigneshwar | 1:6ec19e5615d9 | 112 | double w_x,w_y,w_z; |
Vigneshwar | 1:6ec19e5615d9 | 113 | double dc_x,dc_y,dc_z; |
Vigneshwar | 1:6ec19e5615d9 | 114 | |
Vigneshwar | 1:6ec19e5615d9 | 115 | //IIR calculate DC term in acceleration |
Vigneshwar | 1:6ec19e5615d9 | 116 | w_x=d_accelx+ (1-wp)*w_last_x; |
Vigneshwar | 1:6ec19e5615d9 | 117 | dc_x=wp*w_x; |
Vigneshwar | 1:6ec19e5615d9 | 118 | w_last_x=w_x; |
Vigneshwar | 1:6ec19e5615d9 | 119 | w_y=d_accely+ (1-wp)*w_last_y; |
Vigneshwar | 1:6ec19e5615d9 | 120 | dc_y=wp*w_y; |
Vigneshwar | 1:6ec19e5615d9 | 121 | w_last_y=w_y; |
Vigneshwar | 1:6ec19e5615d9 | 122 | w_z=d_accelz+ (1-wp)*w_last_z; |
Vigneshwar | 1:6ec19e5615d9 | 123 | dc_z=wp*w_z; |
Vigneshwar | 1:6ec19e5615d9 | 124 | w_last_z=w_z; |
Vigneshwar | 1:6ec19e5615d9 | 125 | |
Vigneshwar | 1:6ec19e5615d9 | 126 | d_accelx=d_accelx-dc_x; |
Vigneshwar | 1:6ec19e5615d9 | 127 | d_accely=d_accely-dc_y; |
Vigneshwar | 1:6ec19e5615d9 | 128 | d_accelz=d_accelz-dc_z; |
Vigneshwar | 1:6ec19e5615d9 | 129 | double mag_accel=d_accelx*d_accelx+d_accely*d_accely+d_accelz*d_accelz; |
Vigneshwar | 1:6ec19e5615d9 | 130 | mag_accel=sqrt(mag_accel); |
Vigneshwar | 1:6ec19e5615d9 | 131 | //pc.printf("With DC Cal:Double %f %f %f . Offset is %f %f %f. Mag %f\n\r",d_accelx,d_accely,d_accelz,dc_x,dc_y,dc_z,mag_accel); |
Vigneshwar | 1:6ec19e5615d9 | 132 | RegPeekAcc(0x30); |
Vigneshwar | 1:6ec19e5615d9 | 133 | |
Vigneshwar | 1:6ec19e5615d9 | 134 | if(autosleep_counter>0) autosleep_counter-=1; |
Vigneshwar | 1:6ec19e5615d9 | 135 | else { |
Vigneshwar | 1:6ec19e5615d9 | 136 | if(mag_accel<15) { |
Vigneshwar | 1:6ec19e5615d9 | 137 | // sleep1(); |
Vigneshwar | 1:6ec19e5615d9 | 138 | autosleep_counter=30; |
Vigneshwar | 1:6ec19e5615d9 | 139 | } |
Vigneshwar | 1:6ec19e5615d9 | 140 | } |
Vigneshwar | 1:6ec19e5615d9 | 141 | |
Vigneshwar | 1:6ec19e5615d9 | 142 | /* |
Vigneshwar | 1:6ec19e5615d9 | 143 | pc.printf("Gyro[%5i, %5i, %5i] Accel[%4i, %4i, %4i]\n\t", |
Vigneshwar | 1:6ec19e5615d9 | 144 | gyro.getGyroX(), gyro.getGyroY(), gyro.getGyroZ(), |
Vigneshwar | 1:6ec19e5615d9 | 145 | (int16_t)accel_read[0], (int16_t)accel_read[1], (int16_t)accel_read[2]); |
Vigneshwar | 1:6ec19e5615d9 | 146 | */ |
chenzhai | 0:5ca44aa85a30 | 147 | } |
chenzhai | 0:5ca44aa85a30 | 148 | |
chenzhai | 0:5ca44aa85a30 | 149 | |
chenzhai | 0:5ca44aa85a30 | 150 | } |
chenzhai | 0:5ca44aa85a30 | 151 | |
chenzhai | 0:5ca44aa85a30 | 152 | |
chenzhai | 0:5ca44aa85a30 | 153 | double twocomp16_to_double(int16_t x) |
Vigneshwar | 1:6ec19e5615d9 | 154 | { |
Vigneshwar | 1:6ec19e5615d9 | 155 | double a; |
Vigneshwar | 1:6ec19e5615d9 | 156 | a= double(x); |
Vigneshwar | 1:6ec19e5615d9 | 157 | return a; |
chenzhai | 0:5ca44aa85a30 | 158 | } |
chenzhai | 0:5ca44aa85a30 | 159 | int16_t double_to_twocomp16(double x) |
Vigneshwar | 1:6ec19e5615d9 | 160 | { |
Vigneshwar | 1:6ec19e5615d9 | 161 | int16_t a; |
Vigneshwar | 1:6ec19e5615d9 | 162 | a=(signed int16_t) x; |
Vigneshwar | 1:6ec19e5615d9 | 163 | return a; |
chenzhai | 0:5ca44aa85a30 | 164 | } |
chenzhai | 0:5ca44aa85a30 | 165 | |
chenzhai | 0:5ca44aa85a30 | 166 | char RegPeekAcc(char address) |
chenzhai | 0:5ca44aa85a30 | 167 | { |
chenzhai | 0:5ca44aa85a30 | 168 | char value=accel.SingleByteRead(address); |
Vigneshwar | 1:6ec19e5615d9 | 169 | //pc.printf("AccReg address: %X value: %X\n\r",address,value); |
chenzhai | 0:5ca44aa85a30 | 170 | return value; |
chenzhai | 0:5ca44aa85a30 | 171 | } |
chenzhai | 0:5ca44aa85a30 | 172 | void RegPokeAcc(char address, char value) |
chenzhai | 0:5ca44aa85a30 | 173 | { |
chenzhai | 0:5ca44aa85a30 | 174 | accel.SingleByteWrite(address,value); |
chenzhai | 0:5ca44aa85a30 | 175 | } |
chenzhai | 0:5ca44aa85a30 | 176 | |
chenzhai | 0:5ca44aa85a30 | 177 | void AccCalib() |
Vigneshwar | 1:6ec19e5615d9 | 178 | { |
Vigneshwar | 1:6ec19e5615d9 | 179 | CalLed=1; |
Vigneshwar | 1:6ec19e5615d9 | 180 | double acc0=0,acc1=0,acc2=0; |
Vigneshwar | 1:6ec19e5615d9 | 181 | double sum0=0,sum1=0,sum2=0; |
chenzhai | 0:5ca44aa85a30 | 182 | wait(0.1) ; |
chenzhai | 0:5ca44aa85a30 | 183 | accel.getOutput(accel_read); |
Vigneshwar | 1:6ec19e5615d9 | 184 | // RegPokeAcc(0x1e,offsetcal((int16_t)accel_read[0])); |
Vigneshwar | 1:6ec19e5615d9 | 185 | // RegPokeAcc(0x1f,offsetcal((int16_t)accel_read[1])); |
chenzhai | 0:5ca44aa85a30 | 186 | // RegPokeAcc(0x20,offsetcal((int16_t)accel_read[2])); |
Vigneshwar | 1:6ec19e5615d9 | 187 | for(int n=1; n<=10; n++) { |
chenzhai | 0:5ca44aa85a30 | 188 | wait(0.1); |
chenzhai | 0:5ca44aa85a30 | 189 | accel.getOutput(accel_read); |
chenzhai | 0:5ca44aa85a30 | 190 | acc0=(double)(int16_t)accel_read[0]; |
chenzhai | 0:5ca44aa85a30 | 191 | acc1=(double)(int16_t)accel_read[1]; |
chenzhai | 0:5ca44aa85a30 | 192 | acc2=(double)(int16_t)accel_read[2]; |
Vigneshwar | 1:6ec19e5615d9 | 193 | sum0+=acc0; |
Vigneshwar | 1:6ec19e5615d9 | 194 | sum1+=acc1; |
Vigneshwar | 1:6ec19e5615d9 | 195 | sum2+=acc2; |
chenzhai | 0:5ca44aa85a30 | 196 | } |
chenzhai | 0:5ca44aa85a30 | 197 | sum0=sum0/10/(-4); |
chenzhai | 0:5ca44aa85a30 | 198 | sum1=sum1/10/(-4); |
Vigneshwar | 1:6ec19e5615d9 | 199 | sum2=sum2/10/(-4); |
chenzhai | 0:5ca44aa85a30 | 200 | int16_t acc0_16=(signed int16_t)sum0; |
chenzhai | 0:5ca44aa85a30 | 201 | int16_t acc1_16=(signed int16_t)sum1; |
Vigneshwar | 1:6ec19e5615d9 | 202 | int16_t acc2_16=(signed int16_t)sum2; |
Vigneshwar | 1:6ec19e5615d9 | 203 | RegPokeAcc(0x1e,acc0_16); |
Vigneshwar | 1:6ec19e5615d9 | 204 | RegPokeAcc(0x1f,acc1_16); |
Vigneshwar | 1:6ec19e5615d9 | 205 | RegPokeAcc(0x20,acc2_16); |
Vigneshwar | 1:6ec19e5615d9 | 206 | // pc.printf("Calibration. Calculated offset %i %i %i\n\r",acc0_16,acc1_16,acc2_16); |
chenzhai | 0:5ca44aa85a30 | 207 | int valid=1; |
Vigneshwar | 1:6ec19e5615d9 | 208 | for(int n=1; n<=10; n++) { |
Vigneshwar | 1:6ec19e5615d9 | 209 | wait(0.1); |
Vigneshwar | 1:6ec19e5615d9 | 210 | accel.getOutput(accel_read); |
Vigneshwar | 1:6ec19e5615d9 | 211 | accel.getOutput(accel_read); |
Vigneshwar | 1:6ec19e5615d9 | 212 | acc0=(double)(int16_t)accel_read[0]; |
Vigneshwar | 1:6ec19e5615d9 | 213 | if(abs(acc0)>50) valid=0; |
Vigneshwar | 1:6ec19e5615d9 | 214 | acc1=(double)(int16_t)accel_read[1]; |
Vigneshwar | 1:6ec19e5615d9 | 215 | if(abs(acc1)>50) valid=0; |
Vigneshwar | 1:6ec19e5615d9 | 216 | acc2=(double)(int16_t)accel_read[2]; |
Vigneshwar | 1:6ec19e5615d9 | 217 | if(abs(acc2)>50) valid=0; |
Vigneshwar | 1:6ec19e5615d9 | 218 | // pc.printf("verifying cal %i,%i,%i \n\r", (int16_t)accel_read[0], (int16_t)accel_read[1], (int16_t)accel_read[2]); |
Vigneshwar | 1:6ec19e5615d9 | 219 | // pc.printf("verifying cal (double)%f %f %f\n\r",acc0,acc1,acc2); |
Vigneshwar | 1:6ec19e5615d9 | 220 | // pc.printf("valid= %d \n\r",valid); |
Vigneshwar | 1:6ec19e5615d9 | 221 | } |
chenzhai | 0:5ca44aa85a30 | 222 | // if(valid==1) |
Vigneshwar | 1:6ec19e5615d9 | 223 | CalLed=0; |
chenzhai | 0:5ca44aa85a30 | 224 | // else AccCalib(); |
chenzhai | 0:5ca44aa85a30 | 225 | } |
chenzhai | 0:5ca44aa85a30 | 226 | |
chenzhai | 0:5ca44aa85a30 | 227 | void RegdumpAcc() |
chenzhai | 0:5ca44aa85a30 | 228 | { |
Vigneshwar | 1:6ec19e5615d9 | 229 | //pc.printf("\r---------a new regdump start\n\r-------"); |
Vigneshwar | 1:6ec19e5615d9 | 230 | //pc.printf("Acc DeviceID \t"); |
Vigneshwar | 1:6ec19e5615d9 | 231 | RegPeekAcc(0x00); |
Vigneshwar | 1:6ec19e5615d9 | 232 | //pc.printf("X_asis: \t"); |
Vigneshwar | 1:6ec19e5615d9 | 233 | RegPeekAcc(0x1e); |
Vigneshwar | 1:6ec19e5615d9 | 234 | //pc.printf("Y_asis: \t"); |
Vigneshwar | 1:6ec19e5615d9 | 235 | RegPeekAcc(0x1f); |
Vigneshwar | 1:6ec19e5615d9 | 236 | //pc.printf("Z_asis: \t"); |
Vigneshwar | 1:6ec19e5615d9 | 237 | RegPeekAcc(0x20); |
Vigneshwar | 1:6ec19e5615d9 | 238 | //pc.printf("Act Thresh: \t"); |
Vigneshwar | 1:6ec19e5615d9 | 239 | RegPeekAcc(0x24); |
Vigneshwar | 1:6ec19e5615d9 | 240 | //pc.printf("Axis Enable: \t"); |
Vigneshwar | 1:6ec19e5615d9 | 241 | RegPeekAcc(0x27); |
Vigneshwar | 1:6ec19e5615d9 | 242 | //pc.printf("Interpt Ctrl: \t"); |
Vigneshwar | 1:6ec19e5615d9 | 243 | RegPeekAcc(0x2e); |
Vigneshwar | 1:6ec19e5615d9 | 244 | //pc.printf("Interpt Mapping: \t"); |
Vigneshwar | 1:6ec19e5615d9 | 245 | RegPeekAcc(0x2f); |
chenzhai | 0:5ca44aa85a30 | 246 | //pc.printf("Source of interupt:\t");RegPeekAcc(0x30); |
Vigneshwar | 1:6ec19e5615d9 | 247 | //pc.printf("Data format control\t"); |
Vigneshwar | 1:6ec19e5615d9 | 248 | RegPeekAcc(0x31); |
Vigneshwar | 1:6ec19e5615d9 | 249 | //pc.printf("FIFO Ctrl:\t"); |
Vigneshwar | 1:6ec19e5615d9 | 250 | RegPeekAcc(0x38); |
Vigneshwar | 1:6ec19e5615d9 | 251 | //pc.printf("FIFO Status:\t"); |
Vigneshwar | 1:6ec19e5615d9 | 252 | RegPeekAcc(0x39); |
chenzhai | 0:5ca44aa85a30 | 253 | } |
chenzhai | 0:5ca44aa85a30 | 254 | |
chenzhai | 0:5ca44aa85a30 | 255 | void sleep1() |
chenzhai | 0:5ca44aa85a30 | 256 | { |
Vigneshwar | 1:6ec19e5615d9 | 257 | WakeLed=0; |
Vigneshwar | 1:6ec19e5615d9 | 258 | SleepLed=1; |
Vigneshwar | 1:6ec19e5615d9 | 259 | sleep(); |
chenzhai | 0:5ca44aa85a30 | 260 | |
chenzhai | 0:5ca44aa85a30 | 261 | } |