PIC16F57 проблемы с программированием.

Поклонники продукции Microchip Technology Inc тусуются тут.
Аватара пользователя
vdv22
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт июн 08, 2017 17:52:33

PIC16F57 проблемы с программированием.

Сообщение vdv22 »

Добрый день, есть такой контроллер PIC16F57, пытаюсь написать ную программу для него в MPlab X EDI на даже при моргании светодиодом возникаю проблемы - TRISA|=(1<<0) он не хочет воспринимать.
выдает вот такую ошибку-main.c:11:: error: (712) can't generate code for this expression .
Отстал от порта А и сделал по другому -TRISB=0; перевел весь порт B на выход , скомпилировалось. Далее подключаю программатор К150 - при программировании выдает ошибку. Считываю содержимое микросхемы , пробую прошить - прошивается..может кто сталкивался с данной проблемой?
Реклама
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: PIC16F57 проблемы с программированием.

Сообщение veso74 »

Поделитесь весь кодом для blink, не только фрагмент.
Реклама
OKF
Это не хвост, это антенна
Сообщения: 1393
Зарегистрирован: Вт июн 07, 2011 08:03:18

Re: PIC16F57 проблемы с программированием.

Сообщение OKF »

TRISx write only, поэтому правильно пишешь в TRISB.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: PIC16F57 проблемы с программированием.

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

[uquote="vdv22",url="/forum/viewtopic.php?p=4545598#p4545598"]TRISA|=(1<<0)[/uquote]
Что вы имели ввиду этой строкой? :dont_know:
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
vdv22
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт июн 08, 2017 17:52:33

Re: PIC16F57 проблемы с программированием.

Сообщение 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]
Что вы имели ввиду этой строкой? :dont_know:[/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]


То есть так здесь не работает ? для операции логического или необходимо сначала считать регистр, потом по или произвести сложение и записать ......
Реклама
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: PIC16F57 проблемы с программированием.

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

[uquote="vdv22",url="/forum/viewtopic.php?p=4545627#p4545627"]То есть так здесь не работает ? для операции логического или необходимо сначала считать регистр, потом по или произвести сложение и записать ......[/uquote]
В этом контроллере нет регистра TRISA или TRISB. Есть инструкция tris, которая записывает содержимое аккумулятора в регистр управления драйвером порта (аппаратно эквивалентен TRIS).
Поэтому его невозможно прочитать. Если есть такая потребность, нужно организовать копию в ОЗУ и совершать над ней те же манипуляции, что и с невидимой TRIS. Или не совершать никакой математики связанной с чтением TRIS.
Реклама
Аватара пользователя
vdv22
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт июн 08, 2017 17:52:33

Re: PIC16F57 проблемы с программированием.

Сообщение 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 переведет порт В на выход?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: PIC16F57 проблемы с программированием.

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

Да. А если пытаться читать, делать маску и писать, то будет ошибка.
Аватара пользователя
vdv22
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт июн 08, 2017 17:52:33

Re: PIC16F57 проблемы с программированием.

Сообщение vdv22 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4545730#p4545730"]Да. А если пытаться читать, делать маску и писать, то будет ошибка.[/uquote]
Спасибо, с этим все понятно , а почему программатор ругается при прошивке откомпилированного кода?
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

Re: PIC16F57 проблемы с программированием.

Сообщение veso74 »

Дайте картинку (скопируйте сюда) "ругатни" :).
Не можем угадать, что показывает.
Аватара пользователя
vdv22
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт июн 08, 2017 17:52:33

Re: PIC16F57 проблемы с программированием.

Сообщение vdv22 »

[uquote="veso74",url="/forum/viewtopic.php?p=4545743#p4545743"]Дайте картинку (скопируйте сюда) "ругатни" :).
Не можем угадать, что показывает.[/uquote] первое фото это считывания после попытки прошивки.
на втором фото при верификации возникает ошибка с адреса 040. То есть с адреса 040 записывается нулями. .
Вложения
считывание после прошивки.png
(26.84 КБ) 142 скачивания
верификация.png
(37.44 КБ) 127 скачиваний
2024-02-21 20_51_58-Window.png
(24.9 КБ) 139 скачиваний
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: PIC16F57 проблемы с программированием.

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

[uquote="vdv22",url="/forum/viewtopic.php?p=4545889#p4545889"]с адреса 040 записывается нулями. .[/uquote]
А ничего, что у вас в конфигурации прошивка залочена? :))) :))) :)))
Аватара пользователя
vdv22
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт июн 08, 2017 17:52:33

Re: PIC16F57 проблемы с программированием.

Сообщение 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 и писалось и прошивалось все без проблем.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: PIC16F57 проблемы с программированием.

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

[uquote="vdv22",url="/forum/viewtopic.php?p=4545895#p4545895"]как это убрать?[/uquote]
А код ваш?
В коде должно быть прописано слово конфигурации.
Из представленного скрина видно. что конфиг равен FF7, где четвертый (третий от нуля) бит - это code protect.
Если он равен 0 - прошивка закрыта. Если 1 - открыта.
То есть открытый код в конфиге будет выглядеть как FFF.
Аватара пользователя
vdv22
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт июн 08, 2017 17:52:33

Re: PIC16F57 проблемы с программированием.

Сообщение 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);
}
}
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: PIC16F57 проблемы с программированием.

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

А у вас кварц подключен?
ЗЫ. Не цитируйте предыдущее сообщение полностью.
Не оставляйте в цитатах вложенные цитаты.
Прочтите, наконец, Правила форума. Или вы рискуете быть забаненным.
Последний раз редактировалось КРАМ Ср фев 21, 2024 17:44:39, всего редактировалось 1 раз.
Аватара пользователя
vdv22
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт июн 08, 2017 17:52:33

Re: PIC16F57 проблемы с программированием.

Сообщение vdv22 »

[uquote="КРАМ",url="/forum/viewtopic.php?p=4545903#p4545903"]А у вас кварц подключен?[/uquote]
да, конечно - 8000000 гц.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: PIC16F57 проблемы с программированием.

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

Генерация на кварце есть? Емкости на кварце какие?
ЗЫ. Уехал с работы домой. Буду дома только после 20-00 по Москве.
Аватара пользователя
vdv22
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт июн 08, 2017 17:52:33

Re: PIC16F57 проблемы с программированием.

Сообщение 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)) не работают - тут тоже какие то подводные камни есть ?
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: PIC16F57 проблемы с программированием.

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

[uquote="vdv22",url="/forum/viewtopic.php?p=4545916#p4545916"]тут тоже какие то подводные камни есть ?[/uquote]
Подводные камни есть при побитной записи в порт. Ибо это процедура RMW, которая из-за отсутствия входной защелки порта способна перезаписать входные состояния пинов в выходную защелку по всем разрядам порта кроме явно устанавливаемого.
Чтение особых проблем не имеет, хотя гораздо корректнее НА ЛЮБОМ контроллере для атомарности чтения сначала защелкнуть порт в переменную, а лишь затем производить какие либо if-ы, switch-и и другие действия. Даже если вы пишите на АСМе и понимаете реальный исполняемый код.
Ответить

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