Страница 1 из 2
PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 06:37:46
vdv22
Добрый день, есть такой контроллер PIC16F57, пытаюсь написать ную программу для него в MPlab X EDI на даже при моргании светодиодом возникаю проблемы - TRISA|=(1<<0) он не хочет воспринимать.
выдает вот такую ошибку-main.c:11:: error: (712) can't generate code for this expression .
Отстал от порта А и сделал по другому -TRISB=0; перевел весь порт B на выход , скомпилировалось. Далее подключаю программатор К150 - при программировании выдает ошибку. Считываю содержимое микросхемы , пробую прошить - прошивается..может кто сталкивался с данной проблемой?
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 07:50:21
veso74
Поделитесь весь кодом для blink, не только фрагмент.
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 07:59:30
OKF
TRISx write only, поэтому правильно пишешь в TRISB.
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 08:04:44
КРАМ
[uquote="vdv22",url="/forum/viewtopic.php?p=4545598#p4545598"]TRISA|=(1<<0)[/uquote]
Что вы имели ввиду этой строкой?

Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 08:37:41
vdv22
#include <xc.h>
#define _XTAL_FREQ 8000000
void main(void) {
TRISA&=~(1<<0); // устанавливаем 0 на RA0
while(1)
{
PORTA^=(1<<0); //меняем состояние RA0
__delay_ms(500);
}
return;
}
Добавлено after 3 minutes 2 seconds:
[uquote="КРАМ",url="/forum/viewtopic.php?p=4545615#p4545615"][uquote="vdv22",url="/forum/viewtopic.php?p=4545598#p4545598"]TRISA|=(1<<0)[/uquote]
Что вы имели ввиду этой строкой?

[/uquote]
здесь перепутал -сделал как на avr должно быть TRISA &=~(1<0) - этой строкой я устанавливаю регистр A0 в ноль . на PIC16F870 проверенно -работает все .
Добавлено after 3 minutes 34 seconds:
[uquote="OKF",url="/forum/viewtopic.php?p=4545613#p4545613"]TRISx write only, поэтому правильно пишешь в TRISB.[/uquote]
То есть так здесь не работает ? для операции логического или необходимо сначала считать регистр, потом по или произвести сложение и записать ......
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 10:10:10
КРАМ
[uquote="vdv22",url="/forum/viewtopic.php?p=4545627#p4545627"]То есть так здесь не работает ? для операции логического или необходимо сначала считать регистр, потом по или произвести сложение и записать ......[/uquote]
В этом контроллере нет регистра TRISA или TRISB. Есть инструкция tris, которая записывает содержимое аккумулятора в регистр управления драйвером порта (аппаратно эквивалентен TRIS).
Поэтому его невозможно прочитать. Если есть такая потребность, нужно организовать копию в ОЗУ и совершать над ней те же манипуляции, что и с невидимой TRIS. Или не совершать никакой математики связанной с чтением TRIS.
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 10:53:07
vdv22
[uquote="КРАМ",url="/forum/viewtopic.php?p=4545693#p4545693"][uquote="vdv22",url="/forum/viewtopic.php?p=4545627#p4545627"]То есть так здесь не работает ? для операции логического или необходимо сначала считать регистр, потом по или произвести сложение и записать ......[/uquote]
В этом контроллере нет регистра TRISA или TRISB. Есть инструкция tris, которая записывает содержимое аккумулятора в регистр управления драйвером порта (аппаратно эквивалентен TRIS).
Поэтому его невозможно прочитать. Если есть такая потребность, нужно организовать копию в ОЗУ и совершать над ней те же манипуляции, что и с невидимой TRIS. Или не совершать никакой математики связанной с чтением TRIS.[/uquote]
Значит запись TRISB=0 переведет порт В на выход?
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 11:07:42
КРАМ
Да. А если пытаться читать, делать маску и писать, то будет ошибка.
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 11:19:11
vdv22
[uquote="КРАМ",url="/forum/viewtopic.php?p=4545730#p4545730"]Да. А если пытаться читать, делать маску и писать, то будет ошибка.[/uquote]
Спасибо, с этим все понятно , а почему программатор ругается при прошивке откомпилированного кода?
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 11:29:58
veso74
Дайте картинку (скопируйте сюда) "ругатни"

.
Не можем угадать, что показывает.
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 17:02:15
vdv22
[uquote="veso74",url="/forum/viewtopic.php?p=4545743#p4545743"]Дайте картинку (скопируйте сюда) "ругатни"

.
Не можем угадать, что показывает.[/uquote] первое фото это считывания после попытки прошивки.
на втором фото при верификации возникает ошибка с адреса 040. То есть с адреса 040 записывается нулями. .
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 17:13:03
КРАМ
[uquote="vdv22",url="/forum/viewtopic.php?p=4545889#p4545889"]с адреса 040 записывается нулями. .[/uquote]
А ничего, что у вас в конфигурации прошивка залочена?

Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 17:17:43
vdv22
[uquote="КРАМ",url="/forum/viewtopic.php?p=4545893#p4545893"][uquote="vdv22",url="/forum/viewtopic.php?p=4545889#p4545889"]с адреса 040 записывается нулями. .[/uquote]
А ничего, что у вас в конфигурации прошивка залочена?

[/uquote]
а как это убрать?
Добавлено after 2 minutes 52 seconds:
[uquote="vdv22",url="/forum/viewtopic.php?p=4545895#p4545895"][uquote="КРАМ",url="/forum/viewtopic.php?p=4545893#p4545893"][uquote="vdv22",url="/forum/viewtopic.php?p=4545889#p4545889"]с адреса 040 записывается нулями. .[/uquote]
А ничего, что у вас в конфигурации прошивка залочена?

[/uquote]
а как это убрать?[/uquote]
Сразу прошу прощения за вопрос - я с ПИКами очень мало работал - с 870 и писалось и прошивалось все без проблем.
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 17:26:25
КРАМ
[uquote="vdv22",url="/forum/viewtopic.php?p=4545895#p4545895"]как это убрать?[/uquote]
А код ваш?
В коде должно быть прописано слово конфигурации.
Из представленного скрина видно. что конфиг равен FF7, где четвертый (третий от нуля) бит - это code protect.
Если он равен 0 - прошивка закрыта. Если 1 - открыта.
То есть открытый код в конфиге будет выглядеть как FFF.
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 17:36:34
vdv22
[uquote="КРАМ",url="/forum/viewtopic.php?p=4545898#p4545898"][uquote="vdv22",url="/forum/viewtopic.php?p=4545895#p4545895"]как это убрать?[/uquote]
А код ваш?
В коде должно быть прописано слово конфигурации.
Из представленного скрина видно. что конфиг равен FF7, где четвертый (третий от нуля) бит - это code protect.
Если он равен 0 - прошивка закрыта. Если 1 - открыта.
То есть открытый код в конфиге будет выглядеть как FFF.[/uquote]
Да, код мой, с защитой разобрался ,огромное спасибо -сейчас прошивается нормально, но светодиод все равно не горит ... подскажите что не так ?
#include <xc.h>
#define _XTAL_FREQ 8000000
// CONFIG
#pragma config OSC = HS // Oscillator selection bits (HS oscillator)
#pragma config WDT = OFF // Watchdog timer enable bit (WDT disabled)
#pragma config CP = OFF // Code protection bit (Code protection off)
void main() {
TRISB=0;
while (1)
{
PORTB|=(1<<0);
__delay_ms(500);
PORTB&=~(1<<0);
__delay_ms(500);
}
}
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 17:41:38
КРАМ
А у вас кварц подключен?
ЗЫ. Не цитируйте предыдущее сообщение полностью.
Не оставляйте в цитатах вложенные цитаты.
Прочтите, наконец, Правила форума. Или вы рискуете быть забаненным.
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 17:44:19
vdv22
[uquote="КРАМ",url="/forum/viewtopic.php?p=4545903#p4545903"]А у вас кварц подключен?[/uquote]
да, конечно - 8000000 гц.
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 17:45:41
КРАМ
Генерация на кварце есть? Емкости на кварце какие?
ЗЫ. Уехал с работы домой. Буду дома только после 20-00 по Москве.
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 20:27:04
vdv22
еще раз спасибо за помощь!!! разобрался -на RESET надо было повесить +5
Добавлено after 2 hours 26 minutes 55 seconds:
[uquote="КРАМ",url="/forum/viewtopic.php?p=4545910#p4545910"]Генерация на кварце есть? Емкости на кварце какие?
ЗЫ. Уехал с работы домой. Буду дома только после 20-00 по Москве.[/uquote]
Еще один вопрос возник -как опрашивать вход ? Конструкции типа if(RA1) или (PORTB & (1 << 3)) не работают - тут тоже какие то подводные камни есть ?
Re: PIC16F57 проблемы с программированием.
Добавлено: Ср фев 21, 2024 21:56:11
КРАМ
[uquote="vdv22",url="/forum/viewtopic.php?p=4545916#p4545916"]тут тоже какие то подводные камни есть ?[/uquote]
Подводные камни есть при побитной записи в порт. Ибо это процедура RMW, которая из-за отсутствия входной защелки порта способна перезаписать входные состояния пинов в выходную защелку по всем разрядам порта кроме явно устанавливаемого.
Чтение особых проблем не имеет, хотя гораздо корректнее НА ЛЮБОМ контроллере для атомарности чтения сначала защелкнуть порт в переменную, а лишь затем производить какие либо if-ы, switch-и и другие действия. Даже если вы пишите на АСМе и понимаете реальный исполняемый код.