![]() |
|
|
Вопросы начинающих Прежде чем задать вопрос, стоит воспользоваться поиском |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 |
Junior Member
Регистрация: 28.04.2009
Возраст: 45
Сообщений: 14
Вес репутации: 100/34 ![]() ![]() |
![]()
pic16f688. Компилятор XC8 1.43
Вот такая конструкция Код:
while (!PIR1bits.RCIF || !PIR1bits.TMR1IF); на выходе получается вот это - Код:
100: while (!PIR1bits.RCIF || !PIR1bits.TMR1IF); 004B 1A8C BTFSC PIR1, 0x5 004C 1C0C BTFSS PIR1, 0x0 004D 284B GOTO 0x4B Пока заменил на Код:
while (!(PIR1 & 0b00100001)); Последний раз редактировалось Andrey73; 09.11.2017 в 16:56. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,598
Вес репутации: 3110/68 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Andrey73
Код:
while (!PIR1bits.RCIF || !PIR1bits.TMR1IF); быть в цикле пока нулю равны биты rc или tmr1 выйти если оба равны единице. Код:
004B 1A8C BTFSC PIR1, 0x5 004C 1C0C BTFSS PIR1, 0x0 004D 284B GOTO 0x4B следующая инструкция выполняется только если первый бит - 1 пропустить следующую команду и выйти из цикла если бит выставлен. выходит только если оба бита равны единице. Вы чего ожидаете? какого поведения? я может с ходу не вижу. |
![]() |
![]() |
![]() |
#3 |
Junior Member
Регистрация: 28.04.2009
Возраст: 45
Сообщений: 14
Вес репутации: 100/34 ![]() ![]() |
![]()
Спасибо. Значит я не правильно понял.
Я хочу чтобы выход был если любой из битов стал единицей. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,598
Вес репутации: 3110/68 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
таблица приоритетов операций в Си.
просто можно распечатать и кинуть в ящик стола, чтобы когда устал взять и глянуть. https://www.viva64.com/ru/t/0064/ |
![]() |
![]() |
![]() |
#5 |
Junior Member
Регистрация: 28.04.2009
Возраст: 45
Сообщений: 14
Вес репутации: 100/34 ![]() ![]() |
![]()
Спасибо за оперативность. уже разобрался. Компилятор был прав,а я нет.
|
![]() |
![]() |
![]() |
#6 |
Junior Member
Регистрация: 28.04.2009
Возраст: 45
Сообщений: 14
Вес репутации: 100/34 ![]() ![]() |
![]()
Надо было вот так -
Код:
while ( !(PIR1bits.RCIF || PIR1bits.TMR1IF)); |
![]() |
![]() |
![]() |
#7 |
Senior Member
Регистрация: 09.04.2010
Сообщений: 761
Вес репутации: 1355/50 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,364
Вес репутации: 4617/107 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#9 |
Junior Member
Регистрация: 28.04.2009
Возраст: 45
Сообщений: 14
Вес репутации: 100/34 ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#10 |
Senior Member
Регистрация: 25.02.2007
Возраст: 45
Сообщений: 675
Вес репутации: 1380/60 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
имхо человеку глазом проще прочитать , читается прямо "до тех пор пока PIR1bits.RCIF есть 0 И PIR1bits.TMR1IF есть 0" ))))))
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,598
Вес репутации: 3110/68 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
[offtop]
Вы всерьез сейчас говорите, как должен быть организован блокирующий код? Зачем вообще может быть организована такая конструкция. [/offtop] |
![]() |
![]() |
![]() |
#12 |
Senior Member
Регистрация: 25.02.2007
Возраст: 45
Сообщений: 675
Вес репутации: 1380/60 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
#13 |
Senior Member
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,598
Вес репутации: 3110/68 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
igor_tgru
да, в целом да. проще видно. в этом есть зерно. |
![]() |
![]() |
![]() |
#14 |
Senior Member
Регистрация: 09.04.2010
Сообщений: 761
Вес репутации: 1355/50 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | |
Опции просмотра | |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
что за зверь - Скатерограмма | Edua | Общетехнические вопросы | 17 | 01.03.2013 23:33 |
Многофункциональные часы. Н.Заяц.Книга 4. | samko | Вопросы начинающих | 11 | 12.06.2012 09:26 |
и снова не работает RA4 pic16F84 | Serg.mib | Вопросы начинающих | 9 | 11.09.2011 09:02 |
Макимальная частота прерываний от TMR0 | ANH | Продукция MICROCHIP | 114 | 05.04.2008 00:50 |