Страница 7 из 23

Re: TI MSP430 Launch Pad

Добавлено: Ср сен 26, 2012 17:17:11
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 делал и то и другое, работает всё.

Re: TI MSP430 Launch Pad

Добавлено: Чт сен 27, 2012 08:36:09
andrey_vsk
Эти библиотеки и пробовал. Удалось все таки запустить его, сначала в IAR, потом в energia. Только не пойму одного, косяк оказался в плохом контакте на ноге контрастности, хотя при этом даже она регулировалась, квадратики то исчезали то появлялись при регулировке, заметил подергав руками провод, перепаял, все заработало на ура.... 2 дня убил на это...

Re: TI MSP430 Launch Pad

Добавлено: Чт сен 27, 2012 12:17:16
polli123456
Я контрастность (3 вывод) всегда сразу подтягиваю к земле через 2.2к или 3.3к (что ближе под руку попадёт), к плюсу не подтягиваю (давно когда-то косячила, так и не делаю).

Re: TI MSP430 Launch Pad

Добавлено: Пт ноя 02, 2012 11:19:18
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

Re: TI MSP430 Launch Pad

Добавлено: Пт ноя 02, 2012 11:22:24
prinv
Подтяните P1.3 резистором к 0

Re: TI MSP430 Launch Pad

Добавлено: Пт ноя 02, 2012 11:29:45
morpheus
prinv писал(а):Подтяните P1.3 резистором к 0
тогда не понятно, почему это не сделано создателями платы? И в стандартной прошивке с термометром кнопка вполне функциональна без всяких резисторов?

Re: TI MSP430 Launch Pad

Добавлено: Пт ноя 02, 2012 11:30:41
prinv
Это программно делается, я летом разбирался - сейчас поищу.

Re: TI MSP430 Launch Pad

Добавлено: Пт ноя 02, 2012 11:41:16
prinv
Вот здесь всё про кнопки и про подтягивающие резисторы расписано.

Re: TI MSP430 Launch Pad

Добавлено: Пт ноя 02, 2012 12:24:55
morpheus
prinv писал(а):Вот здесь всё про кнопки и про подтягивающие резисторы расписано.
Большое спасибо!

Re: TI MSP430 Launch Pad

Добавлено: Пт ноя 02, 2012 16:43:07
YS

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

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

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

P1DIR = BIT0;
, так оптимальнее, хотя по сути то же самое.

Re: TI MSP430 Launch Pad

Добавлено: Пт ноя 02, 2012 20:33:24
prinv
Не соглашусь/
P1DIR |= BIT0 универсальнее, т.к. P1DIR = BIT0 подходит для конкретной ситуации и может быть не применимо в другой, потому что обнуляет биты, не связаные с BIT0

Re: TI MSP430 Launch Pad

Добавлено: Пт ноя 02, 2012 20:50:19
YS
P1DIR = BIT0 подходит для конкретной ситуации
Вот как раз именно для этой ситуации этот метод и подходит. Два в одном - и затираем ненужное, и устанавливаем бит. Не надо писать две строчки там, где можно обойтись одной.

Re: TI MSP430 Launch Pad

Добавлено: Сб ноя 03, 2012 08:18:15
prinv
Я считаю, что лучше не изменять те биты, которые не влияют на выполнение поставленной задачи.

Re: TI MSP430 Launch Pad

Добавлено: Сб ноя 03, 2012 13:58:36
YS
лучше не изменять те биты, которые не влияют на выполнение поставленной задачи.
В каждом участке кода надо использовать наиболее оптимальный подход.

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

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

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

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

if (P1IN & BIT3) {
     P1OUT |= BIT0;
    } else {
     P1OUT &= ~BIT0;
    }
А на этапе инициализации проще как раз одним махом задать полное значение порта.

Re: TI MSP430 Launch Pad

Добавлено: Сб ноя 03, 2012 14:24:45
DX168B
YS писал(а):Вот мне на работе приходится ковырять PIC, так я плююсь от их даташитов после Atmel, ST и TI. :wink:
О дааа.... К примеру, даташит на PIC16F1825 мне на столько вынес мозг, на сколько не смогли бы даже текущая девушка с бывшей, вместе взятые. :)))

Re: TI MSP430 Launch Pad

Добавлено: Сб ноя 03, 2012 17:16:37
HHIMERA
DX168B писал(а):
YS писал(а):Вот мне на работе приходится ковырять PIC, так я плююсь от их даташитов после Atmel, ST и TI. :wink:
О дааа.... К примеру, даташит на PIC16F1825 мне на столько вынес мозг, на сколько не смогли бы даже текущая девушка с бывшей, вместе взятые. :)))
Ох уж эти сказочники!!! :)))
Даташит, как даташит... всё там ясно и понятно...
16-й он и в Африке 16-й... только с дополнительными инструкциями... и периферией...
А что вы, собственно, хотели... если малоногий чип напичкан... по самое не хочу???
Да по сравнению с ним... MSP430 и Атмега16 выглядят как погрызанные злыми собаками колобки!!! :)))

Re: TI MSP430 Launch Pad

Добавлено: Сб ноя 03, 2012 19:33:08
DX168B
Мне почему-то даташит на STM32F407 куда более понятен, ежели на этот PIC. :)))
Скажите к примеру, почему я не могу вывести ШИМ канал Р2А на ногу RC5? И где делся бит P2ASEL?
Причем, вывод Р2В сконфигурирован и исправно работает на ноге RC4.
На этот вопрос мне не смог ответить даже представитель самого Микрочипа. :)))
Когда столкнешься подобными багами при некоторых обстоятельствах, тогда это тебе не покажется сказочками. :)))

Re: TI MSP430 Launch Pad

Добавлено: Сб ноя 03, 2012 19:54:10
YS
На этот вопрос мне не смог ответить даже представитель самого Микрочипа.
:)))

Чую, не зря я PIC не использую для себя. :))) Ну а на работе - там политика партии такая.

Re: TI MSP430 Launch Pad

Добавлено: Сб ноя 03, 2012 20:06:40
DX168B
Я как-то к PIC тоже не очень. Просто проект такой, под который только он и подходит. И тут такая бяка вышла. А без двух полумостовых модулей ШИМа никуда не деться. Сейчас надо разбираться, какая альтернативная функция заняла эту ногу. На мегах и АРМах все куда проще.
Ну, тот МК совсем новый и сырой еще. По этому и проблемы всплывают. У нас на работе в основном Меги и STMы. Ну и плисами немного балуемся.

Re: TI MSP430 Launch Pad

Добавлено: Сб ноя 03, 2012 20:23:55
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
На этот вопрос мне не смог ответить даже представитель самого Микрочипа. :)))
Это он из скромности... :))
Бывают ляпы и у Микрочипа в документации... и злокопипаст бывает... но в целом - всё дело просто в привычке...