Arduino se mi zelo čudno obnaša.
Torej tukaj imam void, ki skrbi za nastavljanje simbolov. Vhodni parameter index pove, katero mesto Stringa call hočem spreminjati. Najprej vzame začetno vrednost na tem mestu, nato pa se spreminja z vrtenjem enkoderja (rot).
- Koda: Izberi vse
void editCallsing(uint8_t index){
rot = call[index];
while(!digitalRead(OK_BTN)){
call[index] = (uint8_t)rot;
sendStringDataToDisplay(call, "t2");
_delay_ms(150);
}
}
Ker je najdaljša dolžina klicnega znaka 6 znakov to funkcjo kličem 6x:
- Koda: Izberi vse
if(input[1] == '0'){
for(uint8_t i = 0; i < 6; i++){
_delay_ms(100);
sendDataToDisplay(i, "h0");
editCallsing(i);
}
}
Ta vrstica nastavi cursor, da veš kateri znak urejaš.
- Koda: Izberi vse
sendDataToDisplay(i, "h0");
Problem je v tem, da se program ne ustavi v while() zanki. Vhod OK_BTN je nastavljen kot INPUT_PULLUP in napetosti so prave. Dodal sem še 1k pullup upor.
Ali ima kdo kakšno idejo, kaj bi še naredil?
lp, Lovro