MPLAB в вопросах и ответах

Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

Аlex писал(а):PS: Имя не устанавливается, к сожалению
Ну хотя бы так, Спасибо :)
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25435
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="alex_",url="/forum/viewtopic.php?p=3417048#p3417048"]но никак не могу отмониторить переменные.
Переменные заданы таким образом:

Код: Выделить всё

cblock 0x20 
	CURR_ACP		
	CURR_IZM		
	CURR_ZAD		
	CURR			
         endc
	
При этом в окне Watch кнопка Add Symbol и выпадающий список не активны[/uquote]
Меняете способ объявления переменных на:

Код: Выделить всё

      udata 0x20 
CURR_ACP	res 1
CURR_IZM   res 1	
CURR_ZAD   res 1		
..
И включаете режим перемещаемого кода.
По результату генерации хекса ничего не изменится, но все переменные станут видны в Watch
Реклама
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

КРАМ писал(а):И включаете режим перемещаемого кода.
Не подскажете в каком месте галочку поставить :roll:
Друг Кота
Аватара пользователя
Сообщения: 25435
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Project - Build Options - Project - MPASM C17/C18 Suite -> Generate Relocatable Code - ставим галку
Ну либо на Ask me и тогда каждый раз перед билдом будет возникать окно с предложением выбора Absolute/Relocatable
Реклама
Эиком - электронные компоненты и радиодетали
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

[uquote="КРАМ",url="/forum/viewtopic.php?p=3417379#p3417379"]Project - Build Options - Project - MPASM C17/C18 Suite -> Generate Relocatable Code - ставим галку[/uquote]Слона то я и не заметил :oops:
Спасибо, теперь стало всё гораздо лучше, в udata 0x20 пришлось удалить число, а то с ним ну никак не хотело компилироваться :))
Реклама
Друг Кота
Аватара пользователя
Сообщения: 25435
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

Дело тут не в числе, а в областях ОЗУ.
Скорее всего, данная область (0х20) относится с типу udata_acs. Почитайте даташит и мануал на ассемблер.
Память с доступом через ACCSESS должна резервироваться как udata_acs
Для иной области может быть указан абсолютный адрес начала блока.
Как Вы уже догадались, теперь не требуется выделять отдельный байты для длинных переменных.
Достаточно указать их длину в байтах после res. Обращение к ним будет соответственно <имя>, <имя+1>, <имя+2> и т.д.
Реклама
Опытный кот
Аватара пользователя
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

Сообщение alex_ »

Про число я условно сказал, понимая при этом что компилятор уже не может там жёстко разместить переменные поскольку возможно данная область памяти была занята или зарезервирована под свои нужды. Про длину в байтах это конечно плюс. Повторюсь, программу мне подсунули для модификации, но похоже она была написана крайним консерватором в виде жёсткой привязки переменных и не только, притом в программе используются переменные размерностью 4 байта и объявлены как 4 отдельные переменные хотя и стоят друг за другом :facepalm:
нет чтоб действительно написать res 4. Мне если честно Си больше по душе, и когда разберусь в данной программе полностью её портирую на Си. :))
Грызет канифоль
Сообщения: 289
Зарегистрирован: Пт мар 20, 2009 12:25:47
Откуда: Ivanovo

Сообщение spongebob »

вопросы у меня тут по mplab c18
1) оно не умеет оператор "?" ? (например "(a==b) ? c=d : e=f;") или я туплю, пишет syntax error
2) подключаю инклюды - тоже пишет syntax error, а там вообще пусто (или там что-то в конце нужно написать?)
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

Умеет. Просто у Вас синтаксическая ошибка. Конкретно - отсутствие "точки с запятой".
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 347
Зарегистрирован: Сб фев 07, 2009 19:21:25

Сообщение БАТАРЕЙКУС »

Добрый день, помогите кто может, понадобилось мне в MPLAB X и c18, создать массив 512 байт, но он выдаёт ошибку, помница, там надо в линке объединить банки и в файле проекта какую то ерунду ещё прописать и тогда ошибка исчезнет, вот кто подскажет, что надо сделать ?
Мечтатель - не тот, кто сидит на диване и думает о несбыточном, а тот, кто всеми силами стремится воплотить несбыточное в реальность.
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

БАТАРЕЙКУС писал(а):что надо сделать ?
Попробовать погуглить, для начала.
Первая попавшаяся ссылка - http://www.microchip.su/showthread.php?t=14356
Контактная информация:
Встал на лапы
Сообщения: 117
Зарегистрирован: Ср ноя 05, 2014 19:04:31

Сообщение DarkWolf »

Всем, доброго времени суток! Подскажите в таком вопросе. Необходимо сделать ремап UART на PIC18 в микропаскаль. Могу ли я сделать ремап только Tx или только Rx? Или все же необходимо ремапить две ножки, что бы использовать функцию UART_Remappable_Init?
Модератор
Аватара пользователя
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля

Сообщение Аlex »

1. Камень какой ?
2. Причём тут эта тема ? Тут обсуждается MPLAB.
Контактная информация:
Встал на лапы
Сообщения: 117
Зарегистрирован: Ср ноя 05, 2014 19:04:31

Сообщение DarkWolf »

[uquote="Аlex",url="/forum/viewtopic.php?p=3513523#p3513523"]1. Камень какой ?
2. Причём тут эта тема ? Тут обсуждается MPLAB.[/uquote]
Прошу прощения! Не посмотрел нормально в какой теме спрашиваю.

Камень PIC18F47j53
Грызет канифоль
Аватара пользователя
Сообщения: 295
Зарегистрирован: Вс дек 18, 2011 14:41:24
Откуда: Ангарск

Сообщение Linuxoid91 »

Добрый день. Что означает "Pass Count: 59" при программировании через MPLAB IPE?
Более подробно

Код: Выделить всё

Target removed
Target voltage detected
Target device PIC12F675 found.
Device ID Revision = b
2018-12-29 14:04:58 +0800 - Programming...

Device Erased...

Programming...

The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x3fe
configuration memory
program memory
Address: 0 Expected Value: 2bf3 Received Value: 0
Failed to program device
2018-12-29 14:05:07 +0800 - Programming failed
Pass Count: 59
Микроконтроллер PIC12F675.
Программатор ICD-3.
Питание 3,7 Вольт.
Кусок схемы во вложении.
Во время прошивки выпаяно R21, R14, R24, R11.
Вложения
Снимок.jpg
(63.41 КБ) 525 скачиваний
Друг Кота
Сообщения: 7853
Зарегистрирован: Ср фев 11, 2009 20:35:58

Сообщение otest »

Почему 3.7в ?
Не прошился он
Pass Count: 59 Количество проходов: 59
Грызет канифоль
Аватара пользователя
Сообщения: 295
Зарегистрирован: Вс дек 18, 2011 14:41:24
Откуда: Ангарск

Сообщение Linuxoid91 »

[uquote="otest",url="/forum/viewtopic.php?p=3537406#p3537406"]Почему 3.7в[/uquote]
В даташите указано, что он питается от 2 до 5.5 Вольт.
Друг Кота
Аватара пользователя
Сообщения: 25435
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="Linuxoid91",url="/forum/viewtopic.php?p=3537605#p3537605"]В даташите указано[/uquote]
В даташите указана ЗАВИСИМОСТЬ диапазона напряжений питания от ЧАСТОТЫ работы контроллера.
Из каких соображений Вы решили, что при программировании от ICD3 тактирование МК ниже 10 МГц?
Грызет канифоль
Аватара пользователя
Сообщения: 295
Зарегистрирован: Вс дек 18, 2011 14:41:24
Откуда: Ангарск

Сообщение Linuxoid91 »

Доброго времени суток. Как исправить error 1347?

Микроконтроллер PIC16F676. Во время компилляции выдает ошибки.
Спойлерmake -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory 'D:/Cloud/Microchip/P16 PWM SIN 50 Hz/50 Hz_PWM.X'
make -f nbproject/Makefile-default.mk dist/default/production/50_Hz_PWM.X.production.hex
make[2]: Entering directory 'D:/Cloud/Microchip/P16 PWM SIN 50 Hz/50 Hz_PWM.X'
"C:\Program Files (x86)\Microchip\xc8\v1.45\bin\xc8.exe" --pass1 --chip=16F676 -Q -G --double=24 --float=24 --opt=+asm,+asmfile,-speed,+space,-debug,-local --addrqual=ignore --mode=free -P -N255 --warn=-3 --asmlist -DXPRJ_default=default --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-osccal,-resetbits,-download,-stackcall,+clib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" -obuild/default/production/newmain.p1 newmain.c
newmain.c:35: warning: (371) missing basic type; int assumed
newmain.c:51: warning: (371) missing basic type; int assumed
newmain.c:56: warning: (371) missing basic type; int assumed
newmain.c:61: warning: (371) missing basic type; int assumed
"C:\Program Files (x86)\Microchip\xc8\v1.45\bin\xc8.exe" --chip=16F676 -G -mdist/default/production/50_Hz_PWM.X.production.map --double=24 --float=24 --opt=+asm,+asmfile,-speed,+space,-debug,-local --addrqual=ignore --mode=free -P -N255 --warn=-3 --asmlist -DXPRJ_default=default --summary=default,-psect,-class,+mem,-hex,-file --output=default,-inhx032 --runtime=default,+clear,+init,-keep,-no_startup,-osccal,-resetbits,-download,-stackcall,+clib --output=-mcof,+elf:multilocs --stack=compiled:auto:auto "--errformat=%f:%l: error: (%n) %s" "--warnformat=%f:%l: warning: (%n) %s" "--msgformat=%f:%l: advisory: (%n) %s" --memorysummary dist/default/production/memoryfile.xml -odist/default/production/50_Hz_PWM.X.production.elf build/default/production/newmain.p1
Microchip MPLAB XC8 C Compiler (Free Mode) V1.45
Build date: Nov 15 2017
Part Support Version: 1.45
Copyright (C) 2017 Microchip Technology Inc.
License type: Node Configuration

:: warning: (1273) Omniscient Code Generation not available in Free mode
make[2]: *** [dist/default/production/50_Hz_PWM.X.production.hex] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
:0: error: (1347) can't find 0xB7E words (0xb7e withtotal) for psect "text1" in class "CODE" (largest unused contiguous range 0x3F9)
(908) exit status = 1
nbproject/Makefile-default.mk:131: recipe for target 'dist/default/production/50_Hz_PWM.X.production.hex' failed
make[2]: Leaving directory 'D:/Cloud/Microchip/P16 PWM SIN 50 Hz/50 Hz_PWM.X'
nbproject/Makefile-default.mk:90: recipe for target '.build-conf' failed
make[1]: Leaving directory 'D:/Cloud/Microchip/P16 PWM SIN 50 Hz/50 Hz_PWM.X'
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed

BUILD FAILED (exit value 2, total time: 7s)
Друг Кота
Аватара пользователя
Сообщения: 7360
Зарегистрирован: Пт авг 28, 2009 21:34:30
Откуда: 845-й км.

Сообщение uldemir »

У вас какой-то массив слишком большой и не лезет в память. т.е. ему нужен непрерывный кусок озу, который компилятор в кристалле найти не может. вернее не компилятор, а линковщик.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Ответить

Вернуться в «PIC»