реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> MSP 430 + Сегментный индикатор, Проблемы подключения
d7d1cd
сообщение Feb 6 2014, 10:38
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Цитата(Niketa @ Feb 6 2014, 13:30) *
Я думаю что вы заметили что в старшем разряде проскакивает единица. Пока мне непонятно почему.

Сделай точку остановки в отладчике именно в том месте, где происходит вывод 1 в старшем разряде. Или напиши такое условие. Потом крути-верти резистор. Когда будет выводиться 1 в старшем разряде, отладчик остановится. Посмотри значения переменных. Может так найдешь причину.

В функции show_number лучше использовать оператор switch, чем кучу if. Можно и if, но тогда все if кроме первого должны быть заменены на else if.

Зачем нужна "маленькая пауза"? Она у тебя не маленькая, она очееееееень маленькая.

Сообщение отредактировал d7d1cd - Feb 6 2014, 10:44
Go to the top of the page
 
+Quote Post
Niketa
сообщение Feb 6 2014, 10:53
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 1-02-14
Пользователь №: 80 290



Цитата(d7d1cd @ Feb 6 2014, 14:38) *
Сделай точку остановки в отладчике именно в том месте, где происходит вывод 1 в старшем разряде. Или напиши такое условие. Потом крути-верти резистор. Когда будет выводиться 1 в старшем разряде, отладчик остановится. Посмотри значения переменных. Может так найдешь причину.

Ошибку в коде нашел. Предыдущий пост исправил. Я там забыл скобки две поставить.

Цитата(d7d1cd @ Feb 6 2014, 14:38) *
Зачем нужна "маленькая пауза"? Она у тебя не маленькая, она очееееееень маленькая.

Паузу уберу нафиг,она ненужна.

Цитата(d7d1cd @ Feb 6 2014, 14:38) *
В функции show_number лучше использовать оператор switch, чем кучу if. Можно и if, но тогда все if кроме первого должны быть заменены на else if.

Спасибо.Исправлю.
Go to the top of the page
 
+Quote Post
Mihey_K
сообщение Feb 6 2014, 15:40
Сообщение #18


Частый гость
**

Группа: Участник
Сообщений: 156
Регистрация: 27-09-06
Из: Irkutsk
Пользователь №: 20 747



Для конструкций вида
Код
if (number == 0) {
        P1OUT &=~(BIT1+BIT2+BIT3+BIT5);
        P2OUT &=~(BIT0+BIT2);
    }
    if (number == 1) {
        P1OUT &=~BIT3+BIT5;
    }
    ......
лучше использовать switch(number ) case 0: case 1: ....

Пардон, повторился, d7d1cd уже указал.

Сообщение отредактировал Mihey_K - Feb 6 2014, 15:41


--------------------
Блог о разработке на CC430, SIM900, GPS, ARM и не только...
Go to the top of the page
 
+Quote Post
piterqq
сообщение Feb 20 2014, 19:46
Сообщение #19





Группа: Новичок
Сообщений: 5
Регистрация: 3-07-13
Пользователь №: 77 385



Для большого напряжения нужно с начала проверить компоненты на которых оно гасится.
Go to the top of the page
 
+Quote Post
igorle
сообщение Jul 7 2014, 18:37
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753



Случайно наткнулся на эту тему. Если еще актуально - год назад мне потребовалось сотворить пульт управления домашней печкой с двухсимвольным семисегментным индикатором. Для проотипа просто взял MSP430G2553 в корпусе DIP и воткнул его в бредборд. Сверху насадил индикатор. Так что каждая ножка индикатора идет напрямую к своей ножке MSP. Таким образом в каждую единицу времени можно зажечь один сегмент. Ярковато, даже учитывая, что каждый элемент горит только 1/16 времени. Но для макетирования сгодилось. Потом, когда паял конечное устройство - в цепи анодов добавил резисторы (две штуки - по одному на каждый анод)

Схему не рисовал, там и так понятно. А на код могу ссылку дать. Если интересно - пишите в личку. (я форум крайне не регулярно просматриваю, так что не увижу, если здесь кто напишет.)
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th August 2025 - 11:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016