Pull to refresh

Comments 14

Хотелось бы более подробно узнать про работу с SPI.
Обязательно расскажу подробнее на следующей неделе.
ИМХО, MSP430 ждет участь AVR, т.к. за ту же цену есть более мощный и менее прожорливый на той же частоте ARM. А вот работать с периферией на MSP430 проще и удобнее, спору нет.
Участь AVR? Очень хорошая участь, знаете ли…
В более-менее серийных изделиях их теперь ставить нецелесообразно.
Популярность платформы зависит не только от её цены. Важны в совокупности, кроме цены — мощность, количество примеров кода, доступность чипов, наличие хорошей документации и апноутов.
Полностью согласен.
К этому стоит добавить наличие доступных отладочных наборов.
Ну уж доступнее MSP430 LaunchPad за символические $4.30 с доставкой на дом ничего не найти.
UFO just landed and posted this here
Эх, у меня есть Chronos ez430. думал буду его постоянно мучать-перепрошивать, да очень привык к часам и бос остаться без них :)

Пишите еще, очень полезно и толково.
Вчера взял изучать MSP430 LaunchPad. Надеюсь статья поможет, раньше никогда не имел дел с микроконтроллерами :)

Вроде бы статья для новичков, но понять новичку - вряд ли!

1. Чем программировать и как?!

2. "Надо заметить, что файл msp430f2274.h содержит много полезной информации. Там находятся все константы контроллера с комментариями на английском. " - то есть должно быть все понятно?! Что-то понятного я там не нашел.
а) Сейчас посмотрим про тайный смысл этих констант - "WDTCTL = WDTPW + WDTHOLD;", и так, что написано в msp430f2274.h:

"/*************************************************************
WATCHDOG TIMER
************************************************************/
#define __MSP430_HAS_WDT__ /* Definition to show that Module is available */
#define WDTCTL_ 0x0120 /* Watchdog Timer Control */
sfrw(WDTCTL, WDTCTL_);
/* The bit names have been prefixed with "WDT" */
#define WDTIS0 (0x0001)
#define WDTIS1 (0x0002)
#define WDTSSEL (0x0004)
#define WDTCNTCL (0x0008)
#define WDTTMSEL (0x0010)
#define WDTNMI (0x0020)
#define WDTNMIES (0x0040)
#define WDTHOLD (0x0080)
#define WDTPW (0x5A00)"

И что из этого новичок должен понять?!

б) в статье описали PxDIR, PxREN, PxIN, PxOUT, PxSEL, BITх, "|=", "&=~" - да, понятно, но почему так: "P1OUT &= ~BIT0;  P1OUT &= ~BIT1;", а не так: "P1OUT &= ~(BIT0+BIT1);" - что-то запрещает?!

в) "PxSEL выбирает функцию пина. В datasheet на изображении микроконтроллера функции обычно указывают через знак «/». Например на рисунке P2.7 работает как обычный пин в случае, если P2SEL имеет 0 в соответствующем разряде. По умолчанию, в данном случае, там установлена единица, что означает, что эта лапка предназначена для подключения внешнего часового кварцевого резонатора."

Как выбирается функция пина, если указано несколько функций через знак «/»?

"P3SEL = BIT1 + BIT2 + BIT3;" - по умолчанию там "0" - просто пин ввода-вывода? Возводя в "1" мы переводим в SPI0, он же UCB0?

Ну и так далее про SPI - мало что понятно новичку, только догадываться.

Примеры статей понятные новичку:
https://hubstub.ru/stm32/65-stm32-gpio-ili-porty-vvoda-vyvoda.html
http://dimoon.ru/obuchalka/stm32f1/programmirovanie-stm32-chast-5-portyi-vvoda-vyivoda-gpio.html

Sign up to leave a comment.

Articles