ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
824339 Топик полностью
Dingo (16.03.2018 13:32, просмотров: 93) ответил evgeniy1294 на А вот почему заходит при 0, я хз. Попробую сегодня повторить эксперимент, статистику соберу немного по другому. Только с обеда приду.
У меня такой исходник занимался статистикой  Что непонятно, так это прерывание вызывалось 2 раза, а это либо операция(-ции?) со стеком, либо как-то завернуть по второму кругу тело прерывания через механизм отложенных. /* [.] [0 | 1] [1] 57 127 [2] 58 1280 [3] 59 2375 [4] 65 1 [5] 48 615323 */ #define MAXNUMS 100 static int aval[MAXNUMS+1][2]; // Prepare (Clear) array// void st_init( void ) { aval [0][0] = 0; } // Count values // void st_count( int val) { int iter; for ( iter=aval[0][0]; iter > 0; iter-- ) { if (aval[iter][0] == val) { aval[iter][1]++; break; } } if ( iter != 0 ) return; // All done if ( aval[0][0] < MAXNUMS ) { aval[0][0]++; int nums = aval[0][0]; aval[nums][0] = val; aval[nums][1] = 1; } return; } // Print values // void st_echo(void) { printf("--=stat=--\r\n"); for( int i = aval[0][0]; i>0; i--) { printf(" %d; %d\r\n", aval[i][0], aval[i][1] ); } printf("\r\n"); }