Консультация № 200205
02.02.2021, 17:19
0.00 руб.
0 15 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:

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

Обсуждение

давно
Мастер-Эксперт
325460
1469
02.02.2021, 17:40
общий
Адресаты:
можно конкретный пример кода и полностью ошибку которою выдает компилятор?
Об авторе:
to live is to die
давно
Посетитель
404726
12
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
Прикрепленные файлы:
f8c7a0f49e58238153f02c10dfc97467.rar
давно
Мастер-Эксперт
325460
1469
02.02.2021, 18:10
общий
https://www.microchip.com/forums/m687487.aspx

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

Вам надо так:
PORTBbits.RB6
Об авторе:
to live is to die
давно
Посетитель
404726
12
03.02.2021, 10:23
общий
Большое спасибо.
Практически все сообщения пропали, осталось одно.
На строку "PORTBbits.RB7=!PORTBbits.RB7;" выдает сообщение:

"PIC18F14K22_PWM v1.c:299:29: warning: (373) implicit signed to unsigned conversion "
давно
Мастер-Эксперт
325460
1469
03.02.2021, 10:35
общий
Адресаты:
смотрите Вы пытаетесь к численному типу данных приравнять логический тип. Вот и получаете ошибку
если хотите сделать инверсию Вам надо сделать так
PORTBbits.RB7=~PORTBbits.RB7;
Об авторе:
to live is to die
давно
Посетитель
404726
12
03.02.2021, 10:54
общий
Написал - "PORTBbits.RB7=~PORTBbits.RB7;"
Но компилятор все равно выдает то же самое предупреждение.
давно
Мастер-Эксперт
325460
1469
03.02.2021, 10:58
общий
Адресаты:
скиньте код строчка на которую ругается +/- 10 строк.
что выдаст компилятор если написать
PORTBbits.RB7=PORTBbits.RB7;
?
Об авторе:
to live is to die
давно
Мастер-Эксперт
325460
1469
03.02.2021, 11:21
общий
скорее всего надо Вам так


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

но лучше посмотреть какой тип у PORTBbits.RB7 и привести к нему.
Об авторе:
to live is to die
давно
Посетитель
404726
12
03.02.2021, 11:40
общий
Если я пишу "PORTBbits.RB7=PORTBbits.RB7;" - все ОК.
Прикрепленные файлы:
8f66eebda7885658770a660c35a75b77.rar
давно
Мастер-Эксперт
325460
1469
03.02.2021, 11:47
общий
Адресаты:
приведение к типу должно помочь.
Об авторе:
to live is to die
давно
Посетитель
404726
12
03.02.2021, 12:02
общий
При написании "PORTBbits.RB7=(uint8_t)(~PORTBbits.RB7);" выдает кучу error.
Где я могу посмотреть тип. Когда я задаю переменную, я задаю ей тип, а у порта я понимал тип уже задан изначально.
давно
Мастер-Эксперт
325460
1469
03.02.2021, 12:14
общий
03.02.2021, 12:15
нажать ctrl+левая кнопка мыши на PORTBbits должно перейти на определение структуры.
скорее всего в файле xc.h будет
Об авторе:
to live is to die
давно
Посетитель
404726
12
03.02.2021, 12:53
общий
PORTBbits.RB7=(unsigned) ~PORTBbits.RB7; - предупреждение исчезло.
Спасибо!!
давно
Мастер-Эксперт
325460
1469
03.02.2021, 13:58
общий
Адресаты:
Отлично, обращайтесь, если будут еще вопросы.
Об авторе:
to live is to die
давно
Мастер-Эксперт
325460
1469
03.02.2021, 14:27
общий
это ответ
Здравствуйте, puaro!

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


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

- привести к одному типу выражения:
PORTBbits.RB7 = (unsigned)(~PORTBbits.RB7);
5
Об авторе:
to live is to die
Форма ответа