NM500 Lib

Committer:
Nasungil
Date:
Mon Dec 17 04:13:50 2018 +0000
Revision:
8:ad9c8681ca41
Parent:
7:a8ebb0cab33d
Child:
9:06ef3c5d6737
NM500 SocketBoard 180524
;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nasungil 0:fadd3703a42c 1 #include "NM500.h"
Nasungil 0:fadd3703a42c 2 #include "mbed.h"
Nasungil 7:a8ebb0cab33d 3 //#include "SDFileSystem.h"
Nasungil 0:fadd3703a42c 4
Nasungil 7:a8ebb0cab33d 5 //SDFileSystem sd(SD_MOSI, SD_MISO, SD_SCK, SD_CS, "sd"); // the pinout on the mbed Cool Components workshop board
Nasungil 0:fadd3703a42c 6
Nasungil 0:fadd3703a42c 7 SPI NM500(SPI_MOSI, SPI_MISO, SPI_SCK);
Nasungil 0:fadd3703a42c 8
Nasungil 5:dacd883e994d 9 //Serial test(SERIAL_TX, SERIAL_RX);
Nasungil 7:a8ebb0cab33d 10 //extern int Reset_fail;
Nasungil 7:a8ebb0cab33d 11 //extern int CMN_RC;
Nasungil 7:a8ebb0cab33d 12 //extern int aif_fail;
Nasungil 7:a8ebb0cab33d 13 //extern int ncount_fail;
Nasungil 7:a8ebb0cab33d 14 //extern int Gcr1;
Nasungil 7:a8ebb0cab33d 15 //extern int Gcr2;
Nasungil 7:a8ebb0cab33d 16 //extern int Aif1;
Nasungil 7:a8ebb0cab33d 17 //extern int Aif2;
Nasungil 7:a8ebb0cab33d 18 //extern int Minif1;
Nasungil 7:a8ebb0cab33d 19 //extern int Minif2;
Nasungil 7:a8ebb0cab33d 20 //extern int Maxif1;
Nasungil 7:a8ebb0cab33d 21 //extern int Maxif2;
Nasungil 7:a8ebb0cab33d 22 //extern int Cat1;
Nasungil 7:a8ebb0cab33d 23 //extern int Cat2;
Nasungil 7:a8ebb0cab33d 24 //
Nasungil 7:a8ebb0cab33d 25 //extern int Memory1;
Nasungil 7:a8ebb0cab33d 26 //extern int Memory2;
Nasungil 7:a8ebb0cab33d 27 //
Nasungil 7:a8ebb0cab33d 28 //extern char array1[NEURONSIZE];
Nasungil 7:a8ebb0cab33d 29 //extern char array2[NEURONSIZE];
Nasungil 6:4bc46c554aed 30
Nasungil 6:4bc46c554aed 31
Nasungil 7:a8ebb0cab33d 32 //FILE *fp=NULL;
Nasungil 0:fadd3703a42c 33
Nasungil 4:b23c96320c3f 34 DigitalOut BC_CS(D9);
Nasungil 7:a8ebb0cab33d 35 //DigitalOut SDCard_CS(D10);
Nasungil 7:a8ebb0cab33d 36 //DigitalOut CLK_EN(PA_15);
Nasungil 0:fadd3703a42c 37
Nasungil 7:a8ebb0cab33d 38 //SPI init
Nasungil 7:a8ebb0cab33d 39 void SPI_Init(void)
Nasungil 7:a8ebb0cab33d 40 {
Nasungil 4:b23c96320c3f 41
Nasungil 5:dacd883e994d 42 BC_CS = HIGH; //disable
Nasungil 7:a8ebb0cab33d 43
Nasungil 0:fadd3703a42c 44 NM500.format(8,0);
Nasungil 8:ad9c8681ca41 45 NM500.frequency(2000000);
Nasungil 7:a8ebb0cab33d 46 printf("SPI Init OK\n");
Nasungil 1:5cdfdb2e5691 47
Nasungil 7:a8ebb0cab33d 48 }
Nasungil 7:a8ebb0cab33d 49 int begin()
Nasungil 7:a8ebb0cab33d 50 {
Nasungil 1:5cdfdb2e5691 51 return clearNeurons(); //neruon init()
Nasungil 0:fadd3703a42c 52 }
Nasungil 7:a8ebb0cab33d 53 //void RESET_Test(void)
Nasungil 7:a8ebb0cab33d 54 //{
Nasungil 7:a8ebb0cab33d 55 // int nsr = read(NM_NSR);
Nasungil 7:a8ebb0cab33d 56 // int gcr = read(NM_GCR);
Nasungil 7:a8ebb0cab33d 57 // int minif = read(NM_MINIF);
Nasungil 7:a8ebb0cab33d 58 // int maxif = read(NM_MAXIF);
Nasungil 7:a8ebb0cab33d 59 //
Nasungil 7:a8ebb0cab33d 60 // printf("RESET Test\n");
Nasungil 7:a8ebb0cab33d 61 //
Nasungil 7:a8ebb0cab33d 62 // if(nsr != 0x00)
Nasungil 7:a8ebb0cab33d 63 // Reset_fail = 1;
Nasungil 7:a8ebb0cab33d 64 // if(gcr != 0x01)
Nasungil 7:a8ebb0cab33d 65 // Reset_fail = 1;
Nasungil 7:a8ebb0cab33d 66 // if(minif != 0x02)
Nasungil 7:a8ebb0cab33d 67 // Reset_fail = 1;
Nasungil 7:a8ebb0cab33d 68 // if(maxif != 0x4000)
Nasungil 7:a8ebb0cab33d 69 // Reset_fail = 1;
Nasungil 7:a8ebb0cab33d 70 //
Nasungil 7:a8ebb0cab33d 71 // if(Reset_fail == 0)
Nasungil 7:a8ebb0cab33d 72 // printf("Reset Test Pass\n");
Nasungil 7:a8ebb0cab33d 73 // else
Nasungil 7:a8ebb0cab33d 74 // error("Reset the NM500 and proceed");
Nasungil 7:a8ebb0cab33d 75 //// printf("NSR : 0x%x\n", nsr);
Nasungil 7:a8ebb0cab33d 76 //// printf("GCR : 0x%x\n", gcr);
Nasungil 7:a8ebb0cab33d 77 //// printf("MINIF : 0x%x\n", minif);
Nasungil 7:a8ebb0cab33d 78 //// printf("MAXIF : 0x%x\n", maxif);
Nasungil 7:a8ebb0cab33d 79 //
Nasungil 7:a8ebb0cab33d 80 //
Nasungil 7:a8ebb0cab33d 81 //}
Nasungil 0:fadd3703a42c 82 //forget
Nasungil 0:fadd3703a42c 83 void forget()
Nasungil 0:fadd3703a42c 84 {
Nasungil 0:fadd3703a42c 85 write(NM_FORGET, 0);
Nasungil 0:fadd3703a42c 86 }
Nasungil 0:fadd3703a42c 87 int clearNeurons()
Nasungil 0:fadd3703a42c 88 {
Nasungil 0:fadd3703a42c 89 write(NM_FORGET,0);
Nasungil 6:4bc46c554aed 90 write(NM_NSR, 0x10);
Nasungil 0:fadd3703a42c 91 for (int i=0; i< NEURONSIZE; i++) write(NM_TESTCOMP,0);
Nasungil 6:4bc46c554aed 92 write(NM_NSR, 0);
Nasungil 7:a8ebb0cab33d 93
Nasungil 7:a8ebb0cab33d 94 if(read(NM_MINIF)==2)
Nasungil 0:fadd3703a42c 95 return(0); //clear ok
Nasungil 0:fadd3703a42c 96 else
Nasungil 0:fadd3703a42c 97 return(1); //clear error
Nasungil 7:a8ebb0cab33d 98
Nasungil 0:fadd3703a42c 99 }
Nasungil 0:fadd3703a42c 100 int learn(unsigned char vector[], int length, int category)
Nasungil 0:fadd3703a42c 101 {
Nasungil 0:fadd3703a42c 102 broadcast(vector, length);
Nasungil 0:fadd3703a42c 103 write(NM_CAT,category);
Nasungil 0:fadd3703a42c 104 return(read(NM_NCOUNT));
Nasungil 0:fadd3703a42c 105 }
Nasungil 3:3362f56d99fc 106
Nasungil 0:fadd3703a42c 107 int classify(unsigned char vector[], int length, int* distance, int* category, int* nid)
Nasungil 0:fadd3703a42c 108 {
Nasungil 0:fadd3703a42c 109 broadcast(vector, length);
Nasungil 0:fadd3703a42c 110 *distance = read(NM_DIST);
Nasungil 0:fadd3703a42c 111 *category = read(NM_CAT) & 0x7FFF; //Degenerated bit15 is masked
Nasungil 0:fadd3703a42c 112 *nid = read(NM_NID);
Nasungil 6:4bc46c554aed 113
Nasungil 0:fadd3703a42c 114 return(read(NM_NSR));
Nasungil 0:fadd3703a42c 115 }
Nasungil 5:dacd883e994d 116
Nasungil 0:fadd3703a42c 117 void setRBF()
Nasungil 0:fadd3703a42c 118 {
Nasungil 0:fadd3703a42c 119 int tempNSR=read(NM_NSR);
Nasungil 0:fadd3703a42c 120 write(NM_NSR, tempNSR & 0xDF);
Nasungil 0:fadd3703a42c 121 }
Nasungil 0:fadd3703a42c 122 void setKNN()
Nasungil 0:fadd3703a42c 123 {
Nasungil 0:fadd3703a42c 124 int tempNSR = read(NM_NSR);
Nasungil 0:fadd3703a42c 125 write(NM_NSR, tempNSR | 0x20);
Nasungil 0:fadd3703a42c 126 }
Nasungil 0:fadd3703a42c 127
Nasungil 0:fadd3703a42c 128 //Read the selected neuron data.
Nasungil 0:fadd3703a42c 129 int NCOUNT()
Nasungil 0:fadd3703a42c 130 {
Nasungil 0:fadd3703a42c 131 return(read(NM_NCOUNT));
Nasungil 0:fadd3703a42c 132 }
Nasungil 0:fadd3703a42c 133
Nasungil 0:fadd3703a42c 134
Nasungil 0:fadd3703a42c 135 //write data
Nasungil 0:fadd3703a42c 136 void write(char reg, int data)
Nasungil 0:fadd3703a42c 137 {
Nasungil 0:fadd3703a42c 138 NM500.format(8,0);
Nasungil 0:fadd3703a42c 139 BC_CS = LOW;
Nasungil 0:fadd3703a42c 140 NM500.write(1); //dummy
Nasungil 0:fadd3703a42c 141 NM500.write(CM1K+0x80);
Nasungil 0:fadd3703a42c 142 NM500.write(0);
Nasungil 0:fadd3703a42c 143 NM500.write(0);
Nasungil 0:fadd3703a42c 144 NM500.write(reg);
Nasungil 0:fadd3703a42c 145 NM500.write(0);
Nasungil 0:fadd3703a42c 146 NM500.write(0);
Nasungil 0:fadd3703a42c 147 NM500.write(1);
Nasungil 0:fadd3703a42c 148 NM500.write((unsigned char)(data >> 8)); // upper data
Nasungil 0:fadd3703a42c 149 NM500.write((unsigned char)(data & 0x00FF)); // lower data
Nasungil 0:fadd3703a42c 150 //for(int i=0;i<10;i++);
Nasungil 0:fadd3703a42c 151 BC_CS = HIGH;
Nasungil 0:fadd3703a42c 152
Nasungil 0:fadd3703a42c 153
Nasungil 0:fadd3703a42c 154 }
Nasungil 0:fadd3703a42c 155
Nasungil 0:fadd3703a42c 156 //read data
Nasungil 0:fadd3703a42c 157 int read(char reg)
Nasungil 0:fadd3703a42c 158 {
Nasungil 0:fadd3703a42c 159 NM500.format(8,0);
Nasungil 0:fadd3703a42c 160 BC_CS = LOW; //BC enable
Nasungil 0:fadd3703a42c 161
Nasungil 0:fadd3703a42c 162 NM500.write(1); //dummy
Nasungil 0:fadd3703a42c 163 NM500.write(CM1K);
Nasungil 0:fadd3703a42c 164 NM500.write(0);
Nasungil 0:fadd3703a42c 165 NM500.write(0);
Nasungil 0:fadd3703a42c 166 NM500.write(reg);
Nasungil 0:fadd3703a42c 167 NM500.write(0);
Nasungil 0:fadd3703a42c 168 NM500.write(0);
Nasungil 0:fadd3703a42c 169 NM500.write(1);
Nasungil 0:fadd3703a42c 170 int data = NM500.write(0); // Send 0 to push upper data out
Nasungil 0:fadd3703a42c 171 data = (data << 8) + NM500.write(0); // Send 0 to push lower data out
Nasungil 0:fadd3703a42c 172 BC_CS = HIGH;
Nasungil 0:fadd3703a42c 173 return(data);
Nasungil 0:fadd3703a42c 174 }
Nasungil 0:fadd3703a42c 175 int broadcast(unsigned char vector[], int length)
Nasungil 0:fadd3703a42c 176 {
Nasungil 0:fadd3703a42c 177 for(int i=0; i<length-1; i++)
Nasungil 0:fadd3703a42c 178 write(NM_COMP,vector[i]);
Nasungil 0:fadd3703a42c 179 write(NM_LCOMP, vector[length-1]);
Nasungil 0:fadd3703a42c 180
Nasungil 0:fadd3703a42c 181 return read(NM_NSR);
Nasungil 0:fadd3703a42c 182 }
Nasungil 0:fadd3703a42c 183
Nasungil 7:a8ebb0cab33d 184 //int NeuronToSD()
Nasungil 7:a8ebb0cab33d 185 //{
Nasungil 7:a8ebb0cab33d 186 //
Nasungil 7:a8ebb0cab33d 187 // char neurons[NEURONSIZE];
Nasungil 7:a8ebb0cab33d 188 // int aif=0;
Nasungil 7:a8ebb0cab33d 189 // fp = fopen("/sd/data.txt", "w");
Nasungil 7:a8ebb0cab33d 190 // if(fp == NULL)
Nasungil 7:a8ebb0cab33d 191 // error("Write SD Fail");
Nasungil 7:a8ebb0cab33d 192 // fflush(stdin);
Nasungil 7:a8ebb0cab33d 193 //
Nasungil 7:a8ebb0cab33d 194 // //save NSR
Nasungil 7:a8ebb0cab33d 195 // int TempNSR = read(NM_NSR);
Nasungil 7:a8ebb0cab33d 196 //
Nasungil 7:a8ebb0cab33d 197 // //read NCOUNT
Nasungil 7:a8ebb0cab33d 198 // int nm_cnt = read(NM_NCOUNT);
Nasungil 7:a8ebb0cab33d 199 // if(nm_cnt == 0xFFFF || nm_cnt == 0x7FFF) //change
Nasungil 7:a8ebb0cab33d 200 // nm_cnt = MAXNEURONS;
Nasungil 7:a8ebb0cab33d 201 // //printf("NCOUNT : %d\n", nm_cnt);
Nasungil 7:a8ebb0cab33d 202 //
Nasungil 7:a8ebb0cab33d 203 //
Nasungil 7:a8ebb0cab33d 204 // //write NSR-SR Mode
Nasungil 7:a8ebb0cab33d 205 // write(NM_NSR, 0x10);
Nasungil 7:a8ebb0cab33d 206 //
Nasungil 7:a8ebb0cab33d 207 // //reset chain
Nasungil 7:a8ebb0cab33d 208 // write(NM_RSTCHAIN, 0);
Nasungil 7:a8ebb0cab33d 209 //
Nasungil 7:a8ebb0cab33d 210 // //loop until max neruon
Nasungil 7:a8ebb0cab33d 211 // for(int cnt = 1; cnt<=nm_cnt; cnt++){
Nasungil 7:a8ebb0cab33d 212 //
Nasungil 7:a8ebb0cab33d 213 // //read context
Nasungil 7:a8ebb0cab33d 214 // int context = read(NM_NCR);
Nasungil 7:a8ebb0cab33d 215 // //printf("context #%d\t,", context);
Nasungil 7:a8ebb0cab33d 216 // fprintf(fp,"%d\t", context);
Nasungil 7:a8ebb0cab33d 217 //
Nasungil 7:a8ebb0cab33d 218 // //GCR register fail
Nasungil 7:a8ebb0cab33d 219 // if(context != 5){
Nasungil 7:a8ebb0cab33d 220 // if(cnt < MAXNEURONS/2){ //neuron1 fail
Nasungil 7:a8ebb0cab33d 221 // Gcr1=1;
Nasungil 7:a8ebb0cab33d 222 // printf("\nNID # %d, GCR # %d \n",cnt,context);
Nasungil 7:a8ebb0cab33d 223 // }
Nasungil 7:a8ebb0cab33d 224 // else{ //neruon2 fail
Nasungil 7:a8ebb0cab33d 225 // Gcr2=1;
Nasungil 7:a8ebb0cab33d 226 // printf("\nNID # %d, GCR # %d \n",cnt,context);
Nasungil 7:a8ebb0cab33d 227 // }
Nasungil 7:a8ebb0cab33d 228 // }
Nasungil 7:a8ebb0cab33d 229 // char temp_neuron[NEURONSIZE];
Nasungil 7:a8ebb0cab33d 230 //// for(int j =0;j<NEURONSIZE;j=j+2){
Nasungil 7:a8ebb0cab33d 231 //// temp_neuron[j] = cnt>>8; //upper bit save
Nasungil 7:a8ebb0cab33d 232 //// temp_neuron[j+1] = cnt; //low bit save
Nasungil 7:a8ebb0cab33d 233 //// }
Nasungil 7:a8ebb0cab33d 234 // if(cnt%2 == 1){
Nasungil 7:a8ebb0cab33d 235 // for(int j =0;j<DATA_CNT;j=j+2){
Nasungil 7:a8ebb0cab33d 236 // temp_neuron[j] = cnt>>8; //upper bit save
Nasungil 7:a8ebb0cab33d 237 // temp_neuron[j+1] = cnt; //low bit save
Nasungil 7:a8ebb0cab33d 238 // }
Nasungil 7:a8ebb0cab33d 239 // for(int j =DATA_CNT;j<NEURONSIZE; j++){
Nasungil 7:a8ebb0cab33d 240 // temp_neuron[j] = array1[j]; //upper bit save
Nasungil 7:a8ebb0cab33d 241 // }
Nasungil 7:a8ebb0cab33d 242 // }
Nasungil 7:a8ebb0cab33d 243 // else if(cnt%2 == 0){
Nasungil 7:a8ebb0cab33d 244 // for(int j =0;j<DATA_CNT;j=j+2){
Nasungil 7:a8ebb0cab33d 245 // temp_neuron[j] = cnt>>8; //upper bit save
Nasungil 7:a8ebb0cab33d 246 // temp_neuron[j+1] = cnt; //low bit save
Nasungil 7:a8ebb0cab33d 247 // }
Nasungil 7:a8ebb0cab33d 248 // for(int j =DATA_CNT;j<NEURONSIZE; j++){
Nasungil 7:a8ebb0cab33d 249 // temp_neuron[j] = array2[j]; //upper bit save
Nasungil 7:a8ebb0cab33d 250 // }
Nasungil 7:a8ebb0cab33d 251 // }
Nasungil 7:a8ebb0cab33d 252 // //printf("Neruon Data : ");
Nasungil 7:a8ebb0cab33d 253 // //read Neuron data
Nasungil 7:a8ebb0cab33d 254 // for (int j=0; j<NEURONSIZE; j++){
Nasungil 7:a8ebb0cab33d 255 // //read COMP
Nasungil 7:a8ebb0cab33d 256 // neurons[j]=read(NM_COMP);
Nasungil 7:a8ebb0cab33d 257 // fprintf(fp,"%d,", neurons[j]);
Nasungil 7:a8ebb0cab33d 258 // //printf("%d,", neurons[j]);
Nasungil 7:a8ebb0cab33d 259 // if(temp_neuron[j]!= neurons[j]){
Nasungil 7:a8ebb0cab33d 260 //
Nasungil 7:a8ebb0cab33d 261 // if(j<MAXNEURONS/2){
Nasungil 7:a8ebb0cab33d 262 // printf("NID # %d Memory Fail\n", cnt);
Nasungil 7:a8ebb0cab33d 263 // Memory1 = 1;
Nasungil 7:a8ebb0cab33d 264 // }
Nasungil 7:a8ebb0cab33d 265 // else{
Nasungil 7:a8ebb0cab33d 266 // printf("NID # %d Memory Fail\n", cnt);
Nasungil 7:a8ebb0cab33d 267 // Memory2 = 1;
Nasungil 7:a8ebb0cab33d 268 // }
Nasungil 7:a8ebb0cab33d 269 // printf("# %d : temp %d, neruon %d\n",j, temp_neuron[j],neurons[j]);
Nasungil 7:a8ebb0cab33d 270 //
Nasungil 7:a8ebb0cab33d 271 // }
Nasungil 7:a8ebb0cab33d 272 //
Nasungil 6:4bc46c554aed 273 // }
Nasungil 7:a8ebb0cab33d 274 //
Nasungil 7:a8ebb0cab33d 275 //
Nasungil 7:a8ebb0cab33d 276 //
Nasungil 7:a8ebb0cab33d 277 // //read AIF
Nasungil 7:a8ebb0cab33d 278 // aif=read(NM_AIF);
Nasungil 7:a8ebb0cab33d 279 // fprintf(fp,"\t%d\t", aif);
Nasungil 7:a8ebb0cab33d 280 // //printf("AIF : %d,\t", aif);
Nasungil 7:a8ebb0cab33d 281 //
Nasungil 7:a8ebb0cab33d 282 // //aif register fail
Nasungil 7:a8ebb0cab33d 283 // if(aif != 5){
Nasungil 7:a8ebb0cab33d 284 // if(cnt <= 576){ //neuron1 fail
Nasungil 7:a8ebb0cab33d 285 // Aif1=1;
Nasungil 7:a8ebb0cab33d 286 // printf("\nNID # %d, AIF # %d \n",cnt,aif);
Nasungil 7:a8ebb0cab33d 287 // }
Nasungil 7:a8ebb0cab33d 288 // else{ //neruon2 fail
Nasungil 7:a8ebb0cab33d 289 // Aif2=1;
Nasungil 7:a8ebb0cab33d 290 // printf("\nNID # %d, AIF # %d \n",cnt,aif);
Nasungil 7:a8ebb0cab33d 291 // }
Nasungil 7:a8ebb0cab33d 292 // }
Nasungil 7:a8ebb0cab33d 293 //
Nasungil 7:a8ebb0cab33d 294 // //raed minif
Nasungil 7:a8ebb0cab33d 295 // int minif=read(NM_MINIF);
Nasungil 7:a8ebb0cab33d 296 // //printf("MINIF : %d,\t", minif);
Nasungil 7:a8ebb0cab33d 297 // fprintf(fp,"%d\t", minif);
Nasungil 7:a8ebb0cab33d 298 //
Nasungil 7:a8ebb0cab33d 299 // //minif register fail
Nasungil 7:a8ebb0cab33d 300 // if(minif != 3){
Nasungil 7:a8ebb0cab33d 301 // if(cnt <= 576){ //neuron1 fail
Nasungil 7:a8ebb0cab33d 302 // Minif1 = 1;
Nasungil 7:a8ebb0cab33d 303 // printf("\nNID # %d, MINIF # %d \n",cnt,minif);
Nasungil 7:a8ebb0cab33d 304 // }
Nasungil 7:a8ebb0cab33d 305 // else{ //neruon2 fail
Nasungil 7:a8ebb0cab33d 306 // Minif2 = 1;
Nasungil 7:a8ebb0cab33d 307 // printf("\nNID # %d, MINIF # %d \n",cnt,minif);
Nasungil 7:a8ebb0cab33d 308 // }
Nasungil 7:a8ebb0cab33d 309 // }
Nasungil 7:a8ebb0cab33d 310 //
Nasungil 7:a8ebb0cab33d 311 // //read cat
Nasungil 7:a8ebb0cab33d 312 // int cat = read(NM_CAT) & 0x7FFF;
Nasungil 7:a8ebb0cab33d 313 // fprintf(fp,"%d\t", cat);
Nasungil 7:a8ebb0cab33d 314 // fprintf(fp,"\n");
Nasungil 7:a8ebb0cab33d 315 // //printf("****CAT : %d\n", cat);
Nasungil 7:a8ebb0cab33d 316 //
Nasungil 7:a8ebb0cab33d 317 // //reset chain test
Nasungil 7:a8ebb0cab33d 318 //// if(cnt > 2 && cat == 1)
Nasungil 7:a8ebb0cab33d 319 //// CMN_RC = 1;
Nasungil 7:a8ebb0cab33d 320 //
Nasungil 7:a8ebb0cab33d 321 // //cat test
Nasungil 7:a8ebb0cab33d 322 // if(cnt != cat){
Nasungil 7:a8ebb0cab33d 323 // printf("cnt : %d , cat : %d \n", cnt, cat);
Nasungil 7:a8ebb0cab33d 324 // if(cnt <= 576){
Nasungil 7:a8ebb0cab33d 325 // Cat1 = 1;
Nasungil 7:a8ebb0cab33d 326 // printf("\n NM500 #1 Cat Fail # %d\n", cnt);
Nasungil 7:a8ebb0cab33d 327 // }
Nasungil 7:a8ebb0cab33d 328 // else {
Nasungil 7:a8ebb0cab33d 329 // Cat2 = 1;
Nasungil 7:a8ebb0cab33d 330 // printf("\n NM500 #2 Cat Fail # %d\n", cnt);
Nasungil 7:a8ebb0cab33d 331 // }
Nasungil 7:a8ebb0cab33d 332 // }
Nasungil 7:a8ebb0cab33d 333 // printf(".");
Nasungil 7:a8ebb0cab33d 334 // }
Nasungil 7:a8ebb0cab33d 335 // printf("\n");
Nasungil 7:a8ebb0cab33d 336 //
Nasungil 7:a8ebb0cab33d 337 //
Nasungil 7:a8ebb0cab33d 338 // fclose(fp);
Nasungil 7:a8ebb0cab33d 339 // write(NM_NSR, TempNSR); // set the NN back to its calling status
Nasungil 7:a8ebb0cab33d 340 // return read(NM_NCOUNT);
Nasungil 7:a8ebb0cab33d 341 //}
Nasungil 7:a8ebb0cab33d 342 //
Nasungil 7:a8ebb0cab33d 343 //
Nasungil 7:a8ebb0cab33d 344 //int SDToNeurons()
Nasungil 7:a8ebb0cab33d 345 //{
Nasungil 7:a8ebb0cab33d 346 // int context,aif,minif,cat;
Nasungil 7:a8ebb0cab33d 347 // char neurons[NEURONSIZE];
Nasungil 7:a8ebb0cab33d 348 // fp = fopen("/sd/data.txt", "r");
Nasungil 7:a8ebb0cab33d 349 //
Nasungil 7:a8ebb0cab33d 350 //
Nasungil 7:a8ebb0cab33d 351 // if(fp == NULL)
Nasungil 7:a8ebb0cab33d 352 // error("Read SD Fail");
Nasungil 7:a8ebb0cab33d 353 //
Nasungil 7:a8ebb0cab33d 354 // //save NSR
Nasungil 7:a8ebb0cab33d 355 // int TempNSR = read(NM_NSR);
Nasungil 7:a8ebb0cab33d 356 //
Nasungil 7:a8ebb0cab33d 357 // //write NSR-SR Mode
Nasungil 7:a8ebb0cab33d 358 // write(NM_NSR, 0x10);
Nasungil 7:a8ebb0cab33d 359 //
Nasungil 7:a8ebb0cab33d 360 // //reset chain
Nasungil 7:a8ebb0cab33d 361 // write(NM_RSTCHAIN, 0);
Nasungil 7:a8ebb0cab33d 362 //
Nasungil 7:a8ebb0cab33d 363 // //SD data read -> Neurons
Nasungil 7:a8ebb0cab33d 364 // for(int i=1;i<=MAXNEURONS;i++){
Nasungil 7:a8ebb0cab33d 365 // //read context
Nasungil 7:a8ebb0cab33d 366 // fscanf(fp,"%d", &context);
Nasungil 7:a8ebb0cab33d 367 // // printf("context # %d ", context);
Nasungil 7:a8ebb0cab33d 368 // write(NM_GCR,context);
Nasungil 7:a8ebb0cab33d 369 //
Nasungil 7:a8ebb0cab33d 370 //
Nasungil 7:a8ebb0cab33d 371 // //read comp
Nasungil 7:a8ebb0cab33d 372 // for (int j=0; j<NEURONSIZE; j++){
Nasungil 7:a8ebb0cab33d 373 // //read COMP
Nasungil 7:a8ebb0cab33d 374 // fscanf(fp,"%d,", &neurons[j]);
Nasungil 7:a8ebb0cab33d 375 // // printf("%d\t,", neurons[j]);
Nasungil 7:a8ebb0cab33d 376 // write(NM_COMP,neurons[j]);
Nasungil 7:a8ebb0cab33d 377 // }
Nasungil 7:a8ebb0cab33d 378 // fscanf(fp,"\t%d\t", &aif);
Nasungil 7:a8ebb0cab33d 379 // // printf("AIF # %d \t", aif);
Nasungil 7:a8ebb0cab33d 380 // write(NM_AIF,aif);
Nasungil 7:a8ebb0cab33d 381 //
Nasungil 7:a8ebb0cab33d 382 // fscanf(fp,"%d\t", &minif);
Nasungil 7:a8ebb0cab33d 383 // // printf("MINIF # %d", minif);
Nasungil 7:a8ebb0cab33d 384 // write(NM_MINIF,minif);
Nasungil 7:a8ebb0cab33d 385 //
Nasungil 7:a8ebb0cab33d 386 // fscanf(fp,"%d\t", &cat);
Nasungil 7:a8ebb0cab33d 387 // // printf("CAT # %d \n", cat);
Nasungil 7:a8ebb0cab33d 388 // write(NM_CAT,cat);
Nasungil 7:a8ebb0cab33d 389 // printf(".");
Nasungil 7:a8ebb0cab33d 390 //
Nasungil 7:a8ebb0cab33d 391 // }
Nasungil 7:a8ebb0cab33d 392 // printf("\n");
Nasungil 7:a8ebb0cab33d 393 // fclose(fp);
Nasungil 7:a8ebb0cab33d 394 // write(NM_NSR, TempNSR); // set the NN back to its calling status
Nasungil 7:a8ebb0cab33d 395 // return NCOUNT();
Nasungil 7:a8ebb0cab33d 396 //}
Nasungil 2:52da04ab1c78 397
Nasungil 6:4bc46c554aed 398
Nasungil 8:ad9c8681ca41 399