Страница 2 из 3
Добавлено: Ср мар 10, 2010 19:42:08
fiatlux37
Спаибо за ответ. Хедер у меня точно правильный. Я ж говорю, что просто мигание работает. Буду пытаться. Всего в устройстве 60 светодиодов разных цветов, + 6 трёхцветных RGB диодов с переменными сопротивлениями на каждой ноге, + моторчик с машинки, который крутит изображения по экрану (уменьшенные фотки). Должно получиться очень зрелищно. Корпус делаю из матового оргстекла, чтоб рассеивать свет. Вё уже спаяно и работает. Только не хочет вот это плавное угасание делать... (((
Добавлено: Чт мар 11, 2010 07:15:15
fiatlux37
Самый главный вопрос:
Мне надо сделать эту прогу (плавного угасания) для порта Р3.2 !!!
Т.к. это не первый порт, там надо что-то сделать по другому, как мне объяснили. Работать не через таймер, а через порты. Как-то так. Подскажите как, пожалуйста.
Добавлено: Чт мар 11, 2010 08:03:29
Эмиль
если без таймера, то надо делать так называемую "программную имитацию ШИМ". Нужно поиграться с задержками между вкл/выкл светодиода.
Добавлено: Чт мар 11, 2010 08:16:16
fiatlux37
Я пытаюсь это сделать, но кроме мигания ничего не получается... (((
Добавлено: Чт мар 11, 2010 08:40:31
Эмиль
К сожалению без исходника, ничего конкретного подсказать не могу.
Добавлено: Чт мар 11, 2010 09:57:13
fiatlux37
Да просто нужно, чтобы на ноге у MSP1232 под номером Р3.2 стоял диод и он постепенно загорался/гаснул.
Добавлено: Чт мар 11, 2010 10:03:00
Left Radio
Так называемую "программную имитацию ШИМ" делать на СИ, плюс если еще МК чем то занят.... Ну не знаю, по моему легче подключить светодиод на первый порт и не мучатся...
Добавлено: Чт мар 11, 2010 10:14:19
fiatlux37
Left Radio, просто у меня уже всё спаяно, на этой ноге у меня сидит 24 диода, стоят два буфера (один на 100мА на выходе, другой 500 мА, который открывается первым). Вся суть сего девайса в этих 24-ёх диодах и этом эффекте. Неужели всё так сложно ???
++ Ещё такая проблема: когда пуляю код бегущего огня, он раз прошвыривается по диодам и останавливается.
Добавлено: Чт мар 11, 2010 12:03:44
Left Radio
Можете сделать без ШИМ-а, просто поставе резистор, конденсатор и транзистор. При переходе ноги Р3.2 из 0 в 1 конденсатор, через резистор, начинает заряжаться, транзистор в свою очередь, подсоединенный базой(затвором) к емкости начнет открываться и плавно зажигать светодиод, при переходе из 1 в 0 - обратный процесс. Подбором резистора и емкости получите нужное время зажигания/угасания.
fiatlux37 писал(а):Ещё такая проблема: когда пуляю код бегущего огня, он раз прошвыривается по диодам и останавливается.
Естественно

, это же для примера, чтобы не останавливался надо написать так:
Код: Выделить всё
#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
while(1)
{
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
}
}
Добавлено: Чт мар 11, 2010 13:03:29
fiatlux37
Спасибо огромное за ответы-советы. И сам думал насчёт кондёра. Мне реально проще понапаять транзюков да кондёров, чем писать программулину. ))
Добавлено: Чт мар 11, 2010 15:52:28
RadioLab
давай конкретный вопрос, разбираться в чужом исходнике, извини, не стану.
и вообще попробуй в протеусе помоделировать
Добавлено: Чт мар 11, 2010 16:02:35
RadioLab
............ и ещё если проект написан для MSP430F1xxx, а шьёшь в MSP2xxx работать не будет. надо смотреть исходники.
Добавлено: Чт мар 11, 2010 16:03:55
fiatlux37
RadioLab, в принцыпе, мне уже чертовски помогли, основные проблемы я уже решил. Сейчас не могу написать программульку, чтобы диод мигал с о скважностью не равной 2. То есть не 1,0,1,0,1,0... , а что-бы было 0,0,0,0,1,0,0,0,0...
Ну это в первом приближении. Надо чтоб диод секунду не горел, вспыхнул и повторять этот процесс (типа стробоскопа, что-ли).
++ шью msp430f1232
Добавлено: Чт мар 11, 2010 16:54:53
Left Radio
Это можно очень просто сделать с помощью собаки, вот так к примеру:
Код: Выделить всё
unsigned char cnt = 0;
int main( void )
{
WDTCTL = WDT_MDLY_32; // ~32/5 ms interval
IE1 |= WDTIE; // Enable WDT interrupt
........
P1DIR |= 0xFF; // Set P1 to output direction
P1OUT = 0x00;
.......
}
// Watchdog Timer interrupt service routine
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
{
if( cnt++ == 156)
{
P1OUT = 0x01;
cnt = 0;
}
else P1OUT = 0x00;
}
Светодиод будет вспыхивать с периодом примерно равным 1сек на время 32/5ms.
Добавлено: Пт мар 12, 2010 08:20:25
RadioLab
В том месте где нужная ножка ставиться в 1 и в 0 ставь управляемые задержки
например
Код: Выделить всё
int count_1 = 10;
int count_0 = 2000;
ножку отпущена // светодиод не горит
..............
while(1)
{
ножку отпустил
while(count_0) //задержка (count_0) задаёт время не горения светод
{ count_0 --; }
ножку поднял
while(count_1) //задержка (count_1) задаёт время горения светод
{ count_1 --; }
}
.....................
меняя count_1 и count_0 будешь менять длительность горения светодиода
Добавлено: Пт мар 12, 2010 09:56:15
Left Radio
Можно конечно и задержкой, но таймером эффективней

, остаются ресурсы на управление другими светодиодами, да и память немного экономится, особенно если
cnt объявить локальной...
Re: msp430. LED.
Добавлено: Пн мар 15, 2010 09:45:03
RadioLab
безусловно эффективнее.

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

Re: msp430. LED.
Добавлено: Пт мар 19, 2010 15:16:33
fiatlux37
Ну всё. Всем спасибо. Особенно Left Radio. Только-что закончил программировать МК. Наконец-то всё заработало !!! Моей эйфории нет предела !!! Всё именно так, как я хотел !!! Сегодня забрал с работы всю плату (а я там уже всех достал ей). Теперь буду всё в корпус вставлять. Теперь впереди весёлые выходные =)))
Re: msp430. LED.
Добавлено: Сб апр 03, 2010 09:48:30
fiatlux37
1 апреля подарил сие чудо ручной работы. Вот видео. Извините за качество.Основной материал оргстекло. Всё покрыто мехом. Из капельницы сплетены сверху всякие штуки. Ну и ещё куча всего. Ны вышла идея с трёхцветными диодами. Там где воткнуты зелёные - было место под ручки для переменников, чтоб регулировать цвета. Правда, сверху посередине стоит трёхцветный - соединил ноги красного и синего цвета, получил фиолетово-бардовый. От моторчика, который крутит фотки, тоже пришлось отказаться. Ещё раз всем спасибо.
http://ifolder.ru/17107977
Re: msp430. LED.
Добавлено: Сб май 29, 2010 19:08:49
fiatlux37
http://www.youtube.com/watch?v=cJ-ZbIYlWIY
Вот, как-то так. Хоть бы отзывы услышать какие-нибудь.