Но, повторяю: каждый имеет право на веревку достаточной длины, чтобы выстрелить себе в ногу... Я не посягаю на это священное право!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Код: Выделить всё
while (true) {
while (!sys_tick());
led();
...
}
У меня так не получается )))OKF писал(а):Именно так. Никаких простыней.)
Код: Выделить всё
int main(void){
init();
modeType mode = mtInit;
uint16_t modeTimeOut = TIMEOUT_INIT;
while (1) {// super loop
uint8_t ticks;
do ticks = getSysClockInterval(); while(!ticks);
//------------------------------------------- переменные на один раз
modeType newMode = mode;
uint8_t reloadTimeOut = 0;
//------------------------------------------- exec peripherial
//------------------------------------------- Timeout
if ( mode == newMode && modeTimeOut ) {
modeTimeOut--;
if ( !modeTimeOut) {
switch (newMode) {
case mtInit:
//newMode = mtShowTime;
break;
} // switch newmode
} // if ( !modeTimeOut)
} // if modeTimeOut
//------------------------------------------- New or Reload timeout
if (mode != newMode) reloadTimeOut = 1;
if (reloadTimeOut) {
switch (newMode) {
case mtInit:
modeTimeOut = 1;
break;
} // switch newmode
} // if reloadTimeOut
//------------------------------------------- Mode change
if (mode != newMode) {
mode = newMode;
} // if (mode != newMode)
} // while (1) - super loop
}
Код: Выделить всё
TIMSK1 = (1 << TOIE1);
на
TIMSK = (1 << TOIE1);Код: Выделить всё
DDRB = (1 << PB1)|(1 << PB2);
на
DDRD |= (1 << PD3 | (1 << PD4);Код: Выделить всё
p0 = pressure.sealevel(P,ALTITUDE);
LCD.setCursor(0, 1); // ставим курсор на 2 строку
LCD.print("Pres: ");
LCD.print(p0,2);
LCD.print(" mb, ");Код: Выделить всё
p0 = pressure.sealevel(P, ALTITUDE); // mb
float p_mmHg = p0 * 0.750062; // mmHg
LCD.setCursor(0, 1);
LCD.print("Pres: ");
LCD.print(p_mmHg, 1);
LCD.print(" mmHg");