TI MSP430 Launch Pad

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Встал на лапы
Аватара пользователя
Сообщения: 86
Зарегистрирован: Пн мар 07, 2011 15:06:32
Откуда: Murom

Сообщение polli123456 »

В энергии стандартная библиотека, вот пример из неё:
Спойлер/*
LiquidCrystal Library - Hello World

Demonstrates the use a 16x2 LCD display. The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.

This sketch prints "Hello World!" to the LCD
and shows the time.

The circuit:
===============
LCD pin Connect to
---------------------------------
01 - GND GND, pot
02 - VCC +5V, pot
03 - Contrast Pot wiper
04 - RS Pin8 (P2.0)
05 - R/W GND
06 - EN Pin9 (P2.1)
07 - DB0 GND
08 - DB1 GND
09 - DB2 GND
10 - DB3 GND
11 - DB4 Pin10 (P2.2)
12 - DB5 Pin11 (P2.3)
13 - DB6 Pin12 (P2.4)
14 - DB7 Pin13 (P2.5)
15 - BL+ +5V
16 - BL- GND
===============

Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe

This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/LiquidCrystal
*/

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(P2_0, P2_1, P2_2, P2_3, P2_4, P2_5);

void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}

void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis()/1000);
}
Пример в CCS http://mcudu.blogspot.com/2011/02/wh0802a.html
и продолжение с библиотекой здесь: http://mcudu.blogspot.com/2011/02/blog-post.html
p/s делал и то и другое, работает всё.
Реклама
Родился
Сообщения: 3
Зарегистрирован: Ср дек 14, 2011 09:59:57
Откуда: г.Мурманск

Сообщение andrey_vsk »

Эти библиотеки и пробовал. Удалось все таки запустить его, сначала в IAR, потом в energia. Только не пойму одного, косяк оказался в плохом контакте на ноге контрастности, хотя при этом даже она регулировалась, квадратики то исчезали то появлялись при регулировке, заметил подергав руками провод, перепаял, все заработало на ура.... 2 дня убил на это...
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 86
Зарегистрирован: Пн мар 07, 2011 15:06:32
Откуда: Murom

Сообщение polli123456 »

Я контрастность (3 вывод) всегда сразу подтягиваю к земле через 2.2к или 3.3к (что ближе под руку попадёт), к плюсу не подтягиваю (давно когда-то косячила, так и не делаю).
Родился
Сообщения: 8
Зарегистрирован: Вт мар 15, 2011 09:59:59

Сообщение morpheus »

У меня такая вот проблема:

Код: Выделить всё

#include "msp430.h"
int main(void){
   WDTCTL = WDTPW + WDTHOLD;
   P1DIR = 0;
   P1DIR |= BIT0;
  while (1) {
    if (P1IN & BIT3) {
     P1OUT = BIT0;
    } else {
     P1OUT &= ~BIT0;
    }
  }
}
Предполагается что при нажатии а кнопку P1.3 загорится светодиод 1.0, однако происходит что-то странное: светодиод загорается без нажатия на клавишу, а при простом прикосновении к железной крышке кнопки или к пину 1.3 на мк. при нажатии на клавишусветодиод гаснет. Тестировал на 2х ланчпадах, на обоих такая фигня. В чем может быть проблема?
P.S. Компилятор mspgcc и IAR
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Аватара пользователя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь

Сообщение prinv »

Подтяните P1.3 резистором к 0
Никакая контра не уйдёт от нас
Контактная информация:
Реклама
Родился
Сообщения: 8
Зарегистрирован: Вт мар 15, 2011 09:59:59

Сообщение morpheus »

prinv писал(а):Подтяните P1.3 резистором к 0
тогда не понятно, почему это не сделано создателями платы? И в стандартной прошивке с термометром кнопка вполне функциональна без всяких резисторов?
Реклама
Вымогатель припоя
Аватара пользователя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь

Сообщение prinv »

Это программно делается, я летом разбирался - сейчас поищу.
Никакая контра не уйдёт от нас
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь

Сообщение prinv »

Вот здесь всё про кнопки и про подтягивающие резисторы расписано.
Никакая контра не уйдёт от нас
Контактная информация:
Родился
Сообщения: 8
Зарегистрирован: Вт мар 15, 2011 09:59:59

Сообщение morpheus »

prinv писал(а):Вот здесь всё про кнопки и про подтягивающие резисторы расписано.
Большое спасибо!
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

Код: Выделить всё

   P1DIR = 0;
   P1DIR |= BIT0;
Стоит заменить на

Код: Выделить всё

P1DIR = BIT0;
, так оптимальнее, хотя по сути то же самое.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь

Сообщение prinv »

Не соглашусь/
P1DIR |= BIT0 универсальнее, т.к. P1DIR = BIT0 подходит для конкретной ситуации и может быть не применимо в другой, потому что обнуляет биты, не связаные с BIT0
Никакая контра не уйдёт от нас
Контактная информация:
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

P1DIR = BIT0 подходит для конкретной ситуации
Вот как раз именно для этой ситуации этот метод и подходит. Два в одном - и затираем ненужное, и устанавливаем бит. Не надо писать две строчки там, где можно обойтись одной.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 677
Зарегистрирован: Чт янв 20, 2011 09:07:08
Откуда: Пермь

Сообщение prinv »

Я считаю, что лучше не изменять те биты, которые не влияют на выполнение поставленной задачи.
Никакая контра не уйдёт от нас
Контактная информация:
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

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

Вот этот кусок

Код: Выделить всё

if (P1IN & BIT3) {
     P1OUT = BIT0;
    } else {
     P1OUT &= ~BIT0;
    }
лучше переписать так:

Код: Выделить всё

if (P1IN & BIT3) {
     P1OUT |= BIT0;
    } else {
     P1OUT &= ~BIT0;
    }
А на этапе инициализации проще как раз одним махом задать полное значение порта.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)

Сообщение DX168B »

YS писал(а):Вот мне на работе приходится ковырять PIC, так я плююсь от их даташитов после Atmel, ST и TI. :wink:
О дааа.... К примеру, даташит на PIC16F1825 мне на столько вынес мозг, на сколько не смогли бы даже текущая девушка с бывшей, вместе взятые. :)))
I am DX168B and this is my favourite forum on internet!
Контактная информация:
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

DX168B писал(а):
YS писал(а):Вот мне на работе приходится ковырять PIC, так я плююсь от их даташитов после Atmel, ST и TI. :wink:
О дааа.... К примеру, даташит на PIC16F1825 мне на столько вынес мозг, на сколько не смогли бы даже текущая девушка с бывшей, вместе взятые. :)))
Ох уж эти сказочники!!! :)))
Даташит, как даташит... всё там ясно и понятно...
16-й он и в Африке 16-й... только с дополнительными инструкциями... и периферией...
А что вы, собственно, хотели... если малоногий чип напичкан... по самое не хочу???
Да по сравнению с ним... MSP430 и Атмега16 выглядят как погрызанные злыми собаками колобки!!! :)))
"Я не даю готовых решений, я заставляю думать!"(С)
Друг Кота
Аватара пользователя
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)

Сообщение DX168B »

Мне почему-то даташит на STM32F407 куда более понятен, ежели на этот PIC. :)))
Скажите к примеру, почему я не могу вывести ШИМ канал Р2А на ногу RC5? И где делся бит P2ASEL?
Причем, вывод Р2В сконфигурирован и исправно работает на ноге RC4.
На этот вопрос мне не смог ответить даже представитель самого Микрочипа. :)))
Когда столкнешься подобными багами при некоторых обстоятельствах, тогда это тебе не покажется сказочками. :)))
I am DX168B and this is my favourite forum on internet!
Контактная информация:
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

На этот вопрос мне не смог ответить даже представитель самого Микрочипа.
:)))

Чую, не зря я PIC не использую для себя. :))) Ну а на работе - там политика партии такая.
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 4468
Зарегистрирован: Вс янв 24, 2010 19:19:52
Откуда: Главный Улей России (Moscow)

Сообщение DX168B »

Я как-то к PIC тоже не очень. Просто проект такой, под который только он и подходит. И тут такая бяка вышла. А без двух полумостовых модулей ШИМа никуда не деться. Сейчас надо разбираться, какая альтернативная функция заняла эту ногу. На мегах и АРМах все куда проще.
Ну, тот МК совсем новый и сырой еще. По этому и проблемы всплывают. У нас на работе в основном Меги и STMы. Ну и плисами немного балуемся.
I am DX168B and this is my favourite forum on internet!
Контактная информация:
Друг Кота
Сообщения: 4583
Зарегистрирован: Вс дек 05, 2010 06:10:34
Откуда: ЮВ

Сообщение HHIMERA »

DX168B писал(а):Скажите к примеру, почему я не могу вывести ШИМ канал Р2А на ногу RC5? И где делся бит P2ASEL?
А если его нет... то что куда выводить??? :))
DS41440C-page 120
For this device family, the following
functions can be moved between different pins.
• RX/DT/TX/CK
• SDO1
• SS (Slave Select)
• T1G
• P1B/P1C/P1D/P2B
• CCP1/P1A/CCP2
На этот вопрос мне не смог ответить даже представитель самого Микрочипа. :)))
Это он из скромности... :))
Бывают ляпы и у Микрочипа в документации... и злокопипаст бывает... но в целом - всё дело просто в привычке...
"Я не даю готовых решений, я заставляю думать!"(С)
Ответить

Вернуться в «Разные вопросы по МК»