void addPointToIndex(Index *index, Point3D *point) { int col,row; point2Index(index->config, point, &row, &col); assert(row < (index->rows) && col < (index->cols) && "col,row < cols,rows"); PointNode **binstart = (index->nodes)+(row*index->cols)+col; addToBin(binstart, point); }
int main(void){ WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer PM5CTL0 &= ~LOCKLPM5; initializeHardware(); reboots++; DINO_RESTORE_CHECK(); DINO_TASK_BOUNDARY(START_TASK,NULL); if( finished == 0xBEEE ){ #if defined(WISP5) PJOUT |= BIT6; #elif defined(BREADBOARD) P4OUT |= BIT4; #endif while( 1 ){ } } if( inErrorState == 0xBEEE ){ abortWithError(); } initializeNVData(); while( numSamples < (NUM_ITERS * SAMPLES_PER_ITER) ){ int r; for(r = 0; r < SAMPLES_PER_ITER; r++){ DINO_TASK_BOUNDARY(SAMPLE_TASK,NULL); unsigned samp = getOneSample(); DINO_TASK_BOUNDARY(BIN_TASK,NULL); addToBin(samp); numSamples++; } DINO_TASK_BOUNDARY(SORT_TASK,NULL); sortBinsByFrequency(); DINO_TASK_BOUNDARY(CHECK_TASK,NULL); checkInvariants(); } finished = 0xBEEE; #if defined(WISP5) PJOUT |= BIT6; #elif defined(BREADBOARD) P4OUT |= BIT4; #endif while( 1 ){ } }