Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Re: TI MSP430 Launch Pad

Вт мар 03, 2015 18:09:25

В общем вот проект на CCS 6 под msp430g2553.

динамическая посегментная индикация + шим яркость каждого символа ну и пример чтения данных внутреннего термометра.
пинаут подключения индикатора сводится к дефайнам общих выводов каждого символа и последовательном переборе маской - там все понятно. я подключал к ланчпаду сегмент а к P1.1 и так далее просто вниз по плате.

Проблему с глобальными переменными не решил но нашел способ обойти хоть и не особо удачный.
Вложения
2_VAMeter.rar
проект
(125.78 KiB) Скачиваний: 585

Re: TI MSP430 Launch Pad

Ср июн 10, 2015 10:33:29

Создаю дерево меню, чтобы по дисплею, используя кнопки, "бегать" по нему.
В качестве элемента меню использую объект типа класс, в котором хранится массив дочерних объектов (массив указателей на те же объекты типа класс).
В cpp на компьютере (у меня используется сbuilder) работает прекрасно, а в IAR при создании дерева меню, как будто не может выделить место под новый объект типа класс - хватает только на 9 пунктов меню, хотя места в RAM ещё предостаточно. В чём подвох?
Нашёл в интернете темы о [пере]выделении памяти, типа этой, но чую что могу пойти не туда. Help!
P.S.Launchpad MSP-EXP430F5529LP.

Код класса пункта меню:


Код создания дерева меню:

Re: TI MSP430 Launch Pad

Пн июн 15, 2015 14:01:40

Проблемы решил, поигравшись с параметром "Data16 heap size" в свойстве проекта (General options -> Stack/Heap).
Несколько дней полёт нормальный.

Re: TI MSP430 Launch Pad

Пн июн 15, 2015 14:52:40

imho, ООП на МК это не очень хорошая идея

Re: TI MSP430 Launch Pad

Вт июн 16, 2015 12:36:21

prinv писал(а):imho, ООП на МК это не очень хорошая идея

ОЗУ не хватит (6 килобайт) ?

Re: TI MSP430 Launch Pad

Вт июн 16, 2015 12:37:56

Кроме меню МК чем-то ещё заниматься будет? :))

Re: TI MSP430 Launch Pad

Вт июн 16, 2015 12:41:14

prinv писал(а):Кроме меню МК чем-то ещё заниматься будет? :))

занимается.

Re: TI MSP430 Launch Pad

Вт июн 16, 2015 12:46:01

Даже интересно стало: сколько у вас в памяти занимает вся структура меню?

Re: TI MSP430 Launch Pad

Вт июн 16, 2015 13:05:59

prinv писал(а):Даже интересно стало: сколько у вас в памяти занимает вся структура меню?

кода? IAR рапортует 14186 of code memory.

Re: TI MSP430 Launch Pad

Вт июн 16, 2015 13:07:40

VLeshka писал(а):кода? IAR рапортует 14186 of code memory.

Каков уровень оптимизации?? И сколько ОЗУ приходится?

Re: TI MSP430 Launch Pad

Вт июн 16, 2015 13:14:22

Psych писал(а):
VLeshka писал(а):кода? IAR рапортует 14186 of code memory.

Каков уровень оптимизации?? И сколько ОЗУ приходится?

Optimization - Low.

Во время отладки пытался проконтролировать вручную размер rootMenu - явно не могу (указатель указывает на 0x2790, а там голые цифры).
IAR рапортует после компиляции:
885 bytes of DATA memory (+260 absolute).
51 bytes of const memory.

Re: TI MSP430 Launch Pad

Вт июн 16, 2015 13:21:23

При каком размере стека стало работать без ошибок?

Re: TI MSP430 Launch Pad

Вт июн 16, 2015 13:27:44

prinv писал(а):При каком размере стека стало работать без ошибок?

Сколько минимальный стек нужен мне для работы приведённого мною кода, не проверял, т.к. меню дальше будет раздуваться, и надо было знать доступное количество пунктов меню при новом значении (поставил 320).

При 160 позволял создавать 9 объектов типа класса [мною созданного]. При 320 (поставил сейчас) позволяет создавать 19 (проверял и простым созданием массива, и способом, приведённым мною здесь).

Re: TI MSP430 Launch Pad

Сб окт 17, 2015 15:47:32

Мне кажется, что я заблудился в трёх регистрах. История такова - пока жду недостающие детали для одной конструкции, решил на время подключить этот ланчпад, чтобы он генерил необходимые мне сигналы для проверки остальной схемы. И вот один из сигналов такой: необходимо залить 32-х разрядный сдвиговый регистр данными и выдать строб для параллельной записи (ну наподобие 595-го регистра).
В режиме ногодрыга всё работает. Но тут мне захотелось приключений и решил сделать через USI (кристалл msp430g2231). И тут оно работать перестало. Вернее работает не так как я хочу.

Регистр USI 16-ти разрядный. Значит, 32 бита мне нужно пересылать за два раза. Хотел сделать так:

загрузить младшую половину данных
загрузить счетчик = 16 (тут должен сняться запрос прерывания и данные должны побежать )
дождаться появления запроса прерывания (это прерывание замаскировано и вызываться не должно)
загрузить старшую половину данных
загрузить счетчик = 16 (опять запрос должен сняться)
дождаться запроса прерывания
дёрнуть ногодрыгом строб параллельной записи.

Код:

      USISR 
= shiftreg;
      USICTL1 = 0;
      USICNT = USI16B | 16;
      while (USICTL1 & USIIFG);

      USICTL1 = 0;
      USISR = shiftreg >> 16;
      USICNT = USI16B | 16;
      while (USICTL1 & USIIFG);
 
      LE 
= 1;
      __no_operation();
      __no_operation();
      __no_operation();
      LE = 0;
 

Проблема в том, что пока перед while не засунул 3 NOP-а - в регистрах была белиберда. Но, понизив скорость (изменил USIDIV) - снова белиберда.

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


SOLUTION:
Сам проблему и решил... Надо пользовать прерывания.

Код:
#pragma vector=USI_VECTOR
__interrupt void send_other_word (void) {
  USICTL1_bit.USIIFG = 0;
  flag.frame_event = 1;
}

где-то в main()
      flag.frame_event = 0;
      USISR = shiftreg;
      USICNT = USI16B | 16;
      while (!flag.frame_event);
      flag.frame_event = 0;

      USISR = shiftreg >> 16;
      USICNT = USI16B | 16;
      while (!flag.frame_event);

      LE = 1;
      __no_operation();
      __no_operation();
      __no_operation();
      LE = 0;


Хотя всё равно не понятно, почему опрос флага прерываний не даёт нужного эффекта. Вернее понятно, что запрос прерывания убирается не сразу после записи в регистр USICNT, а когда этот USI начинает шевелиться.

Re: TI MSP430 Launch Pad

Чт дек 31, 2015 14:25:34

С новым годом!
Взял себе с работы домой девайс MSP430F5529_LaunchPad, я теперь на работе работаю с ним.
Есть кто, кто может подсказать по работе с usb-портом на ланчпаде типа этого ?

Эмулирую стандартное hid-устройство типа datapipe.
Использую usb descriptor tool, для создания т.н. дескрипторов для моего usb-девайса.
Ланчпад корректно распознаётся моей операционной системой (Windows) как стандартное hid-устройство, без всяких вопросов и восклицательных знаков. :)
Usb-сниффер [связи компа с usb-девайсами] использую. Он показал, что ответа от моего девайса нет.

Написал на компе простенькую программу связи с моим usb-устройством, оно мой ланчпад находит. В качестве теста решил отправить на комп пару байтов.
Проблема в прошивке ланчпада. Для учёбы использовал example от ti.com. В ходе пошагового разбора, выяснил что проблема в процедуре копирования данных в usb-буфер (для отправки в хост компьютеру). Что интересно, в example тоже такая же проблема.

При копировании данных в буфер usb (для отправки в usb-хост), буфер usb недоступен для записи.
Копирую туда (указателем), так не выдаёт ошибку и дальше идёт, и результата копирования ноль.
Если до команды:
Код:
USBCNF |= USB_EN;

использовать команду:
Код:
*((unsigned int*)(0x1C80)) = 0x1234;

то оно выполняется. После команды "USBCNF |= USB_EN;", копирование в буфер usb не происходит (хотя в example код такой же - но и там контроль в watch параметра (unsigned int*)(0x1C80) показывает, что не работает).

Регистр ключа USBKEYPID ставил.
Бит UPLLEN в USBPLLCTL всегда enable.
Бит UBME (в EP_INPUT_1, USBIEPCNF_n) в регистре конфигурации endpoint-ов менять пытался - не даёт меняться даже с USBKEYPID. Не пойму почему.

Помогите пожста.

Re: TI MSP430 Launch Pad

Ср янв 20, 2016 08:04:59

Тут вот мой товарищ в порядке восстановления своего владения "аглицкой мовой", как он сам выразился, перевел документ MSP430 IAR Assembler. Вот ссылка. https://yadi.sk/d/KbZE9WNDnPRxD

Re: TI MSP430 Launch Pad

Пт янв 29, 2016 09:44:01

Подскажите пожалуйста, в чем может быть причина. Пользуюсь Energia.
есть датчик DS18B20 и PC соединенный через USB, необходимо принимать команды с PC, что-то делать и отправлять данные на PC.
Организовал протокол передачи n байт (на лаунчпаде и PC) без использования датчика все работает, т.е. принимает команду, моргает светодиодом, отправляет команду обратно на PC .
Но если я хоть раз пользуюсь любой функцией из One Ware, больше Лаунчпад ничего не принимает. Даже если loop цикл пустой и я общаюсь с датчиком только по факту приема команды от PC, а после в пустом цикле loop опрашиваю Serial.available() - жду следующий команду от РС, Лаунчпад ее больше не принимает(((

Re: TI MSP430 Launch Pad

Ср мар 16, 2016 08:51:53

afz писал(а):Тут вот мой товарищ в порядке восстановления своего владения "аглицкой мовой", как он сам выразился, перевел документ MSP430 IAR Assembler.
Выкладываю заново. https://yadi.sk/d/Hfs9dZs8nPT4a

Re: TI MSP430 Launch Pad

Пн май 09, 2016 18:37:37

При построении проекта, в окне build выводит отчёт типа:

7 274 bytes of CODE memory
240 bytes of DATA memory (+ 23 absolute )
763 bytes of CONST memory (+ 136 absolute )


Хочу узнать, что значит (+ 23 absolute ).

Справочник IAR не знает, что это такое. Интернет тоже (если есть где-либо - поправьте!).

Решил копать через отчёты IAR. Настройкой в Linker -> Generate linker listing создал segment map в формате html.
Далее, в этом файле так же сухо приводится absolute в сокращении "abs" в таблице Module summary.

Зацепился за "Module summary" -> Перерыл официальные доки IAR, много всяких в инете скачал, НО: везде приводится одна и та же фраза "Module summary which lists the contribution (in bytes) from each module". Ни слова про absolute.

ТАК ЧТО ЖЕ ТАКОЕ ABSOLUTE???

Re: TI MSP430 Launch Pad

Вт июн 28, 2016 16:03:29

Купил сие чудо http://www.ebay.com/itm/TI-MSP430-USB-B ... 0865942309 (пусть будет проклят иероглифический...) и не могу запустить.Есть даже инструкция на китайском http://download.eeworld.com.cn/detail/solarelec/180677 может я ошибаюсь,что инструкция подходит к этому программатору.Внутри стоит CH340G и микроконтроллер NXP.Драйвер CH340G поставил и прогу запустил,а дальше ничего непонятно как с ним работать.Кто сталкивался с этим программатором,помогите запустить
Ответить