Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Почему PORT1 не работает
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
alex_tt
Знающие люди, помогите кто знает, в чем может быть тут дело. Нужно включить порт 1, как цифровые входы/выходы, на вход и выход, делаю так:

P1DIR = 0x0F;
P1OUT = 0xFF;
P1SEL = 0x00;

Но на самом деле на выходе нет сигнала. Что не так? help.gif
rezident
Что значит "нет сигнала"?
После такой как у вас инициализации P1.0-P1.3 работают как выходы и имеют потенциалы лог.1. P1.4-P1.7 работают как входы и имеют плавающие потенциалы, если к ним не подключены внешние цепи.
Vladimir_T
Нужно проверить общую работоспособность системы и инициализацию по включениии. Ведь может и зациклить процессор в какой-либо процедуре. Отлаживайте внимательно, все должно работать, как написал rezident.
alex_tt
Я знаю, что все должно работать. Но ведь устройство работает, и все остальные порты тоже работают. А вот именно на портах 1 - плавающее состояние.
При программировании пиков, там был такой глюк. Пока не отключишь АЦП, портами 1 нельзя управлять. я думал может и здесь что-нибудь не так. Значит сам проц.
shasik
С этим процессором не работал и описания на него нет, поэтому точно сказать не могу. Но! У TI часто на одной ноге висит целая куча переферии (например АЦП/ЦАП, таймер, выход генератора и т.п.) и сброс P1SEL еще не означает, что нога работает как цифровой I/O. Посмотри внимательно в даташите на этот проц схемотехнику P1.0-P1.7 (в самом конце pdf'а), там есть таблички - какие доп. функции на какой ноге и как их включить/включить. Например, у этого проца есть, кажется. АЦП и скореее всего как рах на ногах порта 1 - проверь! Но, бди! Пару раз встречал там ошибки.
rezident
Цитата(shasik @ Apr 21 2006, 03:17) *
и сброс P1SEL еще не означает, что нога работает как цифровой I/O.

Означает. Однозначно. Команда P1SEL=0x00; однозначно переводит пины Port1 в режим GPIO. А вот P1DIR=0x0F, лишь младшую половину порта переводит в режим вывода. Старший полубайт в режиме ввода остается и на нем плавающий потенциал будет.
shasik
Цитата(rezident @ Apr 21 2006, 00:50) *
Цитата(shasik @ Apr 21 2006, 03:17) *

и сброс P1SEL еще не означает, что нога работает как цифровой I/O.

Означает. Однозначно. Команда P1SEL=0x00; однозначно переводит пины Port1 в режим GPIO. А вот P1DIR=0x0F, лишь младшую половину порта переводит в режим вывода. Старший полубайт в режиме ввода остается и на нем плавающий потенциал будет.

1. НЕОДНОЗНАЧНО!. Примереы: если у MSP есть такая вещь как SD16, то если SD16AE.x=1 - P1SEL.x абсолютно сиренево. Если у MSP есть такая вещь как DAC12, то если DAC12OPS=1, то P1SEL по барабану (как впрочем и SD16AE). Наверное есть и другие примеры. Эти взяты из опыта работы с F169, F427, F4270, FG439. Это все я веду к тому, что иногда очень полезно читать инструкции.

2. А что если сначала обнулить P1SEL (т.е. "включить" digital I/O), а затем уже настроить ноги на вход/выход? Может поможет
rezident
shasik, вы в заголовке тип кристалла видели? Ответ был дан для указанного кристалла, а не "вообще". Насчет того, что "полезно читать инструкции" совершенно с вами согласен.
АДИКМ
Покажите весь проект. Чего гадать-то?
shindarah
А может что-то еще туда пишет (в прерывании например или еще откуда), вот и получается плавающее состояние, нужно выполнить программу пошагово и постмотреть что происходит в процессе выполнения конкретно этих команд.
А может просто эти выходы сожжены... такое тоже быват... sad.gif
CeDeX
Цитата(alex_tt @ Apr 19 2006, 13:15) *
Знающие люди, помогите кто знает, в чем может быть тут дело. Нужно включить порт 1, как цифровые входы/выходы, на вход и выход, делаю так:

alex_tt
Подскажите чем дело закончилось?
Просто у меня такой же трабл с портом P1.0
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.