Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.84/43: Рейтинг темы: голосов - 43, средняя оценка - 4.84
Stodmykovp
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 7
1

светодиод, кнопка и msp430

15.02.2015, 09:58. Просмотров 8039. Ответов 8
Метки нет (Все метки)

Доброго времени суток, форумчане. Задам в скорее всего банальный вопрос для многих, но я только начал разбираться во всем этом... Есть плата, на ней msp430f2131, светодиод подключенный к Р1.3 и кнопка подключенная к Р2.1. В коде я решил не изобретать велосипед и взял за основу http://we.iosyitistromyss.ru/msp430/...em-knopki.html

Код
void delay(void);

void main(void) {
unsykned int flash;
WDTCTL = WDTPW + WDTHOLD;

P1OUT = 0;
P1DIR |= BIT3;  // Вывод светодиод на выход

P2DIR |= BIT1;
P2REN |= BIT1; //разрешаем подтяжку
P2OUT |= BIT1; //подтяжка вывода P1.3 вверх

for (;;) {

for (flash=0; flash<7; flash++) {
P1OUT |= BIT3;    // включаем красный светодиод
delay();             // вызов функции задержки
P1OUT &= ~BIT3;   // выключаем красный светодиод
delay();             // опять задержка
}

while ((P2IN & BIT1) == BIT1);  // ждем нажатия кнопки

}
} // main

void delay(void) {
unsykned int count;
for (count=0; count<60000; count++);
} // задержка
но пока блуждал по форуму вычитал следующие
PxSEL
Посмотрите снова на схему выводов(стр.3 в даташите), на ней вы можете заметить что большинство ножек имеет несколько функций. Функция ножки зависит от настройки регистра. Функции по умолчанию указана первыми, так контакты P1 по умолчанию на ввод/вывод, тогда как контактам P2 назначены на подключение к кварцевому резонатору. Особенности настройки рассмотрим позже, а пока планируйте использовать значения по умолчанию в PxSEL.
Проблема в том что программа отрабатывает первый цикл, доходит до момента ожидания нажатия на кнопку и все. Дальше ничего не происходит... Я в скорее всего не правильно обращаюсь к кнопке. Подскажите пожалуйста, в чем ошибка?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2015, 09:58
Ответы с готовыми решениями:

Светодиод и кнопка
Привет всем! Помогите пожалуйста! Как написать программу на С под avr, чтобы когда на кнопку...

MSP430
Вроде у буржуев очень популярный, а в рунете наоборот както слабо. Заказал себе второй и пятой...

MSP430 и Linux
Доброе утро! Я в микроконтроллерах пока что полный нуб, поэтому прошу совета опытных чуваков. ...

MSP430 в LabView
Привет. Нужно программировать msp430 в LabVIEW. Это вообще возможно?Дайте хоть какую то информацию...

MSP430 в вакууме
Сам я микроконтроллеры программирую исключительно ради развлечения. Профиль работы у меня немного...

8
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
15.02.2015, 11:17 2
Цитата Сообщение от Stodmykovp
Я в скорее всего не правильно обращаюсь к кнопке. Подскажите пожалуйста, в чем ошибка?
Ножку кнопки надо настраивать как вход, а не выход. Убирайте строчку P2DIR |= BIT1; может камень еще живой.
0
Stodmykovp
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 7
15.02.2015, 11:28 3
МК вроде бы живой, дышит... Но все равно по нажатию на кнопку ничего не происходит..
0
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
15.02.2015, 11:42 4
Проверяйте подключение кнопки, пробуйте другую (живую) ногу...
PxSEL для P2.1 по дефолту настроен как IO, ваши опасения что нога занята другой периферией напрасны.
0
15.02.2015, 11:42
Stodmykovp
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 7
15.02.2015, 11:47 5
Цитата Сообщение от яверт
Ножку кнопки надо настраивать как вход, а не выход. Убирайте строчку P2DIR |= BIT1; может камень еще живой.
Правильно я Вас понял, что нужно P2DIR = 0; ?
0
Stodmykovp
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 7
15.02.2015, 12:22 6
Цитата Сообщение от яверт
Проверяйте подключение кнопки, пробуйте другую (живую) ногу...
Подключил к Р2.4 и без изменений...
0
яверт
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 3,097
15.02.2015, 12:31 7
Цитата Сообщение от Stodmykovp
Правильно я Вас понял, что нужно P2DIR = 0; ?
По умолчанию (после сброса, старта мк) практически все ноги настроены как входы, в принципе выполнять P2DIR = 0; или конкретно для ноги P2.1 P2DIR &= ~(BIT1); нет нужды... но если вам хочется, почему бы и нет.

Цитата Сообщение от Stodmykovp
Цитата Сообщение от яверт
Проверяйте подключение кнопки, пробуйте другую (живую) ногу...
Подключил к Р2.4 и без изменений...
Кнопку подключили как в статье, между ногой и землёй?
0
Stodmykovp
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 7
15.02.2015, 12:32 8
Цитата Сообщение от яверт
Кнопку подключили как в статье, между ногой и землёй?
Да.
0
Stodmykovp
0 / 0 / 0
Регистрация: 11.02.2015
Сообщений: 7
15.02.2015, 16:29 9
Прошу прощения, ошибка конечно была в коде, но основная была все таки в железе, резисторы перепутал и впоял не тот... Теперь же все работает :)
яверт, спасибо за помощь :)
0
15.02.2015, 16:29
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2015, 16:29

msp430 IAR
Ребята просьба о помощи, в универе курсовая по микроконтроллерам MSP430, работаем на IAR Workbench....

FreeModBus + MSP430
Ребята Help. Ситуация такова: скачал библиотеку FreeModBus и запихнул ее в проект и возникла...

Прерывания MSP430
Здравствуйте! Написал программу для обмена данными с температурного датчика и компьютера через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.