|
MSP430 - вопросы от чайника, генератор опорного напряжения |
|
|
|
 |
Ответов
|
Jun 12 2008, 19:18
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Да я не забыл про обещание. Просто пока нет времени, чтобы еще раз осмыслить задачу и написать работающую программу, а не какую-нибудь глюкавую "отписку"-заготовку. Пока лишь временами заглядываю что тут в форуме происходит. Вам же я посоветую обратить внимание на два момента. 1. если вы хотите задействовать аппаратные возможности таймера по формированию импульсов, то сразу же используйте и аппаратную возможность синхронизации запуска АЦП. Обратите внимание, что вместо того, чтобы программно "дергать" битом ASC12SC можно аппаратно управлять запуском преобразования от сигналов TA1 или TB0, TB1. Т.е. как я и предлагал ранее - формировать времянку с помощью выходного сигнала TA1 и им же управлять запуском АЦП. Конечно же придется разобраться с различными режимами работы выходного модуля таймера, но там все просто. Возможно с точки зрения синхронности работы с АЦП было бы лучше запустить таймер в режиме Count Up с формированием 400мкс интервалов. И уже из этих 400мкс интервалов формировать минутные, переключая лишь режим работы Output Unit TimerA - RESET, SET, SET/RESET. 2. Насчет шумов АЦП и осреднения. Время сэмплирования и преобразования нужно выбирать, исходя в т.ч. из соображений сопротивления источника сигнала. Вы не слишком ли малое время сэмплирования выбрали? Поскольку у вас количество каналов измерения значительно меньше, чем количество каналов АЦП, то усреднение можно сделать полуаппаратно. Запускаете АЦП в режиме последовательности каналов которые сконфигурированы на один и тот же вход АЦП. А затем простым вычислением среднего арифметического значения нескольких значений ADC12MEMx усредняете. Чтобы не нужно было формировать импульс запуска на каждый канал используйте возможности аппаратуры, установив бит MSC в ADC12CTL0 и используя собственный генератор Sample-and-Hold АЦП.
|
|
|
|
|
Jun 14 2008, 21:39
|
Местный
  
Группа: Участник
Сообщений: 229
Регистрация: 24-02-08
Пользователь №: 35 345

|
Цитата(rezident @ Jun 12 2008, 23:18)  1. если вы хотите задействовать аппаратные возможности таймера по формированию импульсов, то сразу же используйте и аппаратную возможность синхронизации запуска АЦП. Обратите внимание, что вместо того, чтобы программно "дергать" битом ASC12SC можно аппаратно управлять запуском преобразования от сигналов TA1 или TB0, TB1. Т.е. как я и предлагал ранее - формировать времянку с помощью выходного сигнала TA1 и им же управлять запуском АЦП. Спасибо, постараюсь разобраться Цитата(rezident @ Jun 12 2008, 23:18)  2. Насчет шумов АЦП и осреднения. Время сэмплирования и преобразования нужно выбирать, исходя в т.ч. из соображений сопротивления источника сигнала. Вы не слишком ли малое время сэмплирования выбрали? Поскольку у вас количество каналов измерения значительно меньше, чем количество каналов АЦП, то усреднение можно сделать полуаппаратно. Запускаете АЦП в режиме последовательности каналов которые сконфигурированы на один и тот же вход АЦП. А затем простым вычислением среднего арифметического значения нескольких значений ADC12MEMx усредняете. А я вот примерно так и собиралась сделать  даже и не знаю, как по-другому  спасибо еще раз. Господа, товарищи, и все же Помогите разобраться с переопределением типов!!! int x,y; переопределяю (float) (х), возвращаю return (int)(x/y), так как пока хочу работать с целыми, и принимающая программка сделана под них. Но отношение получается либо 0, либо 1. В чем тут дело? Объясните, пожалуйста! заранее спасибо.
|
|
|
|
|
Jun 15 2008, 20:37
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Daria @ Jun 15 2008, 03:39)  Помогите разобраться с переопределением типов!!! int x,y; переопределяю (float) (х), возвращаю return (int)(x/y), так как пока хочу работать с целыми, и принимающая программка сделана под них. Но отношение получается либо 0, либо 1. В чем тут дело? Объясните, пожалуйста! Это не переопределение, а приведение типа. Чтобы операция деления производилась с числами именно типа float нужно приведение типов сделать непосредственно в выражении Код return ((int)((float)x/(float)y)) причем int и второй float можно не указывать, т.к. в операции деления приведение типа к более "высокому" будет сделано автоматически. И результат операции будет приведен к типу int автоматически в соответствии с типом результата, возвращаемым функцией. Но для наглядности можно написать так, как я указал. Второй способ - использовать временные (локальные) переменные требуемого типа. Большого расхода памяти это не вызовет, т.к. компилятор оптимизирует сам обращение к таким переменным. Код float fTmp; if (y!=0) //проверка исключения "деление на нуль" { fTmp=(float)x; //приведение типа для наглядности fTmp/=(float)y; //опять же здесь приведение типа только для наглядности } else fTmp=0; //вынужденная обработка возникшего исключения return((int)fTmp);
|
|
|
|
Сообщений в этой теме
Daria MSP430 - вопросы от чайника May 18 2008, 20:05 rezident Цитата(Daria @ May 19 2008, 02:05) Подска... May 18 2008, 20:19 Daria Большое спасибо, вопрос был именно про LFXT А в ... May 19 2008, 17:28  rezident Цитата(Daria @ May 19 2008, 23:28) А в ру... May 19 2008, 18:13   Daria Цитата(rezident @ May 19 2008, 21:13) Ну ... May 22 2008, 20:12    Daria А вот еще вопрос от чайника. Подскажите, если кто ... May 25 2008, 19:27 rezident Вам нужен готовый или схема для самостоятельного и... May 25 2008, 19:58 Daria Цитата(rezident @ May 25 2008, 22:58) Вам... May 26 2008, 08:42  Daria Здравствуйте. Такой вопрос - запускаю таймер( в TA... Jun 3 2008, 19:24 rezident Что-то полная путаница. При чем тут модуль TimerA,... Jun 3 2008, 22:07 A R T Цитата(Daria @ Jun 3 2008, 23:24) Здравст... Jun 4 2008, 04:38 Daria Спасибо, следуя вашему совету, начинаю разбираться... Jun 5 2008, 19:51 rezident А у вас высокочастотный кварц 8Мгц куда подключен?... Jun 6 2008, 01:08 Daria Цитата(rezident @ Jun 6 2008, 04:08) А у ... Jun 6 2008, 20:02 rezident При использовании высокочастотного кварца нужна оп... Jun 6 2008, 20:45 Daria Большое спасибо! Сделаю в точности так, как вы... Jun 6 2008, 21:01  Daria Здравствуйте, снова я Опять проблемы
привожу вес... Jun 8 2008, 17:22   Daria на строчку send_int не обращайте внимания, она ост... Jun 8 2008, 18:50    Daria Нет, тут опять ошибки Vs вычисляется после P1OUT... Jun 9 2008, 19:52   rezident Цитата(Daria @ Jun 8 2008, 23:22) Здравст... Jun 9 2008, 21:21 АДИКМ Посылать по 6 бит никто не запрещает конечно, но в... Jun 9 2008, 20:24 Daria Цитата(АДИКМ @ Jun 10 2008, 00:24) Посыла... Jun 9 2008, 20:47  АДИКМ Цитата(Daria @ Jun 9 2008, 23:47) Проблем... Jun 9 2008, 21:10   Daria Цитата(АДИКМ @ Jun 10 2008, 01:10) Расска... Jun 9 2008, 22:00 АДИКМ Как зовут магнитный датчик? Jun 10 2008, 07:32 Kurt Мне нравится с каким упорством девушка двигается к... Jun 10 2008, 11:36 Daria Цитата(Kurt @ Jun 10 2008, 15:36) Мне нра... Jun 10 2008, 20:19  Kurt Цитата(Daria @ Jun 11 2008, 02:19)
С уп... Jun 11 2008, 03:18   Daria Господа! Как ни странно, оно работает! ... Jun 12 2008, 15:35  Dog Pawlowa Цитата(Daria @ Jun 15 2008, 00:39) Помоги... Jun 15 2008, 09:37 rezident Я рад вашим успехам
Кстати, если вам требуется ок... Jun 16 2008, 20:30 Daria Цитата(rezident @ Jun 17 2008, 00:30) Я р... Jun 17 2008, 19:48  rezident Цитата(Daria @ Jun 18 2008, 01:48) Зря ир... Jun 18 2008, 16:28   Daria Здравствуйте, и снова вопросы много, много вопрос... Jun 22 2008, 15:37    rezident Цитата(Daria @ Jun 22 2008, 21:37) ну, ил... Jun 22 2008, 18:38     Daria Здравствуйте снова.
Rezident, спасибо за подробный... Jun 24 2008, 19:17 VAI Цитатаприбавлять число 0.5f.
если число положитель... Jun 17 2008, 03:32 rezident Daria, давайте все исходники (весь проект). Вариан... Jun 24 2008, 20:13 Daria Цитата(rezident @ Jun 25 2008, 00:13) Я б... Jun 25 2008, 18:18  NoName Цитата(Daria @ Jun 25 2008, 21:18) Функци... Jun 26 2008, 14:11   Daria Цитата(NoName @ Jun 26 2008, 18:11) Имеет... Jun 26 2008, 18:44    rezident Цитата(Daria @ Jun 27 2008, 00:44) Спасиб... Jun 26 2008, 20:30     Daria Цитата(rezident @ Jun 27 2008, 00:30) 5 а... Jun 28 2008, 20:14    NoName Цитата(Daria @ Jun 26 2008, 21:44) Спасиб... Jun 29 2008, 11:23     Daria Цитата(NoName @ Jun 29 2008, 15:23) Daria... Jun 29 2008, 21:10    Dog Pawlowa Цитата(Daria @ Jun 26 2008, 21:44) Спасиб... Jun 30 2008, 06:50     Daria Цитата(Dog Pawlowa @ Jun 30 2008, 10:50) ... Jun 30 2008, 16:58      Т.Достоевский Цитата(Daria @ Jun 30 2008, 20:58) ...Как... Jul 1 2008, 00:33       Daria Ау, rezident! Вы там вроде обещали... забыли и... Jul 3 2008, 18:16        Daria Снова я, здравствуйте
Такой вопрос - контроллер... Jul 15 2008, 19:37         NoName Цитата(Daria @ Jul 15 2008, 22:37) Снова ... Jul 16 2008, 09:33          Daria Цитата(NoName @ Jul 16 2008, 13:33) вопро... Jul 16 2008, 18:31
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|