Вчера победил многозадачность в Arduino и решил не делать 4 переменные 2 из которых копия других 2. Засунул одинаковые переменные в разные функции. Заливаю... Светодиоды загорелись, но тухнуть не хотят. В чём я накосячил?
Вот код (кот):
int main() {
init();
while (1) {
led13_ne(), led12_ne();
}
}
void led13_ne() {
DDRB |= B10000000;
//init();
unsigned long previousMillis = 0;
const long interval = 1000;
byte port13read = 0;
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
//currentMillis = 0;
port13read = bitRead(PORTB, 7);
if (port13read == 0) {
PORTB |= B10000000;
//port13read = 1;
} else {
PORTB &= ~B10000000;
//port13read = 0;
}
}
}
void led12_ne() {
DDRB |= B01000000;
unsigned long previousMillis = 0;
const long interval = 500;
byte port12read = 0;
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
//currentMillis = 0;
port12read = bitRead(PORTB, 6);
if (port12read == 0) {
PORTB |= B01000000;
//port13read = 1;
} else {
PORTB &= ~B01000000;
//port13read = 0;
}
}
}
Переменная previousMillis
должна быть или глобальной:
unsigned long previousMillis = 0;
void led13_ne() {
...
}
или статичной:
void led13_ne() {
static unsigned long previousMillis = 0;
...
}
Тогда она будет обнуляться только при рестарте микроконтроллера. А сейчас она обнуляется при каждом вызове функции.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, нужно для лабораторных писать ПО под LinuxПоставил на Virtual Box Mint(писали что он лучше всего для новичков подойдет)
Здравствуйте, изучаю вот OpenGL, и наткнулся на совсем мне непонятную проблему, вот код:
Даны действительные числа х, у, zПолучить: a) max(x,y,z); b)min(x,y,z), max(x,y,z)
Доброго времени этого не пишут в учебниках хочу заставить Лису(FF) вычислять math функцию внутри браузера, а не через Windows (ADVAPI32DLL Function36)