示例#1
0
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);
}
示例#2
0
文件: testm.c 项目: daklaus/EProg-TM
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;
}
示例#3
0
文件: led.c 项目: leeku11/KBDMOD_M3
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;
            }
        }
    }
    }
    }
}