valores de matriz extraños (C, psoc, usbuart)

1

Todavía soy bastante nuevo en la programación, así que lo siento de antemano si mi terminología / formato no está a la altura.

Actualmente estoy trabajando en un elemento de un instrumento musical que me permitirá accionar un botón varias veces con un retardo de tiempo variable entre pulsaciones, grabar esto y hacer un bucle con el patrón.

Actualmente tengo una matriz para grabar los tiempos de las pulsaciones de los botones. Estoy usando el término USB-UART / terra para verificar que mis valores se estén registrando correctamente, pero estoy descubriendo que la matriz se llena con valores aparentemente sin sentido. Me pregunto de dónde provienen estos datos.

En la imagen de abajo, se resaltan en rojo los valores que espero que se conserven en los valores T0, T1 ... etc. En resumen, Mtapi es el int que se usa para seleccionar la ubicación en la matriz que quiero almacenar el valor de miliTAP actual (T0, T1, etc.). Pero como puede ver en las siguientes líneas de datos, están siendo reemplazadas por números de 10 dígitos.

¡Básicamente, me pregunto qué son esos números, por qué los veo y cómo evitar que llenen mi matriz!

¿Pensé que tal vez tenían algo que ver con las ubicaciones de datos de las instancias de matriz? Pero, sinceramente, todo esto es nuevo para mí y no tengo idea. Eso y cómo están cambiando en lo que me parece aleatorio.

Cualquierayudaodirecciónparaseguirleyendoesmuyapreciada.

puedeverelcódigoenGigHub aquí

para una referencia rápida (acortado para publicar aquí): -

if ((Mtapi==0)&&(MTap[0]>0)&&(MTapBtnCHK==0))
{
     int i;
     for (int i=0; i<63; i++)
     {
         MTap[i]=0;    
     }
}

if (MTapBtn_Read()==0)
{
    MultiTapTempo();
}
if (MTapBtn_Read()==1)
{
    MTapBtnCHK=0;
}

// espacio en el código publicado aquí, entonces:

void MultiTapTempo(void)
{
    if (MTapBtnCHK==0)
    {
        Mtapi++;
        MTapBtnCHK=1;

        if(Mtapi==0){}
        if(Mtapi==1){MTap[0]=millisMTAP;}
        if(Mtapi==2){MTap[1]=millisMTAP;}
        if(Mtapi==3){MTap[2]=millisMTAP;}
        if(Mtapi==4){MTap[3]=millisMTAP;}
        if(Mtapi==5){MTap[4]=millisMTAP;}
        if(Mtapi==6){MTap[5]=millisMTAP;}
        if(Mtapi==7){MTap[6]=millisMTAP;}
        if(Mtapi==8){MTap[7]=millisMTAP;}
        if(Mtapi==9){MTap[8]=millisMTAP;}
     }
    
pregunta Ashley Reid

0 respuestas

Lea otras preguntas en las etiquetas