Например TDA7294

Форум РадиоКот • Просмотр темы - Засада с PIC18F25K80
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб дек 20, 2025 20:06:13

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 19 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Засада с PIC18F25K80
СообщениеДобавлено: Чт окт 09, 2025 21:37:29 
Первый раз сказал Мяу!

Зарегистрирован: Вс ноя 13, 2022 22:47:31
Сообщений: 21
Рейтинг сообщения: 0
Здравствуйте, коллеги!
Столкнулся с проблеммой при работе с портом А PIC18F25K80 не работает чтение порта.
Проверено на двух устройствах.
На криворукость не думать.
Смотрел листинг программы, сам пишу на Си.
Там четко перевод входов на вход и чтение откуда надо. Порты В и С читает.
После танцев с бубном Перепаял на 18F2520 (цоколёвка позволяет) и сразу всё заработало.
Хотелось узнать , чего я не знаю. Или баг.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Чт окт 09, 2025 21:41:11 
Это не хвост, это антенна
Аватар пользователя

Карма: 12
Рейтинг сообщений: 77
Зарегистрирован: Вт мар 28, 2023 21:17:15
Сообщений: 1462
Откуда: Universe
Рейтинг сообщения: 0
Может порт (или отдельные линии) по умолчанию включены в альтернативные режимы? (АЦП, компаратор, ШИМ, USART...)

_________________
I have a dream...¯\_(ツ)_/¯


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Чт окт 09, 2025 21:55:32 
Первый раз сказал Мяу!

Зарегистрирован: Вс ноя 13, 2022 22:47:31
Сообщений: 21
Рейтинг сообщения: 0
Да, забыл указать -Выдача с порта идёт. Когда меняю назначение входов естественно.
Но вот замена на 18f2520 без всякой перестройки программы( только добавил 2520.h) решило проблему.
Вашу версию буду проверять.Спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Чт окт 09, 2025 22:17:42 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24614
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Вашу версию буду проверять.Спасибо.

ANSEL нужно перевести в цифровой режим. По умолчанию он в аналоговом.
На криворукость не думать.
:)))


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Чт окт 09, 2025 22:46:47 
Первый раз сказал Мяу!

Зарегистрирован: Вс ноя 13, 2022 22:47:31
Сообщений: 21
Рейтинг сообщения: 0
ANSEL - Где он. Это вроде 16 ПИК. Искал не нашёл.

У меня стоит setup_adc( ADC_OFF );
Вроде отключил. А как на самом деле.....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Пт окт 10, 2025 04:21:30 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24614
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Причем тут ADC? Речь идет о регистрах порта.
И зачем искать функцию, если есть название регистра?
Возможно в компиляторе он называется ANSELA.
Ну и на дорожку. Вы когда с МК работаете, даташит на него открываете? Кроме даташита на МК есть хедер на него в папках компилятора.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Пт окт 10, 2025 07:53:16 
Мудрый кот

Карма: 25
Рейтинг сообщений: 489
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1807
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Цитата:
REGISTER 23-8: ANCON0: A/D PORT CONFIGURATION REGISTER 0

bit 7-0 ANSEL<7:0>: Analog Port Configuration bits (AN7 and AN0)(1)
1 = Pin configured as an analog channel: digital input disabled and any inputs read as ‘0’
0 = Pin configured as a digital port

Код:
ANCON0 = 0x00;  // set all analog pins to digital mode


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Пт окт 10, 2025 08:41:36 
Первый раз сказал Мяу!

Зарегистрирован: Вс ноя 13, 2022 22:47:31
Сообщений: 21
Рейтинг сообщения: 0
Здравствуйте, veso74!
Да похоже в этом всё и дело.
В 2520 этого регистра нет. Потому и работает.
Осталось понять, как к нему попасть через Си.
Могу конечно через АСМ.
Пока микросхемы сдул. и напаял другие 18F2520.
Поди угадай где за этими настройками на Си стоит функция перевода в цифру.
Спасибо за науку.

Спойлер//////// Fuses: VREGSLEEP_SW,VREGSLEEP,INTRC_LP,INTRC_HP,SOSC_LOW,SOSC_DIG
//////// Fuses: SOSC_HIGH,XINST,NOXINST,LP,XT,HSH,HSM,ECH,ECH_IO,RC,RC_IO
//////// Fuses: INTRC_IO,INTRC,ECM,ECM_IO,ECL,ECL_IO,PLLEN,NOPLLEN,FCMEN
//////// Fuses: NOFCMEN,IESO,NOIESO,PUT,NOPUT,NOBROWNOUT,BROWNOUT_SW
//////// Fuses: BROWNOUT_NOSL,BROWNOUT,BORV30,BORV27,BORV20,BORV18,BORM_LOW
//////// Fuses: BORM_MED,BORM_HIGH,ZPBORM,NOWDT,WDT_NOSLEEP,WDT_SW,WDT,WDT1
//////// Fuses: WDT2,WDT4,WDT8,WDT16,WDT32,WDT64,WDT128,WDT256,WDT512
//////// Fuses: WDT1024,WDT2048,WDT4096,WDT8192,WDT16384,WDT32768,WDT65536
//////// Fuses: WDT131072,WDT262144,WDT524288,WDT1048576,CANC,CANB,MSSPMSK5
//////// Fuses: MSSPMSK7,MCLR,NOMCLR,STVREN,NOSTVREN,BBSIZ1K,BBSIZ2K,DEBUG
//////// Fuses: NODEBUG,PROTECT,NOPROTECT,CPB,NOCPB,CPD,NOCPD,WRT,NOWRT,WRTC
//////// Fuses: NOWRTC,WRTB,NOWRTB,WRTD,NOWRTD,EBTR,NOEBTR,EBTRB,NOEBTRB


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Пт окт 10, 2025 08:48:12 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24614
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Осталось понять, как к нему попасть через Си.

Это такая шутка?
Вам же написали:
ANCON0=0;
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Пт окт 10, 2025 09:04:09 
Первый раз сказал Мяу!

Зарегистрирован: Вс ноя 13, 2022 22:47:31
Сообщений: 21
Рейтинг сообщения: 0
Это не шутка.
В Си это можно сделать только АСМ вставку, что не хотелось.
Типа
acm
ANCON0=0;
end acm
Буду разбираться.
Ещё раз спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Пт окт 10, 2025 09:16:01 
Это не хвост, это антенна
Аватар пользователя

Карма: 12
Рейтинг сообщений: 77
Зарегистрирован: Вт мар 28, 2023 21:17:15
Сообщений: 1462
Откуда: Universe
Рейтинг сообщения: 0
Не, без асм-вставки это делается. Просто в разных компиляторах разные команды.

_________________
I have a dream...¯\_(ツ)_/¯


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Пт окт 10, 2025 09:28:22 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24614
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Это не шутка.
В Си это можно сделать только АСМ вставку, что не хотелось.
Типа
acm
ANCON0=0
end acm
Буду разбираться.
Ещё раз спасибо.

Что за чушь? :facepalm:
ANCON0=0; - это Си. В АСМ нет такого синтаксиса.
В АСМе это присвоение будет таким:
clrf ANCON0
или
movlw 0x00
movwf ANCON0

И это без учета управления секциями ОЗУ.
Вы даже в слове asm делаете ошибку :facepalm:
ЗЫ. Впрочем, я знаю истоки такой чуши. У вас не присоединен хедер контроллера к проекту и потому компилятор ничего не знает про регистры МК.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Пт окт 10, 2025 09:49:12 
Мудрый кот

Карма: 25
Рейтинг сообщений: 489
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1807
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Судя по строкам, используемым для конфигурационного слова:
Код:
//////// Fuses: VREGSLEEP_SW,VREGSLEEP,INTRC_LP,INTRC_HP,SOSC_LOW,SOSC_DIG

то используете CCS для PIC? Ето так?
---
Если да, то объявите порт как IO с помощью макросов/функций CCS
Код:
#use fast_io (port)
или
#use standard_io (port)
или
#use fixed_io (port_outputs=pin, pin?)

Если всe же нужны регистры, есть и такой вариант
Код:
#byte ANCON0 = 0xF5D
...
ANCON0 = 0x00;

Изображение
---
Не знаю: вопросы о программном коде без информации о программном коде - это просто догадки ...
В общем, дайте информацию о том, с чем вы работаете: среда написания кода IDE, компилятор, предоставьте копию/фрагмент инициализации, скриншот, иначе это будет похоже на "взгляд фокусника в хрустальный шар" ...
(частично пользуюсь переводчиком БГ->РУ)


Последний раз редактировалось veso74 Пт окт 10, 2025 14:01:40, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Пт окт 10, 2025 13:32:43 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24614
Откуда: Московская область, Фрязино
Рейтинг сообщения: 4
#byte ADCON0 = 0xFC2
...
ADCON0 = 0x00;

Это не ADCON0, а ANCON0. Первый является регистром АЦП, а второй регистром порта.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Пт окт 10, 2025 13:55:06 
Мудрый кот

Карма: 25
Рейтинг сообщений: 489
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1807
Откуда: KN34PC, Болгария
Рейтинг сообщения: 1
Да, :). Файлов было много. Идея ясна.
F5Dh <- ANCON0
---
#use FIXED_IO( ) достаточно, два варианта делает то же самое:
Код:
.................... #use FIXED_IO(A_outputs = PIN_A0, PIN_A1, PIN_A2, PIN_A3)
0048:  MOVLW  00
004A:  MOVWF  x5D
...
.................... ANCON0 = 0x00;
0056:  CLRF   x5D


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Вс окт 12, 2025 00:30:36 
Первый раз сказал Мяу!

Зарегистрирован: Вс ноя 13, 2022 22:47:31
Сообщений: 21
Рейтинг сообщения: 0
Коллеги, доброй ночи! Два дня посвятил чтению документации.
Да , проглядел. Каюсь. Си немного разбаловал.
Пользуюсь CCS. Сделал ряд конструкций на ней , порт А на выход везде. А тут влип.
Итоговая вставка, Всё заработало.
Код:
#asm
   movlw   0x00
   movwf  ANCON0,1     
#endasm

В кампиляторе была попытка это сделать, есть команда с синтаксисом, но описано не внятно. И не указано как перевести в цифровые входы.
Только как в аналоговые. и не работает.
Но есть конечно , вопросы.
Код:
 #define ANCON0      0xF5d;   

С точки зрения АСМ вы не можете присвоить ANCON0 в команде movwf ANCON0,1 такой адрес.
Код:
MOVWF Move W to f
Syntax: MOVWF f {,a}
Operands: 0 < f < 255
a  [0,1]
Operation: (W) в f

Однако работает с 0xF5d. Банки , как оказалось. роли не играют. При переключении банков всё пишется в нулевой, если адрес 0x5d .
Спросить только на форуме можно. Мои знакомые не в теме.
Ещё раз большое спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Вс окт 12, 2025 05:33:49 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24614
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Си немного разбаловал.

Может нужно на XC8 перейти? Тогда все сразу наладится и не нужно будет в гамаке и стоя.... :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Вс окт 12, 2025 09:24:36 
Это не хвост, это антенна
Аватар пользователя

Карма: 12
Рейтинг сообщений: 77
Зарегистрирован: Вт мар 28, 2023 21:17:15
Сообщений: 1462
Откуда: Universe
Рейтинг сообщения: 1
Коллеги, доброй ночи! Два дня посвятил чтению документации.
Да , проглядел. Каюсь. Си немного разбаловал.
Пользуюсь CCS. Сделал ряд конструкций на ней , порт А на выход везде. А тут влип.


Вы не то читаете видимо. Зачем так сложно, если есть базовая команда:

setup_adc_ports();

set_analog_pins(NO_ANALOGS);

Вам надо описание компилятора почитать. И всё.

https://www.ccsinfo.com/downloads/ccs_c_manual.pdf

_________________
I have a dream...¯\_(ツ)_/¯


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Засада с PIC18F25K80
СообщениеДобавлено: Вс окт 12, 2025 14:45:52 
Первый раз сказал Мяу!

Зарегистрирован: Вс ноя 13, 2022 22:47:31
Сообщений: 21
Рейтинг сообщения: 0
Уважаемый, Mursik!
Проверил, всё работает.
Код:
 set_analog_pins(NO_ANALOGS);

Решило проблему.
Вот сижу и думаю, как упустил. Собирал из нескольких проектов.
Спасибо.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 19 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y