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

 
 
17 страниц V  « < 14 15 16 17 >  
Reply to this topicStart new topic
> MSP430 - снова вопросы от чайника, Вопросы от чайника про MSP и магнитный компас
rezident
сообщение Apr 23 2009, 19:49
Сообщение #226


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Daria @ Apr 24 2009, 00:53) *
Если просто сохранить файл как file.h, подключить к проекту и в тексте основной программы # include < file.h>, то не выходит, компилятор ругается - "не удается подключить" laughing.gif Стыдно, но раньше этого не делала. все управляющие функции выносила просто в отдельные фалы .c, подключенные к проекту
Угловые скобки указывают компилятору, что файл с именем, заключенным в скобки, нужно искать в системных (для компилятора) папках. Для включения пользовательских файлов проекта нужно использовать кавычки и полный или относительный (относительно папки проекта) путь. Я лично предпочитаю относительные пути. Тогда при переносе проекта в другую папку или на другой диск проблем не возникает.
Код
#include "..\..\_INC\tpLOCdef.h"
#include "..\_INC\msp430def.h"
#include "..\_INC\timer3KBD.h"
#include "..\_INC\KBDdef.h"
#include "..\..\_INC\xKBD_Key.h"

Цитата(Daria @ Apr 24 2009, 00:53) *
И еще - немного не в тему, кто-нибудь работал с кнопками, т.е. делал клавиатуру? Где бы можно было почитать что-нибудь? biggrin.gif
Мне нужно сделать управление кнопками(по нажатию передются команды порцу и выводтся инфа на индикатор). с индикатором вроде нет проблем, а вот с кнопками...
Реализация клавиатуры не проблема. Для нее нужен буфер и три функции.
1. Определение состояний кнопок, устранение дребезга контактов, формирование скан-кодов и складывание их в буфер клавиатуры.
2. Проверка состояния буфера клавиатуры без извлечения скан-кода текущего символа.
3. Извлечение текущего скан-кода из буфера.
В N-ный раз описывать каждую функцию уже что-то лень. Сейчас поищу, где я уже это описывал smile.gif

Update. Ну вот тут, например.
Go to the top of the page
 
+Quote Post
SSerge
сообщение Apr 23 2009, 19:50
Сообщение #227


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Достаточно создать сам файл и написать #include "file.h", подключать к проекту как файлы .c или .cpp не нужно.

По части кнопок - все методы сводятся к периодическому опросу и фильтрации чтобы устранить дребезг контактов кнопки.
В разделе для начинающих и про AVR есть несколько обсуждений этой темы и примеры кода.
Я при малом числе кнопок обычно пользую метод изложенный =AK= http://electronix.ru/forum/index.php?showt...st&p=231093


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
Daria
сообщение Apr 24 2009, 18:36
Сообщение #228


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Всем спасибоsmile.gif С файлами ясно, получилось, про кнопки почитаю укзанные темыsmile.gif
Go to the top of the page
 
+Quote Post
Daria
сообщение Apr 27 2009, 17:43
Сообщение #229


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



А кто знает какой-нибудь JTAG - отладчик, внутрисхемный, чтобы был универсальным и подходил как к MSP, так и к ARM, AVR... biggrin.gif сейчас придется переносить часть проекта на другой контроллер, а потом вдруг на еще какой-нибудь - не хочется каждый раз покупать новый отладчик...
Вообще говоря, разве JTAG - он и в Африке не JTAG? в чем принципиальное отличие внутрисхемных эмуляторов для MSP и для AT91SAM, если они прошивают по JTAG и работают с IAR?
Все-таки я еще темная biggrin.gif

Сообщение отредактировал Daria - Apr 27 2009, 17:45
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 27 2009, 17:59
Сообщение #230


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Daria @ Apr 27 2009, 23:43) *
А кто знает какой-нибудь JTAG - отладчик, внутрисхемный, чтобы был универсальным и подходил как к MSP, так и к ARM, AVR... biggrin.gif сейчас придется переносить часть проекта на другой контроллер, а потом вдруг на еще какой-нибудь - не хочется каждый раз покупать новый отладчик...
Я только один знаю, который сразу несколько LPT-ных эмуляторов эмулирует (такая вот тавтология biggrin.gif) - SM510PCI. Могу даже комплект плат для самостоятельного изготовления этого устройства предложить. wink.gif
Цитата(Daria @ Apr 27 2009, 23:43) *
Вообще говоря, разве JTAG - он и в Африке не JTAG? в чем принципиальное отличие внутрисхемных эмуляторов для MSP и для AT91SAM, если они прошивают по JTAG и работают с IAR?
JTAG стандартизован в виде интерфейса (IEEE-1149.1), но он не полностью определяет способ доступа к кристаллу. Т.е. если грубо итожить, то в стандарте IEEE-1149.1 описаны сигналы и архитектура, но не стандартизован протокол доступа. Кроме того, разные фирмы разный софт используют. Соответственно несмотря на то, что IDE в IAR может быть одна и та же, но в дебаггере она будет использовать разные библиотеки для разных МК.
Go to the top of the page
 
+Quote Post
Daria
сообщение Apr 28 2009, 18:03
Сообщение #231


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



А вот J-Link( MT-Link) - разве не почти универсальный?
Go to the top of the page
 
+Quote Post
rezident
сообщение Apr 28 2009, 18:15
Сообщение #232


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Daria @ Apr 29 2009, 00:03) *
А вот J-Link( MT-Link) - разве не почти универсальный?
Встречно-наводящий вопрос: если учесть, что большинство JTAG эмуляторов, подключаемых к LPT-порту представляют из себя всего лишь буферы и/или преобразователи/согласователи уровней, то можно ли сделать заключение, что LPT-порт это почти универсальный JTAG-эмулятор? wink.gif
Про J-Link почитайте его описание. Там что-либо про MSP430 и AVR сказано?
Go to the top of the page
 
+Quote Post
Daria
сообщение May 18 2009, 17:56
Сообщение #233


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Здравствуйте снова.
Такой вопрос-
Объявляю структуру
Код
typedef struct RezhBuffer
{
    int* Data;            
    int NData;                        
    int pRead;                        
}
RezhBuffer;

#define sizePBuf 5
struct RezhBuffer stPBuf;
int  RezhBuf[sizePBuf]={0x01,0x02,0x03,0x04,0x05};

В main инициализирую
Код
stPBuf.NData =sizePBuf;
stPBuf.Data=RezhBuf;
BufferResetRezh(&stPBuf);


При этом компилятор инициализирует буфер портом P5, и при
Код
*Byte = pBuffer->Data[pBuffer->pRead]

записывает в P5OUT=0x01, на следующем шаге 0x02 и т.д. 07.gif
В чем смысл этой структуры - нужно хранить массив кодов, который циклически читается, и после считывания соответствующего кода выполняется соответствующая команда. понимаю, что криво, но как тогда лучше сделать? и причем тут P5OUT? 07.gif
Go to the top of the page
 
+Quote Post
rezident
сообщение May 18 2009, 20:44
Сообщение #234


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



В объявлении
Код
struct RezhBuffer stPBuf;

слово struct - лишнее. Нужно просто
Код
RezhBuffer stPBuf;

Насчет остального как-то туманно. Обрывки текста как обычно для тренировки телепатии?
Go to the top of the page
 
+Quote Post
Daria
сообщение May 19 2009, 17:17
Сообщение #235


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Цитата(rezident @ May 18 2009, 23:44) *
Насчет остального как-то туманно. Обрывки текста как обычно для тренировки телепатии?

Мне казалось, что понятно. Ну, это все, что тносится к этому буферу laughing.gif . ладно, вопрос снимается, выкинула эту структуру на фиг, сделала обычный глобальный массив и глобальный указатель чтения. Все работаетsmile.gif
Но теперь еще вопрос. Rеzident, вы, когда говорили о функциях обработки кнопок, упоминали три функции. Вопрос - а зачем разносить проверку скан-кода без извлечения из буфера и чтение скан-кода с извлечением из буфера в разные функции?
Нельзя все сделать в одной - смотрим, обновился ли буфер, и, если да, то считываем скан-код?
Я вроде сделала так, вроде работет - одна функция выполняется по флажкам прерываний, она проверят=ет состояние. обрабатывает дребезг и кладет код в буфер. А другая - в цикле for();; смотрит, обновился ли буфер, и читает.
НО - возможно тут опять дала маху пресловутая женская логика и в дальнейшем будут какие-то проблемы?
поясните. почему именно три функции, пожалуйстаsmile.gif
Go to the top of the page
 
+Quote Post
rezident
сообщение May 19 2009, 20:45
Сообщение #236


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Daria @ May 19 2009, 23:17) *
поясните. почему именно три функции, пожалуйстаsmile.gif
В данном случае слово "функция" нужно понимать как функциональность, а не как функцию языка программирования. У меня обращения к буферу клавиатуры: запись, чтение с и без извлечения из буфера тоже обычно объединяются в одну функцию. А вот сканирование и устранение дребезга чаще всего это отдельная функция.
Go to the top of the page
 
+Quote Post
Daria
сообщение May 26 2009, 18:38
Сообщение #237


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Здравствуйте. Подскажите, в IAR действуют функции типа sprintf, и если да, то какой файл подключить?
Go to the top of the page
 
+Quote Post
rezident
сообщение May 26 2009, 19:52
Сообщение #238


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Daria @ May 27 2009, 00:38) *
Здравствуйте. Подскажите, в IAR действуют функции типа sprintf, и если да, то какой файл подключить?
Дык стандартно, stdio.h . Только нужно библиотеки CLIB или DLIB в опциях проекта выбрать. И учтите, что printf и sprintf жутко любят стековую память. Для модели Small или Tiny почти 250 байт стека требуют. А если захочется float выводить, и придется выбрать модель Large или Full, то заготавливайте все 1кБ-1,5кБ.
Go to the top of the page
 
+Quote Post
jorikdima
сообщение May 27 2009, 06:12
Сообщение #239


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Цитата(rezident @ May 26 2009, 23:52) *
Дык стандартно, stdio.h . Только нужно библиотеки CLIB или DLIB в опциях проекта выбрать. И учтите, что printf и sprintf жутко любят стековую память. Для модели Small или Tiny почти 250 байт стека требуют. А если захочется float выводить, и придется выбрать модель Large или Full, то заготавливайте все 1кБ-1,5кБ.

Да и Flash они тоже любят неслабо.
Go to the top of the page
 
+Quote Post
Daria
сообщение May 27 2009, 21:53
Сообщение #240


Местный
***

Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345



Цитата(jorikdima @ May 27 2009, 09:12) *
Да и Flash они тоже любят неслабо.

Проще тогда наверное сделать подобную функцию самой unsure.gif Мне вообще-то надо просто число в набор символов преобразовывать(и обратно) - можно просто последовательным делением на 10 с остатком и сдвигом разбить на числа и перевести в ASCII код... Как вы считаете?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 14:58
Рейтинг@Mail.ru


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