-
- Это не для ПИКов и не евреи. Это для ламеров, которые для проверки условий зачастую пользуют = вместо ==, а потом орут на форумах "Я нашел ошибку компилятора!" - если вдруг напишется if(10 = a), то компиляция просто вылетит с ошибкой - MBedder(03.01.2018 10:32)
- Покажи мне современный (не старше 20 лет) компилятор, который на if (a=10) не даёт варнинга. - fk0(03.01.2018 14:28)
- Ну например MikroC, если его можно называть его после этого компилятором С :) - Inntech(03.01.2018 22:35)
- а как вам така конструкция от МРЛАБа? очень смущает а) проверка на 1 б) порядок проверки, сначала маска потом флаг IBAH(645 знак., 03.01.2018 17:04)
- А меня что-то больше смущают "else if". Не будет ли это причиной пропуска некоторых событий при случайном совпадении прерываний во времени? Argon(88 знак., 03.01.2018 17:45)
- пропуска не будет, т.к. флаги сбрасываются только ручками, все не как людей :) - IBAH(03.01.2018 19:09)
- Ой, не уверен... Argon(777 знак., 03.01.2018 19:31)
- Еще раз перечитайте тут написанное. IE проверяют, чтобы при запрещенном IE, но поднятом IF программа не зашла в эту ветку по ЧУЖОМУ прерыванию, которое расположено ниже по опросу. - my504(03.01.2018 17:51)
- так что насчет порядка проверки IE и IF? - IBAH(03.01.2018 19:11)
- Похмелитесь и перечитайте еще раз мной написанное. И уточните к которому из моих предложений имеете претензии? Они о разных вещах так-то. - Argon(03.01.2018 18:23)
- К содержимому постскриптума. К основному тексту я претензий не имею. my504(84 знак., 04.01.2018 07:04)
- пропуска не будет, т.к. флаги сбрасываются только ручками, все не как людей :) - IBAH(03.01.2018 19:09)
- А меня что-то больше смущают "else if". Не будет ли это причиной пропуска некоторых событий при случайном совпадении прерываний во времени? Argon(88 знак., 03.01.2018 17:45)
- Покажи мне современный (не старше 20 лет) компилятор, который на if (a=10) не даёт варнинга. - fk0(03.01.2018 14:28)
- Такая запись if(10 == a) считается полезной тем, что если забудешь один = будет ошибка if(10 = a) AlexBi_(174 знак., 03.01.2018 10:32, )
- Понятно... жертвуем эффективностью в угоду безопасности... По второму вопросу я имел в виду: есть ли Пика команда "сравнить с 0", или 0 такая же константа как и все остальные? IBAH(1350 знак., 03.01.2018 10:58 - 11:31)
- Затем, что у пика ОДНА подпрограмма для прерываний (нет вектора как у армов) и в ней через if (разрешено и произошло) выбираются нужные источники прерываний. Два условия, т.к. прерывания могло не произойти, или оно могло произойти но сейчас fk0(74 знак., 03.01.2018 14:32)
- Команда сравнения с нулем выглядит как чтение регистра ОЗУ в самое себя: movf <var>, f. При этом ничего никуда не перемещается, а лишь изменяются флаги регистра состояний (STATUS). В том числе и флаг Z, который и означает равенство нулю. my504(99 знак., 03.01.2018 14:22)
- 1) что произойдет, если прерывание произошло,но не по указанному таймеру? Имхо, программа зависнет. Тогда первый оператор выглядит галимым фарисейством 2) у пиков есть команда сравнения с нулем почти любого байта - Крок(03.01.2018 13:43)
- На вопрос Nikolay_Po(1139 знак., 03.01.2018 11:39)
- Кажись дошло! забываю восьмибитное детство! маска не влияет на флаг! Но все равно не понимаю разницы между глобальным флагом разрешения прерываний и флагом разрешения прерываний периферии - IBAH(03.01.2018 11:53)
- Дык часто векторов меньше, чем источников запросов прерываний, вот и... - Vit(03.01.2018 11:33)
- Любимый косяк if(a&0x80==1) - mse homjak(03.01.2018 10:53)
- Понятно... жертвуем эффективностью в угоду безопасности... По второму вопросу я имел в виду: есть ли Пика команда "сравнить с 0", или 0 такая же константа как и все остальные? IBAH(1350 знак., 03.01.2018 10:58 - 11:31)
- Это не для ПИКов и не евреи. Это для ламеров, которые для проверки условий зачастую пользуют = вместо ==, а потом орут на форумах "Я нашел ошибку компилятора!" - если вдруг напишется if(10 = a), то компиляция просто вылетит с ошибкой - MBedder(03.01.2018 10:32)