Hirdetés

Új hozzászólás Aktív témák

  • bear_

    aktív tag

    válasz bear_ #14843 üzenetére

    Megvan a probléma, a for ciklust rontottam el.

    Viszont itt is a következő problémám:

    Azt szeretném, ha nyomógomb megnyomására egyel magasabb értéket jelenítene meg a 7 szegmenses kijelző.

    0 az alapállapot, és ha nyomva tartom akkor felugrik 1-re, ha elengedem akkor visszaugrik 0-ra. Gyanítom ez azért van mert végigfut a kód és nullázódik a mikrokontroller. Hogy lehet azt megoldani, hogy a változó megjegyezze az értéket?

    kód:

    while (1) {
    int num=0;
       if(HAL_GPIO_ReadPin(SW1_GPIO_Port, SW1_Pin)==0){
       num++;  
    }  
     HAL_GPIO_WritePin(STCP_GPIO_Port, STCP_Pin, GPIO_PIN_RESET);
         for(int i = 0; i <= 15; i++) {
          HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_RESET);
         if(digits[num][i] == 1) {
         HAL_GPIO_WritePin(DS_GPIO_Port, DS_Pin, GPIO_PIN_SET);
         }else {
         HAL_GPIO_WritePin(DS_GPIO_Port, DS_Pin, GPIO_PIN_RESET);
      }                
    HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_RESET);
    HAL_GPIO_WritePin(SHCP_GPIO_Port, SHCP_Pin, GPIO_PIN_SET);
      }
    HAL_GPIO_WritePin(STCP_GPIO_Port, STCP_Pin, GPIO_PIN_SET);
     }
    }

Új hozzászólás Aktív témák