#include <iostream>
int main()
{
int A=0;
int B=2;
switch (B)
{
case 0:
A=10;
break;
case 1:
A=20;
break;
case 2:
A=30;
break;
case 3:
A=40;
break;
case 4:
A=50;
break;
}
std::cout << A << '\n';
return 0;
}
#include <iostream>
int main()
{
int A=0;
int B=2;
switch (B)
{
case 0:
A=10;
case 1:
A=20;
case 2:
A=30;
case 3:
A=40;
case 4:
A=50;
}
std::cout << A << '\n';
return 0;
}
До сих пор думаешь, что результат и в первом и во втором будет 30?
case-ы - это лишь метки. Сами они ничего не проверяют. Проверяет switch.
Так в Idle режиме он выходит из спячки по любому поводу. Выполнение программы, после просыпания, продолжается после команды SLEEP. Вот выдержка из даташита.
IfoR писал(а):Так в Idle режиме он выходит из спячки по любому поводу. Выполнение программы, после просыпания, продолжается после команды SLEEP. Вот выдержка из даташита.
Это я видел. А где здесь сказано, что Timer0 учавствует в процессе?
Ну, ИМХО, раз прерывание от таймера должно сработать и выполниться, то тогда нужно активировать тактовый счётчик ядра, а значит выйти из спячки.
В железе я 0-й таймер не проверял (использовал 2 таймер), но в симуляторе работает.