Altinkaya: турецкие корпуса для РЭА

16F687 проблемы с портами

Страница 1 из 2
Новичок
 
Регистрация: 28.01.2010
Сообщений: 12
Репутация: 10
 
28.01.2010 19:26 #1
Применял МПЛАБ 8 и симулятор Протеус7,6. Проблема состоит в том что настроил портС на выход - 0 и 1 бит для передачи данных, реализовано программно. Установив 0 бит высокий уровень (bsf) через пару циклов устанавливаю высокий уровень на 1 бите, при этом 0 бит сбрасывается в ноль . Пробовал подтягивать к + резисторам - бестолку. Про фишку чтение-модификация-запись читал, но осциллограф показывает на момент сброса устойчивый высокий уровень. Изначально писал под 12 РИС всё работало и в симул и на реальной схеме. Потом адаптировал под 16Ф676, не хватило памяти перешёл на 687 - даташита на РУС нет млин. ХЕЛП по портам?
Оценка
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей.
Новичок
 
Регистрация: 13.02.2008
Адрес: Ставрополь
Сообщений: 493
Репутация: 39
30 30
0 0
 
28.01.2010 20:10 #2
Если порт нагружен на низкоомную нагрузку, так что значительно садится напряжение на выходе, возможны такие глюки. Сам сталкивался , пока не научился обходить.
Попробуй такую конструкцию.
BSF TMP_REG,0 ;устанавливаем или сбрасываем нужный бит
MOVF TMP_REG,W
MOVWF PORTC ; изменить значение порта
Все действия производим с промежуточным регистром а затем всю подготовленную информацию отправляем в порт. При управлении портом это придется делать несколько раз.
Еще попробуйте на выход порта последовательно с нагрузкой включить резистор 0.3-1кОм.
Протеусом не пользуюсь , а на практике помогает.

даташита на РУС есть по среднему семейству на MICROCHIP.RU и точно есть по портам http://www.microchip.ru/lit/?mid=1x0
Оценка
Новичок
 
Регистрация: 28.01.2010
Сообщений: 12
Репутация: 10
 
28.01.2010 20:43 #3
Порт висит, без нагрузки, только осцил, резюком вешал на плюс - всё равно в ноль, прожетучные действия не хотельсь бы надо быстро передать 5 байт но не критично, Промежуточную пересылку беру на заметку. Задействовано АЦП, что интересно в предыдущих пиках регистр ANSEL находится в 1 банке так и в программе я обращался к нему, а в 687 во 2 банке а я к нему с 1 банка и работает АЦП
687 отличен даж от 676 по регистрам общий даташит не катит, мож чё отключить надо да не знаю я?
Оценка
Новичок
 
Регистрация: 28.01.2010
Сообщений: 12
Репутация: 10
 
28.01.2010 22:27 #4
кажись заработало , проблема была с банками, поскольку использовал АЦП и EEPROM
Оценка
Новичок
 
Аватар для BOB51
 
Регистрация: 25.11.2008
Адрес: ДОНЕЦК
Сообщений: 313
Репутация: 58
48 13
0 0
 
29.01.2010 10:48 #5
На то они и PICи!
Следить надо и за банками РОН и за границами страниц памяти программ
Оценка
Новичок
 
Регистрация: 13.02.2008
Адрес: Ставрополь
Сообщений: 493
Репутация: 39
30 30
0 0
 
29.01.2010 12:28 #6
Я для себя на каждый прос составляю карту памяти. Могу пример кинуть. Когда все распишешь тогда меньше вероятность ошибок.
Оценка
Новичок
 
Регистрация: 13.02.2008
Адрес: Ставрополь
Сообщений: 493
Репутация: 39
30 30
0 0
 
29.01.2010 12:30 #7
Вот файл описания, правда на PIC18F252, но это как пример.
Вложения
Тип файла: txt описание.txt (13.1 Кб, 2 просмотров)
Оценка
Новичок
 
Регистрация: 28.01.2010
Сообщений: 12
Репутация: 10
 
29.01.2010 20:31 #8
Цитата:
Сообщение от smart_pic
Вот файл описания, правда на PIC18F252, но это как пример.
Тобиш регистрам присваиваеш свои имена, не во всё вник, но как бы тож типа того делаю с переменными регистрами, а системные оставляю как есть.
Надо ещё по поводу Протеуса поспрошать, невветка...
Оценка
Новичок
 
Регистрация: 13.02.2008
Адрес: Ставрополь
Сообщений: 493
Репутация: 39
30 30
0 0
 
01.02.2010 10:35 #9
Системные регистры расписываешь как в даташит применительно к конкретному процу . Это для того чтобы если задашь левое имя регистра или бита, компиятор дал ошибку.
Свои регистры обозначаешь как удобно. У каждого свои ассоциации с названиями, поэтому такие имена.
Ну еще это дает возможность видетьвсю карту памяти и где чем занято.
Оценка
Новичок
 
Аватар для BOB51
 
Регистрация: 25.11.2008
Адрес: ДОНЕЦК
Сообщений: 313
Репутация: 58
48 13
0 0
 
02.02.2010 17:58 #10
... для стандартных имен существует файл "имя мкроконтроллера".inc
остальное - личное творчество разработчика...
повторять то, что уже есть в "имя мкроконтроллера".inc нет смысла - лишнее загромождение информацией ( если не идет речь о "картах памяти" ), но для меня они выглядят несколько иначе, чем описание.txt....
хоша... как кому удобнее...
Оценка
Ответ
Страница 1 из 2
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 21:55.
Обратная связь РадиоЛоцман Вверх