Lab 5
Dependencies: mbed
Lab5.cpp@0:48e80d1e9e1b, 2014-10-02 (annotated)
- Committer:
- LanierUSNA16
- Date:
- Thu Oct 02 15:47:39 2014 +0000
- Revision:
- 0:48e80d1e9e1b
Lab 5;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
LanierUSNA16 | 0:48e80d1e9e1b | 1 | #include "mbed.h" |
LanierUSNA16 | 0:48e80d1e9e1b | 2 | #define PI (3.14159) |
LanierUSNA16 | 0:48e80d1e9e1b | 3 | //============================================================================= |
LanierUSNA16 | 0:48e80d1e9e1b | 4 | // Four commands for the Instruction Register (B7,B6) - LS7366 |
LanierUSNA16 | 0:48e80d1e9e1b | 5 | //============================================================================= |
LanierUSNA16 | 0:48e80d1e9e1b | 6 | #define CLR 0x00 //Clear Instruction |
LanierUSNA16 | 0:48e80d1e9e1b | 7 | #define RD 0x01 //Read Instruction |
LanierUSNA16 | 0:48e80d1e9e1b | 8 | #define WR 0x02 //Write Instruction |
LanierUSNA16 | 0:48e80d1e9e1b | 9 | #define LOAD 0x03 //Load Instruction |
LanierUSNA16 | 0:48e80d1e9e1b | 10 | |
LanierUSNA16 | 0:48e80d1e9e1b | 11 | //============================================================================= |
LanierUSNA16 | 0:48e80d1e9e1b | 12 | // Register to Select from the Instruction Register (B5,B4,B3) - LS7366 |
LanierUSNA16 | 0:48e80d1e9e1b | 13 | //============================================================================= |
LanierUSNA16 | 0:48e80d1e9e1b | 14 | #define NONE 0x00 //No Register Selected |
LanierUSNA16 | 0:48e80d1e9e1b | 15 | #define MDR0 0x01 //Mode Register 0 |
LanierUSNA16 | 0:48e80d1e9e1b | 16 | #define MDR1 0x02 //Mode Register 1 |
LanierUSNA16 | 0:48e80d1e9e1b | 17 | #define DTR 0x03 //Data Transfer Register |
LanierUSNA16 | 0:48e80d1e9e1b | 18 | #define CNTR 0x04 //Software Configurable Counter Register |
LanierUSNA16 | 0:48e80d1e9e1b | 19 | #define OTR 0x05 //Output Transfer Register |
LanierUSNA16 | 0:48e80d1e9e1b | 20 | #define STR 0x06 //Status Register |
LanierUSNA16 | 0:48e80d1e9e1b | 21 | #define NONE_REG 0x07 //No Register Selected |
LanierUSNA16 | 0:48e80d1e9e1b | 22 | |
LanierUSNA16 | 0:48e80d1e9e1b | 23 | |
LanierUSNA16 | 0:48e80d1e9e1b | 24 | Serial pc(USBTX,USBRX); |
LanierUSNA16 | 0:48e80d1e9e1b | 25 | SPI spi(p5, p6, p7); |
LanierUSNA16 | 0:48e80d1e9e1b | 26 | LocalFileSystem local ("local"); |
LanierUSNA16 | 0:48e80d1e9e1b | 27 | DigitalOut ls7166_cs1(p19); //CS for LS7366 |
LanierUSNA16 | 0:48e80d1e9e1b | 28 | DigitalOut ls7166_cs2(p20); //CS for LS7366 |
LanierUSNA16 | 0:48e80d1e9e1b | 29 | |
LanierUSNA16 | 0:48e80d1e9e1b | 30 | //----- LS7366 Encoder/Counter Routines -------------------- |
LanierUSNA16 | 0:48e80d1e9e1b | 31 | void LS7366_cmd(int inst, int reg){ |
LanierUSNA16 | 0:48e80d1e9e1b | 32 | char cmd; |
LanierUSNA16 | 0:48e80d1e9e1b | 33 | |
LanierUSNA16 | 0:48e80d1e9e1b | 34 | spi.format(8, 0); |
LanierUSNA16 | 0:48e80d1e9e1b | 35 | spi.frequency(2000000); |
LanierUSNA16 | 0:48e80d1e9e1b | 36 | cmd = (inst << 6) | (reg << 3); |
LanierUSNA16 | 0:48e80d1e9e1b | 37 | // printf("\r\ncmd=0X%2X", cmd); |
LanierUSNA16 | 0:48e80d1e9e1b | 38 | spi.write(cmd); |
LanierUSNA16 | 0:48e80d1e9e1b | 39 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 40 | |
LanierUSNA16 | 0:48e80d1e9e1b | 41 | long LS7366_read_counter(int chan_num){ |
LanierUSNA16 | 0:48e80d1e9e1b | 42 | union bytes{ |
LanierUSNA16 | 0:48e80d1e9e1b | 43 | char byte_enc[4]; |
LanierUSNA16 | 0:48e80d1e9e1b | 44 | long long_enc; |
LanierUSNA16 | 0:48e80d1e9e1b | 45 | }counter; |
LanierUSNA16 | 0:48e80d1e9e1b | 46 | |
LanierUSNA16 | 0:48e80d1e9e1b | 47 | spi.format(8, 0); |
LanierUSNA16 | 0:48e80d1e9e1b | 48 | spi.frequency(2000000); |
LanierUSNA16 | 0:48e80d1e9e1b | 49 | |
LanierUSNA16 | 0:48e80d1e9e1b | 50 | if(chan_num!=2){ |
LanierUSNA16 | 0:48e80d1e9e1b | 51 | ls7166_cs1 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 52 | wait_us(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 53 | LS7366_cmd(LOAD,OTR);//cmd = 0xe8, LOAD to OTR |
LanierUSNA16 | 0:48e80d1e9e1b | 54 | ls7166_cs1 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 55 | wait_us(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 56 | ls7166_cs1 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 57 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 58 | else{ |
LanierUSNA16 | 0:48e80d1e9e1b | 59 | ls7166_cs2 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 60 | wait_us(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 61 | LS7366_cmd(LOAD,OTR);//cmd = 0xe8, LOAD to OTR |
LanierUSNA16 | 0:48e80d1e9e1b | 62 | ls7166_cs2 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 63 | wait_us(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 64 | |
LanierUSNA16 | 0:48e80d1e9e1b | 65 | ls7166_cs2 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 66 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 67 | wait_us(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 68 | LS7366_cmd(RD,CNTR); //cmd = 0x60, READ from CNTR |
LanierUSNA16 | 0:48e80d1e9e1b | 69 | counter.byte_enc[3] = spi.write(0x00); |
LanierUSNA16 | 0:48e80d1e9e1b | 70 | counter.byte_enc[2] = spi.write(0x00); |
LanierUSNA16 | 0:48e80d1e9e1b | 71 | counter.byte_enc[1] = spi.write(0x00); |
LanierUSNA16 | 0:48e80d1e9e1b | 72 | counter.byte_enc[0] = spi.write(0x00); |
LanierUSNA16 | 0:48e80d1e9e1b | 73 | |
LanierUSNA16 | 0:48e80d1e9e1b | 74 | if(chan_num!=2){ |
LanierUSNA16 | 0:48e80d1e9e1b | 75 | ls7166_cs1 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 76 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 77 | else{ |
LanierUSNA16 | 0:48e80d1e9e1b | 78 | ls7166_cs2 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 79 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 80 | |
LanierUSNA16 | 0:48e80d1e9e1b | 81 | return counter.long_enc; //return count |
LanierUSNA16 | 0:48e80d1e9e1b | 82 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 83 | |
LanierUSNA16 | 0:48e80d1e9e1b | 84 | void LS7366_quad_mode_x4(int chan_num){ |
LanierUSNA16 | 0:48e80d1e9e1b | 85 | |
LanierUSNA16 | 0:48e80d1e9e1b | 86 | spi.format(8, 0); |
LanierUSNA16 | 0:48e80d1e9e1b | 87 | spi.frequency(2000000); |
LanierUSNA16 | 0:48e80d1e9e1b | 88 | |
LanierUSNA16 | 0:48e80d1e9e1b | 89 | if(chan_num!=2){ |
LanierUSNA16 | 0:48e80d1e9e1b | 90 | ls7166_cs1 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 91 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 92 | else{ |
LanierUSNA16 | 0:48e80d1e9e1b | 93 | ls7166_cs2 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 94 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 95 | wait_us(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 96 | LS7366_cmd(WR,MDR0);// Write to the MDR0 register |
LanierUSNA16 | 0:48e80d1e9e1b | 97 | spi.write(0x03); // X4 quadrature count mode |
LanierUSNA16 | 0:48e80d1e9e1b | 98 | if(chan_num!=2){ |
LanierUSNA16 | 0:48e80d1e9e1b | 99 | ls7166_cs1 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 100 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 101 | else{ |
LanierUSNA16 | 0:48e80d1e9e1b | 102 | ls7166_cs2 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 103 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 104 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 105 | |
LanierUSNA16 | 0:48e80d1e9e1b | 106 | void LS7366_reset_counter(int chan_num){ |
LanierUSNA16 | 0:48e80d1e9e1b | 107 | |
LanierUSNA16 | 0:48e80d1e9e1b | 108 | spi.format(8, 0); |
LanierUSNA16 | 0:48e80d1e9e1b | 109 | spi.frequency(2000000); |
LanierUSNA16 | 0:48e80d1e9e1b | 110 | |
LanierUSNA16 | 0:48e80d1e9e1b | 111 | if(chan_num!=2){ |
LanierUSNA16 | 0:48e80d1e9e1b | 112 | ls7166_cs1 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 113 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 114 | else{ |
LanierUSNA16 | 0:48e80d1e9e1b | 115 | ls7166_cs2 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 116 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 117 | wait_us(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 118 | LS7366_cmd(CLR,CNTR);//Clear the counter register |
LanierUSNA16 | 0:48e80d1e9e1b | 119 | if(chan_num!=2){ |
LanierUSNA16 | 0:48e80d1e9e1b | 120 | ls7166_cs1 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 121 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 122 | else{ |
LanierUSNA16 | 0:48e80d1e9e1b | 123 | ls7166_cs2 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 124 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 125 | wait_us(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 126 | |
LanierUSNA16 | 0:48e80d1e9e1b | 127 | if(chan_num!=2){ |
LanierUSNA16 | 0:48e80d1e9e1b | 128 | ls7166_cs1 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 129 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 130 | else{ |
LanierUSNA16 | 0:48e80d1e9e1b | 131 | ls7166_cs2 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 132 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 133 | wait_us(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 134 | LS7366_cmd(LOAD,CNTR);// |
LanierUSNA16 | 0:48e80d1e9e1b | 135 | if(chan_num!=2){ |
LanierUSNA16 | 0:48e80d1e9e1b | 136 | ls7166_cs1 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 137 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 138 | else{ |
LanierUSNA16 | 0:48e80d1e9e1b | 139 | ls7166_cs1 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 140 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 141 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 142 | |
LanierUSNA16 | 0:48e80d1e9e1b | 143 | void LS7366_write_DTR(int chan_num,long enc_value) |
LanierUSNA16 | 0:48e80d1e9e1b | 144 | { |
LanierUSNA16 | 0:48e80d1e9e1b | 145 | union bytes |
LanierUSNA16 | 0:48e80d1e9e1b | 146 | { |
LanierUSNA16 | 0:48e80d1e9e1b | 147 | char byte_enc[4]; |
LanierUSNA16 | 0:48e80d1e9e1b | 148 | long long_enc; |
LanierUSNA16 | 0:48e80d1e9e1b | 149 | }counter; |
LanierUSNA16 | 0:48e80d1e9e1b | 150 | |
LanierUSNA16 | 0:48e80d1e9e1b | 151 | spi.format(8, 0); |
LanierUSNA16 | 0:48e80d1e9e1b | 152 | spi.frequency(2000000); |
LanierUSNA16 | 0:48e80d1e9e1b | 153 | |
LanierUSNA16 | 0:48e80d1e9e1b | 154 | counter.long_enc = enc_value; |
LanierUSNA16 | 0:48e80d1e9e1b | 155 | |
LanierUSNA16 | 0:48e80d1e9e1b | 156 | if(chan_num!=2){ |
LanierUSNA16 | 0:48e80d1e9e1b | 157 | ls7166_cs1 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 158 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 159 | else{ |
LanierUSNA16 | 0:48e80d1e9e1b | 160 | ls7166_cs2 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 161 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 162 | wait_us(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 163 | LS7366_cmd(WR,DTR);// |
LanierUSNA16 | 0:48e80d1e9e1b | 164 | spi.write(counter.byte_enc[3]); |
LanierUSNA16 | 0:48e80d1e9e1b | 165 | spi.write(counter.byte_enc[2]); |
LanierUSNA16 | 0:48e80d1e9e1b | 166 | spi.write(counter.byte_enc[1]); |
LanierUSNA16 | 0:48e80d1e9e1b | 167 | spi.write(counter.byte_enc[0]); |
LanierUSNA16 | 0:48e80d1e9e1b | 168 | if(chan_num!=2){ |
LanierUSNA16 | 0:48e80d1e9e1b | 169 | ls7166_cs1 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 170 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 171 | else{ |
LanierUSNA16 | 0:48e80d1e9e1b | 172 | ls7166_cs2 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 173 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 174 | |
LanierUSNA16 | 0:48e80d1e9e1b | 175 | wait_us(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 176 | if(chan_num!=2){ |
LanierUSNA16 | 0:48e80d1e9e1b | 177 | ls7166_cs1 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 178 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 179 | else{ |
LanierUSNA16 | 0:48e80d1e9e1b | 180 | ls7166_cs2 = 0; |
LanierUSNA16 | 0:48e80d1e9e1b | 181 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 182 | wait_us(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 183 | LS7366_cmd(LOAD,CNTR);// |
LanierUSNA16 | 0:48e80d1e9e1b | 184 | if(chan_num!=2){ |
LanierUSNA16 | 0:48e80d1e9e1b | 185 | ls7166_cs1 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 186 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 187 | else{ |
LanierUSNA16 | 0:48e80d1e9e1b | 188 | ls7166_cs2 = 1; |
LanierUSNA16 | 0:48e80d1e9e1b | 189 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 190 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 191 | float Ts = 0.01 ; // Specify sampling period |
LanierUSNA16 | 0:48e80d1e9e1b | 192 | |
LanierUSNA16 | 0:48e80d1e9e1b | 193 | // Arrays for data storage |
LanierUSNA16 | 0:48e80d1e9e1b | 194 | float etime[1000]; //elapsed time |
LanierUSNA16 | 0:48e80d1e9e1b | 195 | float ang_pos[1000]; // angular position |
LanierUSNA16 | 0:48e80d1e9e1b | 196 | Timer t; |
LanierUSNA16 | 0:48e80d1e9e1b | 197 | |
LanierUSNA16 | 0:48e80d1e9e1b | 198 | // Open "results.M" on the local file system for writing |
LanierUSNA16 | 0:48e80d1e9e1b | 199 | FILE *fp = fopen("/local/results.M", "w"); |
LanierUSNA16 | 0:48e80d1e9e1b | 200 | |
LanierUSNA16 | 0:48e80d1e9e1b | 201 | float cntr; |
LanierUSNA16 | 0:48e80d1e9e1b | 202 | float ang; |
LanierUSNA16 | 0:48e80d1e9e1b | 203 | float dt; |
LanierUSNA16 | 0:48e80d1e9e1b | 204 | long enc1; |
LanierUSNA16 | 0:48e80d1e9e1b | 205 | int k; |
LanierUSNA16 | 0:48e80d1e9e1b | 206 | |
LanierUSNA16 | 0:48e80d1e9e1b | 207 | int main () |
LanierUSNA16 | 0:48e80d1e9e1b | 208 | { |
LanierUSNA16 | 0:48e80d1e9e1b | 209 | pc.baud(921600); //Set up serial port baud rate |
LanierUSNA16 | 0:48e80d1e9e1b | 210 | spi.frequency(5000000); |
LanierUSNA16 | 0:48e80d1e9e1b | 211 | LS7366_reset_counter(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 212 | LS7366_quad_mode_x4(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 213 | LS7366_write_DTR(1,0); |
LanierUSNA16 | 0:48e80d1e9e1b | 214 | |
LanierUSNA16 | 0:48e80d1e9e1b | 215 | LS7366_reset_counter(2); |
LanierUSNA16 | 0:48e80d1e9e1b | 216 | LS7366_quad_mode_x4(2); |
LanierUSNA16 | 0:48e80d1e9e1b | 217 | LS7366_write_DTR(2,0); |
LanierUSNA16 | 0:48e80d1e9e1b | 218 | cntr = 0.0; // cntr used to keep track of sample period and elpased time |
LanierUSNA16 | 0:48e80d1e9e1b | 219 | |
LanierUSNA16 | 0:48e80d1e9e1b | 220 | // initialize data vectors |
LanierUSNA16 | 0:48e80d1e9e1b | 221 | for(k=0;k<1000;k++) |
LanierUSNA16 | 0:48e80d1e9e1b | 222 | { |
LanierUSNA16 | 0:48e80d1e9e1b | 223 | // Insert code |
LanierUSNA16 | 0:48e80d1e9e1b | 224 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 225 | k = 0; // Reset index counter |
LanierUSNA16 | 0:48e80d1e9e1b | 226 | |
LanierUSNA16 | 0:48e80d1e9e1b | 227 | while(cntr <= 1000) { |
LanierUSNA16 | 0:48e80d1e9e1b | 228 | t.start(); // start measuring comp time |
LanierUSNA16 | 0:48e80d1e9e1b | 229 | |
LanierUSNA16 | 0:48e80d1e9e1b | 230 | // Read encoder |
LanierUSNA16 | 0:48e80d1e9e1b | 231 | enc1 = LS7366_read_counter(1); |
LanierUSNA16 | 0:48e80d1e9e1b | 232 | |
LanierUSNA16 | 0:48e80d1e9e1b | 233 | // Convert from counts to radians |
LanierUSNA16 | 0:48e80d1e9e1b | 234 | ang = 2*3.14*enc1/4096; |
LanierUSNA16 | 0:48e80d1e9e1b | 235 | // Log data |
LanierUSNA16 | 0:48e80d1e9e1b | 236 | etime[k] = cntr*Ts; |
LanierUSNA16 | 0:48e80d1e9e1b | 237 | ang_pos[k] = ang; |
LanierUSNA16 | 0:48e80d1e9e1b | 238 | k++; |
LanierUSNA16 | 0:48e80d1e9e1b | 239 | |
LanierUSNA16 | 0:48e80d1e9e1b | 240 | t.stop(); // end measuring comp time |
LanierUSNA16 | 0:48e80d1e9e1b | 241 | dt = Ts-t.read(); |
LanierUSNA16 | 0:48e80d1e9e1b | 242 | //printf("%5.2f\n\r",cntr); |
LanierUSNA16 | 0:48e80d1e9e1b | 243 | pc.printf("%5.2f %5.2f \n\r",cntr*Ts,ang); |
LanierUSNA16 | 0:48e80d1e9e1b | 244 | |
LanierUSNA16 | 0:48e80d1e9e1b | 245 | t.reset(); |
LanierUSNA16 | 0:48e80d1e9e1b | 246 | cntr=cntr+1; |
LanierUSNA16 | 0:48e80d1e9e1b | 247 | wait(dt); // wait to ensure sampling period set by Ts |
LanierUSNA16 | 0:48e80d1e9e1b | 248 | //if (cntr == 200){fclose(fp);} |
LanierUSNA16 | 0:48e80d1e9e1b | 249 | |
LanierUSNA16 | 0:48e80d1e9e1b | 250 | }//while |
LanierUSNA16 | 0:48e80d1e9e1b | 251 | |
LanierUSNA16 | 0:48e80d1e9e1b | 252 | // Print out log variables in MATLAB structured variable format. |
LanierUSNA16 | 0:48e80d1e9e1b | 253 | pc.printf("Printing log variables to file on mBed ... "); |
LanierUSNA16 | 0:48e80d1e9e1b | 254 | if(1) { |
LanierUSNA16 | 0:48e80d1e9e1b | 255 | for(k=0; k<1000; k++) { |
LanierUSNA16 | 0:48e80d1e9e1b | 256 | fprintf(fp,"t(%d,1) = %.5f;\n",k+1,etime[k]); |
LanierUSNA16 | 0:48e80d1e9e1b | 257 | fprintf(fp,"ang_pos(%d,1) = %.5f;\n",k+1,ang_pos[k]); |
LanierUSNA16 | 0:48e80d1e9e1b | 258 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 259 | } |
LanierUSNA16 | 0:48e80d1e9e1b | 260 | printf("done.\r\n"); |
LanierUSNA16 | 0:48e80d1e9e1b | 261 | |
LanierUSNA16 | 0:48e80d1e9e1b | 262 | // Close file |
LanierUSNA16 | 0:48e80d1e9e1b | 263 | fclose(fp); |
LanierUSNA16 | 0:48e80d1e9e1b | 264 | |
LanierUSNA16 | 0:48e80d1e9e1b | 265 | }//main |