main() { int a[10][10], m, n; printf("enter number of rows and columns\n"); scanf("%d\n%d",&m,&n); scanmatrix(m,n,a); dispmatrix(m,n,a); }
int main(int argc, char** argv) { int m=0, n=0, j, k, jx, kx; double* matrix; printf("Input the number of rows of the matrix: "); scanf("%d", &m); printf("Input the number of columns of the matrix: "); scanf("%d", &n); printf("Input the matrix[%d][%d]:\n", m, n); matrix = scanmatrix(m, n); printf("Printed matrix:\n"); printmatrix(matrix, m, n); m = m > 0 ? m : 0; n = n > 0 ? n : 0; matrix = reallocmatrix(matrix, m, n, m+3, n+3); m += 3; n += 3; printf("Upsized matrix:\n"); printmatrix(matrix, m, n); jx=m-2; kx=n-2; for(j=0; j<m; j++) { matrix[j+kx*m] = j; } for(k=0; k<n; k++) { matrix[jx+k*m] = k; } printf("Changed matrix:\n"); printmatrix(matrix, m, n); matrix = cutOffRowJ(matrix, m--, n, jx); printf("Cut off row %d:\n", jx); printmatrix(matrix, m, n); matrix = cutOffColK(matrix, m, n--, kx); printf("Cut off col %d:\n", kx); printmatrix(matrix, m, n); matrix = reallocmatrix(matrix, m, n, m-2, n-2); m -= 2; n -= 2; printf("Downsized matrix:\n"); printmatrix(matrix, m, n); matrix = freematrix(matrix); return EXIT_SUCCESS; }
void recordLED(uint8_t ledkey) { ledmodeIndex = ledkey - K_LED0; int8_t col, row; uint32_t prev, cur; uint8_t prevBit, curBit; uint8_t keyidx; uint8_t matrixState = 0; uint8_t retVal = 0; int8_t i; int16_t index; long page; uint8_t ledblk; long address; index = 0; page = 0; wdt_reset(); sendString(ledstart); for(col = 0; col < MAX_COL; col++) { for(row = 0; row < MAX_ROW; row++) { debounceMATRIX[col][row] = -1; } } while(1) { wdt_reset(); matrixState = scanmatrix(); /* LED Blinker */ led_blink(matrixState); /* LED Fader */ led_fader(); // debounce cleared => compare last matrix and current matrix for(col = 0; col < MAX_COL; col++) { prev = MATRIX[col]; cur = curMATRIX[col]; MATRIX[col] = curMATRIX[col]; for(i = 0; i < MAX_ROW; i++) { prevBit = (uint8_t)prev & 0x01; curBit = (uint8_t)cur & 0x01; prev >>= 1; cur >>= 1; #ifdef KBDMOD_M5 if (i < 8) { row = 10+i; }else if (i < 16) { row = -6+i; }else { row = -16+i; } #else //KBDMOD_M7 row = i; #endif keyidx = pgm_read_byte(keymap[6]+(col*MAX_ROW)+row); if (keyidx == K_NONE) continue; if (!prevBit && curBit) //pushed { debounceMATRIX[col][row] = 0; //triger }else if (prevBit && !curBit) //released { debounceMATRIX[col][row] = 0; //triger } if(debounceMATRIX[col][row] >= 0) { if(debounceMATRIX[col][row]++ >= DEBOUNCE_MAX) { if(curBit) { if (keyidx == K_FN) { flash_writeinpage(ledmode, LEDMODE_ADDRESS); led_mode_save(); wdt_reset(); sendString("===========================@"); for (ledblk = LED_PIN_Fx; ledblk < LED_PIN_VESEL; ledblk++) { wdt_reset(); sendString(sledblk[ledblk-5]); sendString(sledmode[ledmode[ledmodeIndex][ledblk]]); } sendString("===========================@"); wdt_reset(); sendString(ledend); return; }else { ledblk = keyidx - K_LFX + 5; if(++ledmode[ledmodeIndex][ledblk] >= LED_EFFECT_NONE) { ledmode[ledmodeIndex][ledblk] = LED_EFFECT_FADING; } wdt_reset(); sendString(sledblk[ledblk-5]); wdt_reset(); sendString(sledmode[ledmode[ledmodeIndex][ledblk]]); for (ledblk = LED_PIN_Fx; ledblk < LED_PIN_VESEL; ledblk++) { pwmDir[ledblk ] = 0; pwmCounter[ledblk] = 0; led_mode_change(ledblk, ledmode[ledmodeIndex][ledblk]); } } }else { } debounceMATRIX[col][row] = -1; } } } } } }