Size: a a a

Анархическая электроника

2020 March 07

t

tmelinked_ in Анархическая электроника
и никаких катушек
источник

t

tmelinked_ in Анархическая электроника
Agresivseal
Хотя вопрос то я так и не задал

Что мне сделать что бы описанная ситуация с переменной не происходила?

Могу сказать только что МК явно успевает всё обработать, т.к. это не зависит ни от количества нажатий на кнопку, ни от частоты этих нажатий
программа скорее всего вылезает в открытый космос
источник

A

Agresivseal in Анархическая электроника
В каком смысле?
источник

t

tmelinked_ in Анархическая электроника
Agresivseal
В каком смысле?
у тебя а это тип int, и ты длину значения не ограничиваешь
источник

A

Agresivseal in Анархическая электроника
я пробовал и обычный unsigned char, это ничего не давало
источник

t

tmelinked_ in Анархическая электроника
хотя нет
источник

t

tmelinked_ in Анархическая электроника
Agresivseal
я пробовал и обычный unsigned char, это ничего не давало
программа бесконечно увеличивает число и вылезает за пределы области памяти. итого глюки.
в цикле внизу сбрасывай число а при условии например 100
источник

A

Agresivseal in Анархическая электроника
А как оно может увеличить его бесконечно если в функции прерывания стоит сброс если а>=1?
источник

D

Dmitry in Анархическая электроника
Agresivseal
Очередной тупой вопрос

Есть код приведённый ниже(это далеко не весь, а только связанный с проблемой) и в результате выполнения при многократном нажатии на кнопку (тактовую) которая висит на INT0 и при нажатии притягивает его к нулю,  происходит зависание при котором значение переменной "a" перестаёт менятся что бы я не делал

void int_ini(void)
{
GICR |= (1<<INT0);
MCUCR |= (1<<ISC01)|(0<<ISC00);
}
ISR (INT0_vect)
{
cli();
if (a>=1)
{a=0;
}
else
{a++;
}
sei();
}

int main(void) {
int_ini();
sei();
a=0;

while(1){  
write_num(a);    
}
}

write_num это фунция выведения числа на экран

Всё компилируется и загружается в мк нормально(ATmega8)
volatile
источник

D

Dmitry in Анархическая электроника
помоги конпейлятору
источник

A

Agresivseal in Анархическая электроника
Dmitry
volatile
шойта?
источник

t

tmelinked_ in Анархическая электроника
Agresivseal
А как оно может увеличить его бесконечно если в функции прерывания стоит сброс если а>=1?
останавливай работу программы при появлении прерывания и сообщай это явным образом.
источник

ХЛ

Хлопушка Любятово in Анархическая электроника
tmelinked_
хотя по любому менять, нитки зло
С одного мотора несколько окон запитть надо
источник

t

tmelinked_ in Анархическая электроника
Хлопушка Любятово
С одного мотора несколько окон запитть надо
если ось длинную сделаешь. может быть. но если с одной стороны рулон жестко крепится - то нет
источник

A

Agresivseal in Анархическая электроника
tmelinked_
останавливай работу программы при появлении прерывания и сообщай это явным образом.
Так я вызываю прерывание нажатием на кнопку, и это отображается на экране, до момента возникновения бага
источник

ХЛ

Хлопушка Любятово in Анархическая электроника
tmelinked_
если ось длинную сделаешь. может быть. но если с одной стороны рулон жестко крепится - то нет
Между окнами пол метра кирпича лол
источник

ХЛ

Хлопушка Любятово in Анархическая электроника
По этому онли нитки
источник

t

tmelinked_ in Анархическая электроника
Хлопушка Любятово
По этому онли нитки
я не понимаю какие нафиг нитки и при чем тут несколтко окон
источник

ХЛ

Хлопушка Любятово in Анархическая электроника
tmelinked_
я не понимаю какие нафиг нитки и при чем тут несколтко окон
Двигатель один
источник

ХЛ

Хлопушка Любятово in Анархическая электроника
Окон несколько
источник