msp430. LED.
msp430. LED.
Здравствуйте. Помогите пожалуйста.
Имеется МК msp430, IAR, JTAG.
Хочу собрать устройство на LEDах (аля гирлянда, чтоб проще понималось). Конкретно в МК не шарю. Знающие люди сказали, что легче собрать устройство на МК, чем на транзисторах и пр.
Киньте, пожалуйста коды таких состояний LEDов:
--> горит/не горит,
--> мигает (с определённой частотой),
--> медленно загорает и медленно гаснет.
++ если можно, то киньте коды "бегущего огонька" и пр.
Думаю, это никого особо не затруднит.
P.S. В форуме и интернете ответы искал. Конкретного не нашёл, поэтому прошу помощи. Заранее спасибо.
Имеется МК msp430, IAR, JTAG.
Хочу собрать устройство на LEDах (аля гирлянда, чтоб проще понималось). Конкретно в МК не шарю. Знающие люди сказали, что легче собрать устройство на МК, чем на транзисторах и пр.
Киньте, пожалуйста коды таких состояний LEDов:
--> горит/не горит,
--> мигает (с определённой частотой),
--> медленно загорает и медленно гаснет.
++ если можно, то киньте коды "бегущего огонька" и пр.
Думаю, это никого особо не затруднит.
P.S. В форуме и интернете ответы искал. Конкретного не нашёл, поэтому прошу помощи. Заранее спасибо.
А "потолще" МК для управления гирляндой не нашлось что-ли ?
Можно конечно и 4-х ядерным процом гирляндой управлять, но смысл...
Проще использовать что-то попроще..
..
А про твой контроллер можешь почитать, например тут: http://msl.gaw.ru/html.cgi/txt/doc/micr ... /index.htm
Да я уже пробовал читать эти книги. За несколько вечеров всё не осилить. Мне-ж только код нужно.
А причина использования простая: подрабатываю на предприятии, где создают устройства на ТиАйных МК. Там и посоветовали. Просто с кодом помогать там никто не хочет, всем некогда. Вот и прошу помощи у форумчан. Код забью, а к плате припаять, всё развести, собрать сумею.
А причина использования простая: подрабатываю на предприятии, где создают устройства на ТиАйных МК. Там и посоветовали. Просто с кодом помогать там никто не хочет, всем некогда. Вот и прошу помощи у форумчан. Код забью, а к плате припаять, всё развести, собрать сумею.
Тут по 430-м, насколько помню, только Left Radio упоминал,
http://radiokot.ru/forum/profile.php?mo ... ile&u=6736
попробуй ему в личку написать, может натолкнёт на информацию..
Но по любому, программу те придётся самому писать... /мя так думаю/...
http://radiokot.ru/forum/profile.php?mo ... ile&u=6736
попробуй ему в личку написать, может натолкнёт на информацию..
Но по любому, программу те придётся самому писать... /мя так думаю/...

- RadioLab
- Открыл глаза
- Сообщения: 46
- Зарегистрирован: Пт дек 25, 2009 12:29:51
- Откуда: Н.Новгород
- Контактная информация:
там нет ничего страшного.
всё точно также как и на avr, тот же самый C (если пишешь на С)
только необходимо указавать кроме направления порта (ввод-вывод) и состояния (0-1) ещё и наличае альтернативных функций.
в серии MSP430F1xxx нет встроенных резисторов подтяжки
а стоимость как в розницу, так и оптом выше чем у AVR
достоинство - потребление меньше.
всё точно также как и на avr, тот же самый C (если пишешь на С)
только необходимо указавать кроме направления порта (ввод-вывод) и состояния (0-1) ещё и наличае альтернативных функций.
в серии MSP430F1xxx нет встроенных резисторов подтяжки
а стоимость как в розницу, так и оптом выше чем у AVR
достоинство - потребление меньше.
- Left Radio
- Прорезались зубы
- Сообщения: 235
- Зарегистрирован: Пт авг 22, 2008 03:58:30
- Откуда: Union Soviet Socialist Republics
- Контактная информация:
Re: msp430. LED.
MSP430 хорошие МК, я на них много чего делал.... И не только мало потребляющего, хотя они именно так позиционируются...
Рекомендую посмотреть примеры от производителя.
Теперь по теме, возьмем к примеру msp430f12х2 серию, Soic корпус, 28 ног. Отдадим на светодиоды порт P1, работа от внутреннего осц. по умолчанию около 800кГц.
Простой пример бегущего огонька, паузы подберете сами:
Хочу заметить, что просто так подсоединять светодиоды к портам нельзя, так как у MSP430 слабые порты.
P.S. По использованию таймеров/прерываний и т. д. смотрите по сылке которую я привел, там все есть...
Рекомендую посмотреть примеры от производителя.
Теперь по теме, возьмем к примеру msp430f12х2 серию, Soic корпус, 28 ног. Отдадим на светодиоды порт P1, работа от внутреннего осц. по умолчанию около 800кГц.
Простой пример бегущего огонька, паузы подберете сами:
Код: Выделить всё
#include <msp430x12x2>
unsigned int cnt = 0;
unsigned int direct = 0;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= 0xFF; // Set P1 to output direction
for (cnt = 1; cnt <= 128; cnt = cnt * 2)
{
volatile unsigned int i;
if(direct == 0)
{
P1OUT = cnt;
i = 50000; // Delay
do (i--);
while (i != 0);
}
else
{
P1OUT = 128 - cnt;
i = 50000; // Delay
do (i--);
while (i != 0);
}
}
direct ^= 0x01; // Переключение направления зажигания светодиодов используя exclusive-OR
}
Хочу заметить, что просто так подсоединять светодиоды к портам нельзя, так как у MSP430 слабые порты.
P.S. По использованию таймеров/прерываний и т. д. смотрите по сылке которую я привел, там все есть...
Крылья... Крылья.... Хвост! 
Нестрашно не знать, страшно не стремиться знать.

Нестрашно не знать, страшно не стремиться знать.
- Left Radio
- Прорезались зубы
- Сообщения: 235
- Зарегистрирован: Пт авг 22, 2008 03:58:30
- Откуда: Union Soviet Socialist Republics
- Контактная информация:
Буду благодарен, если кто-нибудь кмнет код, что бы сделать медленное угасание и включение LEDа. Такого в примерах нет.
Есть
, PWM называется, смотрите например в slac013g.zip файл - fet120_ta_16.c
Вот плавное угасание/зажигание реализованное с помощью PWM и практически полностью составленное из fet120_ta_16.c :
Один светодиод подкл. к P1.2, другой - P1.3. Но опять таки я советовал бы поставить два транз., а уже к ним светодиоды, для того чтобы не нагружать порты МК.
Есть
Вот плавное угасание/зажигание реализованное с помощью PWM и практически полностью составленное из fet120_ta_16.c :
Код: Выделить всё
unsigned int i;
unsigned int cnt = 0;
unsigned int direct = 0;
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P1DIR |= 0x0C; // P1.2 and P1.3 output
P1SEL |= 0x0C; // P1.2 and P1.3 TA1/2 otions
CCR0 = 512-1; // PWM Period
CCTL1 = OUTMOD_7; // CCR1 reset/set
CCR1 = 0; // CCR1 PWM duty cycle
CCTL2 = OUTMOD_7; // CCR2 reset/set
CCR2 = 511; // CCR2 PWM duty cycle
TACTL = TASSEL_2 + MC_1; // SMCLK, up mode
while(1)
{
for (cnt = 0; cnt < 512; cnt++)
{
if(direct == 0)
{
CCR1 = cnt;
CCR2 = 512 - cnt;
i = 500; // Delay
do (i--);
while (i != 0);
}
else
{
CCR1 = 512 - cnt;
CCR2 = cnt;
i = 500; // Delay
do (i--);
while (i != 0);
}
}
direct ^= 0x01; // Переключение угасание/зажигание светодиодов используя exclusive-OR
}
}Один светодиод подкл. к P1.2, другой - P1.3. Но опять таки я советовал бы поставить два транз., а уже к ним светодиоды, для того чтобы не нагружать порты МК.
Крылья... Крылья.... Хвост! 
Нестрашно не знать, страшно не стремиться знать.

Нестрашно не знать, страшно не стремиться знать.
- RadioLab
- Открыл глаза
- Сообщения: 46
- Зарегистрирован: Пт дек 25, 2009 12:29:51
- Откуда: Н.Новгород
- Контактная информация:
да, меня опередили
правильно, в сети примеров много
вот что ты просил
правильно, в сети примеров много
вот что ты просил
Код: Выделить всё
#include <msp430x11x1>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P1DIR |= 0x01; // Set P1.0 to output direction
for (;;)
{
volatile unsigned int i;
P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR
i = 50000; // Delay
do (i--);
while (i != 0);
}
}- Left Radio
- Прорезались зубы
- Сообщения: 235
- Зарегистрирован: Пт авг 22, 2008 03:58:30
- Откуда: Union Soviet Socialist Republics
- Контактная информация:
- Эмиль
- Первый раз сказал Мяу!
- Сообщения: 20
- Зарегистрирован: Пн дек 15, 2008 15:04:59
- Контактная информация:
Автору: у меня есть хорошая PDF-ка по MSP430. Описывается все подробно, как работать с портами, таймерами, прерываниями, индикаторами, вобщем для старта это клад! НО! На английском. Если еще актуально, выложу.
Тот, кто красиво говорит и обладает привлекательной наружностью, редко бывает истинно человечен.
- Left Radio
- Прорезались зубы
- Сообщения: 235
- Зарегистрирован: Пт авг 22, 2008 03:58:30
- Откуда: Union Soviet Socialist Republics
- Контактная информация:
Вот по MSP430 на русском и английском - Примеры применения семейства MSP430 , и там же на русском - Полное описание архитектуры и системы команд микроконтроллеров семейства MSP430
Крылья... Крылья.... Хвост! 
Нестрашно не знать, страшно не стремиться знать.

Нестрашно не знать, страшно не стремиться знать.
- Эмиль
- Первый раз сказал Мяу!
- Сообщения: 20
- Зарегистрирован: Пн дек 15, 2008 15:04:59
- Контактная информация:
Вот, выкладываю. Пользуйтесь на здоровье.
Скачать файл
Скачать файл
Тот, кто красиво говорит и обладает привлекательной наружностью, редко бывает истинно человечен.
Ещё немного осталось. Сейчас проектирую корпус девайса, а самое главное - плату. Закупаются светодиоды, резисторы, стабилизатор, ИП, буфер. С работы люди мне объяснили что да как (и правда, у портов ток 1-2 мА). Весь девайс не только на LEDах. Есть "моторчик", подвижные части. Рассчитываю куда и сколько подавать ток. + некоторые диоды у меня постоянно должны гореть, их через МК пускать не буду. Числу к 20 постараюсь доделать.
Не подскажете в таком вопросе: УСТРОЙСТВО СОБРАЛ, СПАЯЛ, ВСЁ РАБОТАЕТ. сЕЙЧАС ДЕЛАЮ КОРПУС.
Но: для 169-ого программулька плавного угасания работала. Для msp1232 она уже не хочет работать. А на плате у меня именно 1232. Сказали, что пролема в таймере, но я не особо понимаю что надо поменять. Заранее спасибо.
++ насчёт бегущего огня: он "бегает" по всему первому порту просто ???
P.S. Обычное мигание работает.
Но: для 169-ого программулька плавного угасания работала. Для msp1232 она уже не хочет работать. А на плате у меня именно 1232. Сказали, что пролема в таймере, но я не особо понимаю что надо поменять. Заранее спасибо.
++ насчёт бегущего огня: он "бегает" по всему первому порту просто ???
P.S. Обычное мигание работает.
- Left Radio
- Прорезались зубы
- Сообщения: 235
- Зарегистрирован: Пт авг 22, 2008 03:58:30
- Откуда: Union Soviet Socialist Republics
- Контактная информация:
fiatlux37 писал(а):для 169-ого программулька плавного угасания работала. Для msp1232 она уже не хочет работать.
Возможно Вы просто забыли поменять хеадер для MSP430F1232?
У меня на этом МК ШИМ прекрасно работал и работает, вот из рабочего устройства пример инициализации:
Код: Выделить всё
#include <msp430x12x2>
.....
.....
P1DIR |= 0x0C; // P1.2 and P1.3 output
P1SEL |= 0x0C; // P1.2 and P1.3 TA1/2 otions
.....
.....
CCR0 = 1024-1; // PWM Period
CCTL1 = OUTMOD_7; // CCR1 reset/set
CCR1 = 500; // CCR1 PWM duty cycle
CCTL2 = OUTMOD_7; // CCR2 reset/set
CCR2 = 1; // CCR2 PWM duty cycle
TACTL = TASSEL_2 + MC_1 + ID_3;
++ насчёт бегущего огня: он "бегает" по всему первому порту просто ???
Да.
P.S. Почемуто убирает точку и расширение, хеадер должен быть - msp430x12x2.h
Последний раз редактировалось Left Radio Ср мар 10, 2010 19:43:38, всего редактировалось 2 раза.
Крылья... Крылья.... Хвост! 
Нестрашно не знать, страшно не стремиться знать.

Нестрашно не знать, страшно не стремиться знать.