Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Вопросы начинающих

Вопросы начинающих Прежде чем задать вопрос, стоит воспользоваться поиском

Ответ
 
Опции темы Опции просмотра
Старый 09.11.2017, 16:50   #1
Andrey73
Junior Member
 
Регистрация: 28.04.2009
Возраст: 44
Сообщений: 14
Вес репутации: 100/33
Andrey73 will become famous soon enoughAndrey73 will become famous soon enough
По умолчанию Компилятор XC8. Не работает.

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.
Andrey73 вне форума   Ответить с цитированием
Старый 09.11.2017, 17:14   #2
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,501
Вес репутации: 3061/65
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Компилятор XC8. Не работает.

Andrey73
Код:
while (!PIR1bits.RCIF || !PIR1bits.TMR1IF);
с точки зрения си:
быть в цикле пока нулю равны биты rc или tmr1
выйти если оба равны единице.

Код:
004B  1A8C     BTFSC PIR1, 0x5
004C  1C0C     BTFSS PIR1, 0x0
004D  284B     GOTO 0x4B
пропустить следующую инструкцию и оказаться на goto если бит не выставлен
следующая инструкция выполняется только если первый бит - 1
пропустить следующую команду и выйти из цикла если бит выставлен.

выходит только если оба бита равны единице.

Вы чего ожидаете? какого поведения? я может с ходу не вижу.
besogon вне форума   Ответить с цитированием
Старый 09.11.2017, 17:20   #3
Andrey73
Junior Member
 
Регистрация: 28.04.2009
Возраст: 44
Сообщений: 14
Вес репутации: 100/33
Andrey73 will become famous soon enoughAndrey73 will become famous soon enough
По умолчанию Re: Компилятор XC8. Не работает.

Спасибо. Значит я не правильно понял.
Я хочу чтобы выход был если любой из битов стал единицей.
Andrey73 вне форума   Ответить с цитированием
Старый 09.11.2017, 17:26   #4
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,501
Вес репутации: 3061/65
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Компилятор XC8. Не работает.

таблица приоритетов операций в Си.
просто можно распечатать и кинуть в ящик стола, чтобы когда устал взять и глянуть.
https://www.viva64.com/ru/t/0064/
besogon вне форума   Ответить с цитированием
Старый 09.11.2017, 17:29   #5
Andrey73
Junior Member
 
Регистрация: 28.04.2009
Возраст: 44
Сообщений: 14
Вес репутации: 100/33
Andrey73 will become famous soon enoughAndrey73 will become famous soon enough
По умолчанию Re: Компилятор XC8. Не работает.

Спасибо за оперативность. уже разобрался. Компилятор был прав,а я нет.
Andrey73 вне форума   Ответить с цитированием
Старый 09.11.2017, 17:51   #6
Andrey73
Junior Member
 
Регистрация: 28.04.2009
Возраст: 44
Сообщений: 14
Вес репутации: 100/33
Andrey73 will become famous soon enoughAndrey73 will become famous soon enough
По умолчанию Re: Компилятор XC8. Не работает.

Надо было вот так -

Код:
while ( !(PIR1bits.RCIF || PIR1bits.TMR1IF));
Andrey73 вне форума   Ответить с цитированием
Старый 10.11.2017, 00:36   #7
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 733
Вес репутации: 1308/48
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Компилятор XC8. Не работает.

Цитата:
Сообщение от Andrey73 Посмотреть сообщение
Надо было вот так -

Код:
while ( !(PIR1bits.RCIF || PIR1bits.TMR1IF));
не а...
надо было вот так
Код:
while ( !PIR1bits.RCIF && !PIR1bits.TMR1IF);
DmitrijVDN на форуме   Ответить с цитированием
Старый 10.11.2017, 05:32   #8
ampersant
Senior Member
 
Аватар для ampersant
 
Регистрация: 26.02.2008
Адрес: IgorV
Сообщений: 2,299
Вес репутации: 4442/102
ampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond reputeampersant has a reputation beyond repute
По умолчанию Re: Компилятор XC8. Не работает.

Цитата:
Сообщение от DmitrijVDN Посмотреть сообщение
не а...
надо было вот так
Код:
while ( !PIR1bits.RCIF && !PIR1bits.TMR1IF);
а какая разница?
ampersant вне форума   Ответить с цитированием
Старый 10.11.2017, 05:38   #9
Andrey73
Junior Member
 
Регистрация: 28.04.2009
Возраст: 44
Сообщений: 14
Вес репутации: 100/33
Andrey73 will become famous soon enoughAndrey73 will become famous soon enough
По умолчанию Re: Компилятор XC8. Не работает.

Цитата:
Сообщение от ampersant Посмотреть сообщение
а какая разница?
Никакой. Даже компилятор разницы не видит. ))
Andrey73 вне форума   Ответить с цитированием
Старый 10.11.2017, 11:46   #10
igor_tgru
Senior Member
 
Аватар для igor_tgru
 
Регистрация: 25.02.2007
Возраст: 44
Сообщений: 664
Вес репутации: 1357/59
igor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud of
По умолчанию Re: Компилятор XC8. Не работает.

имхо человеку глазом проще прочитать , читается прямо "до тех пор пока PIR1bits.RCIF есть 0 И PIR1bits.TMR1IF есть 0" ))))))
igor_tgru вне форума   Ответить с цитированием
Старый 10.11.2017, 12:45   #11
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,501
Вес репутации: 3061/65
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Компилятор XC8. Не работает.

[offtop]
Вы всерьез сейчас говорите, как должен быть организован блокирующий код? Зачем вообще может быть организована такая конструкция.
[/offtop]
besogon вне форума   Ответить с цитированием
Старый 10.11.2017, 13:25   #12
igor_tgru
Senior Member
 
Аватар для igor_tgru
 
Регистрация: 25.02.2007
Возраст: 44
Сообщений: 664
Вес репутации: 1357/59
igor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud ofigor_tgru has much to be proud of
По умолчанию Re: Компилятор XC8. Не работает.

Цитата:
Сообщение от besogon Посмотреть сообщение
[offtop]
Вы всерьез сейчас говорите, как должен быть организован блокирующий код?
[/offtop]
не совсем об этом , мой ответ адресован ampersant на вопрос "а какая разница?" и не имеет никакого отношения к структуре организации кода )))
igor_tgru вне форума   Ответить с цитированием
Старый 10.11.2017, 14:53   #13
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 30
Сообщений: 1,501
Вес репутации: 3061/65
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Компилятор XC8. Не работает.

igor_tgru
да, в целом да. проще видно. в этом есть зерно.
besogon вне форума   Ответить с цитированием
Старый 10.11.2017, 18:36   #14
DmitrijVDN
Senior Member
 
Регистрация: 09.04.2010
Сообщений: 733
Вес репутации: 1308/48
DmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud ofDmitrijVDN has much to be proud of
По умолчанию Re: Компилятор XC8. Не работает.

Цитата:
Сообщение от Andrey73 Посмотреть сообщение
Никакой. Даже компилятор разницы не видит. ))
вот потому и не видит !(A+B)=!A * !B , зато наглядно видит кодомаратель, че хотим получить от компилятора
DmitrijVDN на форуме   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
что за зверь - Скатерограмма 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


Часовой пояс GMT +3, время: 04:14.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot