Комментарии 18
прошу побольше критики
Изучите, пожалуйста, как составляются блок-схемы.
+4
Поздравляю с изобретением ПИД-регулятора
0
Так как это один из первых проектов, прошу побольше критики!
Ваш код ужасен.
0
… прошу побольше критики!
Статья очень несодержательная.
Мало картинок.
+3
После нескольких месяцев разбора принципов работы с Arduino IDEЗа несколько месяцев вы могли бы разобраться с Атмел Студио.
Ардуину ставят чтоб «вот прям щас», и использовать готовый код из интернета.
0
Примитивный контроллер прерываний ATMEGA328 не поддерживает вложенных прерываний и их приоритета. Поэтому внутри обработчика прерывания (функция clkEnc()) запрещать прерывания (вызов cli()) и затем разрешать их (вызов sei()) абсолютно бессмысленно. Обработчик и так будет выполнен от начала до конца без возможности перехвата потока выполнения другими прерываниями.
0
Хотите сказать, что он примитивнее atmega8? Я на ней вложенные прерывания делал.
0
Приношу извинения, был немного неточен, вложенные прерывания возможны, но Вы должны для этого предпринять некоторые действия: внутри обработчика «руками» разрешить обработку другого прерывания, иначе оно будет обработано только после завершения текущего обработчика. Запрещать прерывания внутри обработчика для атомарности, если они не были предварительно разрешены в этом обработчике не нужно. Из документации atmega8:
When an interrupt occurs, the Global Interrupt Enable I-bit is cleared and all interrupts are disabled. The user software can write logic one to the I-bit to enable nested interrupts. All enabled interrupts can then interrupt the current interrupt routine. The I-bit is automatically set when a Return from Interrupt instruction – RETI – is executed.
0
Спасибо, пример работы энкодера был взят с просторов, так как я не совсем еще разобрался, но от себя так же добавлю, что при изучении программирования Atmega на ассемблере, первое что делал обработчик, так это запрещал прерывания, а в конце разрешал.
0
нужно больше volatile!
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Контроль температуры нагревателя печи, с таймером на Arduino