Родились сегодня:
Евгений [eXill@nD] Малясёв
AlexLevin


Лидеры рейтинга

ID: 226425

Konstantin Shvetski

Модератор

1126

Россия, Северодвинск


ID: 165461

Лангваген Сергей Евгеньевич

Советник

675

Россия, Московская обл.


ID: 401284

Михаил Александров

Академик

576

Россия, Санкт-Петербург


ID: 398750

Елена Васильевна

Специалист

402

Беларусь, Гомель


ID: 137394

Megaloman

Мастер-Эксперт

196

Беларусь, Гомель


ID: 400669

epimkin

Профессионал

186


ID: 401888

puporev

Профессор

133

Россия, Пермский край


8.2.3

26.02.2021

JS: 2.3.1
CSS: 4.3.14
jQuery: 3.5.1


 

• С / С++

Создание программ на языках C и C++.

Администратор раздела: CradleA (Академик)


Коцюрбенко Алексей Владимирович
Статус: Старший модератор
Рейтинг: 434
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 268
Gluck
Статус: 8-й класс
Рейтинг: 232
 

Перейти к консультации №:
 

Консультация онлайн # 200205
Раздел: • С / С++
Автор вопроса: puaro (Посетитель)
Дата: 02.02.2021, 17:19
Поступило ответов: 1

Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

MPLAB X IDE c5.4 \ XC8 \PIC18F...
как правильно написать '#define outt RB6' - пишет, что запись устарела

Состояние: Консультация закрыта

Ответ # 280712 от CradleA (Академик)

Здравствуйте, puaro!

думаю здесь найдете полезную информацию
https://www.micr...ums/m687487.aspx


В коде Вам надо использовать следующее:
- использовать полную структуру для обращения к битовому полю:
PORTBbits.RB6

- привести к одному типу выражения:
PORTBbits.RB7 = (unsigned)(~PORTBbits.RB7);


Консультировал: CradleA (Академик)
Дата отправки: 03.02.2021, 14:27

5
нет комментария
-----
Дата оценки: 05.02.2021, 15:45

Рейтинг ответа:

+2

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 200205

CradleA

Академик

ID: 325460

1

= общий = |  02.02.2021, 17:40 |  цитировать |  профиль |  личное сообщение
puaro:

можно конкретный пример кода и полностью ошибку которою выдает компилятор?

=====
to live is to die

puaro

Посетитель

ID: 404726

2

= общий = |  02.02.2021, 18:01 |  цитировать |  профиль |  личное сообщение

Сам код компилятором проходит, но вот, чтобы корректно и без замечаний не получается.

CLEAN SUCCESSFUL (total time: 63ms)
make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'Q:/My Documents/MPLAB X IDE/PROEKTS/PWM/PIC18F14K22_PWM v1'
make -f nbproject/Makefile-default.mk dist/default/production/PIC18F14K22_PWM_v1.production.hex
make[2]: Entering directory 'Q:/My Documents/MPLAB X IDE/PROEKTS/PWM/PIC18F14K22_PWM v1'
"C:\Program Files\Microchip\xc8\v2.20\bin\xc8-cc.exe" -mcpu=18F14K22 -c -mdfp="C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -DXPRJ_default=default -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits -mc90lib -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -o "build/default/production/PIC18F14K22_PWM v1.p1" "PIC18F14K22_PWM v1.c"
PIC18F14K22_PWM v1.c:38:23: warning: multiple unsequenced modifications to 'count2' [-Wunsequenced]
count2 = ++count2; // <F1><F7><E5><F2><F7><E8><EA>
~ ^
PIC18F14K22_PWM v1.c:48:18: warning: 'RB6' is deprecated [-Wdeprecated-declarations]
outt=1;
^
./config v1.h:81:14: note: expanded from macro 'outt'
#define outt RB6 // <E2><FB><F5><EE><E4> <D8><C8><CC>
^
C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7462:41: note: 'RB6' has been explicitly marked deprecated here
extern volatile __bit _DEPRECATED RB6 __at(0x7C0E); // @ (0xF81 * 8 + 6)
^
PIC18F14K22_PWM v1.c:236:9: warning: 'RA5' is deprecated [-Wdeprecated-declarations]
if (INpusk == 1) // 2. <F1><E8><E3><ED><E0><EB> "<CF><F3><F1><EA>"
^
./config v1.h:83:17: note: expanded from macro 'INpusk'
#define INpusk RA5 // <EF><F3><F1><EA> <D8><C8><CC>
^
C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7441:41: note: 'RA5' has been explicitly marked deprecated here
extern volatile __bit _DEPRECATED RA5 __at(0x7C05); // @ (0xF80 * 8 + 5)
^
PIC18F14K22_PWM v1.c:250:21: warning: 'RB6' is deprecated [-Wdeprecated-declarations]
outt=1;
^
./config v1.h:81:14: note: expanded from macro 'outt'
#define outt RB6 // <E2><FB><F5><EE><E4> <D8><C8><CC>
^
C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7462:41: note: 'RB6' has been explicitly marked deprecated here
extern volatile __bit _DEPRECATED RB6 __at(0x7C0E); // @ (0xF81 * 8 + 6)
^
PIC18F14K22_PWM v1.c:264:1: warning: 'RB6' is deprecated [-Wdeprecated-declarations]
outt=0;
^
./config v1.h:81:14: note: expanded from macro 'outt'
#define outt RB6 // <E2><FB><F5><EE><E4> <D8><C8><CC>
^
C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7462:41: note: 'RB6' has been explicitly marked deprecated here
extern volatile __bit _DEPRECATED RB6 __at(0x7C0E); // @ (0xF81 * 8 + 6)
^
PIC18F14K22_PWM v1.c:293:27: warning: multiple unsequenced modifications to 'count_tmp' [-Wunsequenced]
count_tmp = --count_tmp; // 16. <E8><ED><EA><F0><E5><EC><E5><ED><F2>
~ ^
PIC18F14K22_PWM v1.c:295:15: warning: 'RB6' is deprecated [-Wdeprecated-declarations]
outt=0;
^
./config v1.h:81:14: note: expanded from macro 'outt'
#define outt RB6 // <E2><FB><F5><EE><E4> <D8><C8><CC>
^
C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7462:41: note: 'RB6' has been explicitly marked deprecated here
extern volatile __bit _DEPRECATED RB6 __at(0x7C0E); // @ (0xF81 * 8 + 6)
^
PIC18F14K22_PWM v1.c:298:27: warning: multiple unsequenced modifications to 'count_tmp' [-Wunsequenced]
count_tmp = ++count_tmp;
~ ^
PIC18F14K22_PWM v1.c:299:15: warning: 'RB7' is deprecated [-Wdeprecated-declarations]
RB7=!RB7;
^
C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7465:41: note: 'RB7' has been explicitly marked deprecated here
extern volatile __bit _DEPRECATED RB7 __at(0x7C0F); // @ (0xF81 * 8 + 7)
^
PIC18F14K22_PWM v1.c:299:20: warning: 'RB7' is deprecated [-Wdeprecated-declarations]
RB7=!RB7;
^
C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7465:41: note: 'RB7' has been explicitly marked deprecated here
extern volatile __bit _DEPRECATED RB7 __at(0x7C0F); // @ (0xF81 * 8 + 7)
^
PIC18F14K22_PWM v1.c:301:15: warning: 'RB6' is deprecated [-Wdeprecated-declarations]
outt=0;
^
./config v1.h:81:14: note: expanded from macro 'outt'
#define outt RB6 // <E2><FB><F5><EE><E4> <D8><C8><CC>
^
C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7462:41: note: 'RB6' has been explicitly marked deprecated here
extern volatile __bit _DEPRECATED RB6 __at(0x7C0E); // @ (0xF81 * 8 + 6)
^
PIC18F14K22_PWM v1.c:315:6: warning: 'RB6' is deprecated [-Wdeprecated-declarations]
outt=0;
^
./config v1.h:81:14: note: expanded from macro 'outt'
#define outt RB6 // <E2><FB><F5><EE><E4> <D8><C8><CC>
^
C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7462:41: note: 'RB6' has been explicitly marked deprecated here
extern volatile __bit _DEPRECATED RB6 __at(0x7C0E); // @ (0xF81 * 8 + 6)
^
12 warnings generated.
"C:\Program Files\Microchip\xc8\v2.20\bin\xc8-cc.exe" -mcpu=18F14K22 -Wl,-Map=dist/default/production/PIC18F14K22_PWM_v1.production.map -DXPRJ_default=default -Wl,--defsym=__MPLAB_BUILD=1 -mdfp="C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8" -fno-short-double -fno-short-float -memi=wordwrite -O0 -fasmfile -maddrqual=ignore -xassembler-with-cpp -mwarn=-3 -Wa,-a -msummary=-psect,-class,+mem,-hex,-file -ginhx032 -Wl,--data-init -mno-keep-startup -mno-download -mdefault-config-bits -mc90lib -std=c99 -gdwarf-3 -mstack=compiled:auto:auto:auto -Wl,--memorysummary,dist/default/production/memoryfile.xml -o dist/default/production/PIC18F14K22_PWM_v1.production.elf "build/default/production/PIC18F14K22_PWM v1.p1"
PIC18F14K22_PWM v1.c:48:: warning: (1385) variable "_RB6" is deprecated (declared at C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7462)
PIC18F14K22_PWM v1.c:236:: warning: (1385) variable "_RA5" is deprecated (declared at C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7441)
PIC18F14K22_PWM v1.c:250:: warning: (1385) variable "_RB6" is deprecated (declared at C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7462)
PIC18F14K22_PWM v1.c:264:: warning: (1385) variable "_RB6" is deprecated (declared at C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7462)
PIC18F14K22_PWM v1.c:295:: warning: (1385) variable "_RB6" is deprecated (declared at C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7462)
PIC18F14K22_PWM v1.c:299:: warning: (1385) variable "_RB7" is deprecated (declared at C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7465)
PIC18F14K22_PWM v1.c:301:: warning: (1385) variable "_RB6" is deprecated (declared at C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7462)
PIC18F14K22_PWM v1.c:315:: warning: (1385) variable "_RB6" is deprecated (declared at C:/Program Files (x86)/Microchip/MPLABX/v5.40/packs/Microchip/PIC18F-K_DFP/1.4.87/xc8\pic\include\proc\pic18f14k22.h:7462)

Memory Summary:
Program space used 208h ( 520) of 4000h bytes ( 3.2%)
Data space used Ah ( 10) of 200h bytes ( 2.0%)
Configuration bits used 7h ( 7) of 7h words (100.0%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
ID Location space used 8h ( 8) of 8h bytes (100.0%)

make[2]: Leaving directory 'Q:/My Documents/MPLAB X IDE/PROEKTS/PWM/PIC18F14K22_PWM v1'
make[1]: Leaving directory 'Q:/My Documents/MPLAB X IDE/PROEKTS/PWM/PIC18F14K22_PWM v1'

BUILD SUCCESSFUL (total time: 1s)
Loading code from Q:/My Documents/MPLAB X IDE/PROEKTS/PWM/PIC18F14K22_PWM v1/dist/default/production/PIC18F14K22_PWM_v1.production.hex...
Program loaded with pack,PIC18F-K_DFP,1.4.87,Microchip
Loading completed

-----
Прикрепленный архив:  скачать (RAR) [5.7 кб]

CradleA

Академик

ID: 325460

3

= общий = |  02.02.2021, 18:10 |  цитировать |  профиль |  личное сообщение

https://www.microchip.com/forums/m687487.aspx

думаю здесь найдете ответ.

Вам надо так:
PORTBbits.RB6

=====
to live is to die

puaro

Посетитель

ID: 404726

4

= общий = |  03.02.2021, 10:23 |  цитировать |  профиль |  личное сообщение

Большое спасибо.
Практически все сообщения пропали, осталось одно.
На строку "PORTBbits.RB7=!PORTBbits.RB7;" выдает сообщение:

"PIC18F14K22_PWM v1.c:299:29: warning: (373) implicit signed to unsigned conversion "

CradleA

Академик

ID: 325460

5

= общий = |  03.02.2021, 10:35 |  цитировать |  профиль |  личное сообщение
puaro:

смотрите Вы пытаетесь к численному типу данных приравнять логический тип. Вот и получаете ошибку
если хотите сделать инверсию Вам надо сделать так
PORTBbits.RB7=~PORTBbits.RB7;

=====
to live is to die

puaro

Посетитель

ID: 404726

6

= общий = |  03.02.2021, 10:54 |  цитировать |  профиль |  личное сообщение

Написал - "PORTBbits.RB7=~PORTBbits.RB7;"
Но компилятор все равно выдает то же самое предупреждение.

CradleA

Академик

ID: 325460

7

= общий = |  03.02.2021, 10:58 |  цитировать |  профиль |  личное сообщение
puaro:

скиньте код строчка на которую ругается +/- 10 строк.
что выдаст компилятор если написать
PORTBbits.RB7=PORTBbits.RB7;
?

=====
to live is to die

CradleA

Академик

ID: 325460

8

= общий = |  03.02.2021, 11:21 |  цитировать |  профиль |  личное сообщение

скорее всего надо Вам так


PORTBbits.RB7=(uint8_t)(~PORTBbits.RB7);

но лучше посмотреть какой тип у PORTBbits.RB7 и привести к нему.

=====
to live is to die

puaro

Посетитель

ID: 404726

9

= общий = |  03.02.2021, 11:40 |  цитировать |  профиль |  личное сообщение

Если я пишу "PORTBbits.RB7=PORTBbits.RB7;" - все ОК.

-----
Прикрепленный архив:  скачать (RAR) [2.2 кб]

CradleA

Академик

ID: 325460

10

= общий = |  03.02.2021, 11:47 |  цитировать |  профиль |  личное сообщение
puaro:

приведение к типу должно помочь.

=====
to live is to die

puaro

Посетитель

ID: 404726

11

= общий = |  03.02.2021, 12:02 |  цитировать |  профиль |  личное сообщение

При написании "PORTBbits.RB7=(uint8_t)(~PORTBbits.RB7);" выдает кучу error.
Где я могу посмотреть тип. Когда я задаю переменную, я задаю ей тип, а у порта я понимал тип уже задан изначально.

CradleA

Академик

ID: 325460

12

= общий = |  03.02.2021, 12:14 |  цитировать |  профиль |  личное сообщение

нажать ctrl+левая кнопка мыши на PORTBbits должно перейти на определение структуры.
скорее всего в файле xc.h будет

Последнее редактирование 03.02.2021, 12:15 CradleA (Академик)

=====
to live is to die

puaro

Посетитель

ID: 404726

13

= общий = |  03.02.2021, 12:53 |  цитировать |  профиль |  личное сообщение

PORTBbits.RB7=(unsigned) ~PORTBbits.RB7; - предупреждение исчезло.
Спасибо!! smile

CradleA

Академик

ID: 325460

14

= общий = |  03.02.2021, 13:58 |  цитировать |  профиль |  личное сообщение
puaro:

Отлично, обращайтесь, если будут еще вопросы.

=====
to live is to die

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.