Umriotii
1

А делал ли кто-нибудь частотомер на MSP430?

11.08.2013, 16:44. Показов 8820. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Если кто-нибудь делал, поделитесь исходным кодом.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.08.2013, 16:44
Ответы с готовыми решениями:

Кто-нибудь делал чат?
У меня возникло две проблемы. 1. Не мгоу отправить курсор после отправки сообщения обратно в поле...

Кто нибудь делал ботов на WOT
Кто нибудь делал ботов на world of tanks

Кто нибудь делал интеграцию с ФЭР 2?
Добрый день! Скажите, кто нибудь занимался интеграцией с федеральной электронной регистратурой 2...

Кто-нибудь делал бухгалтерию на Excel?
Здесь решил полазить по интернету, посмотреть: есть ли бухгалтерские программы на Эксель. Нашел...

11
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
11.08.2013, 19:57 2
а чего его делать то, алгоритм же довольно простой, да и не один к тому же...., по разному можно сделать, или вам просто лень и исходник нужен? :)
0
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
11.08.2013, 20:00 3
все просто, гугл делал!

http://rodyodiveloper.btogspot... sp430.html
http://meomdr.org/orshives/12537
http://sxim.net/izmer/izmer125.php
0
Umriotii
11.08.2013, 20:40 4
Цитата Сообщение от voyd118
а чего его делать то, алгоритм же довольно простой, да и не один к тому же...., по разному можно сделать, или вам просто лень и исходник нужен? :)
Я просто ещё очень слабо ориентируюсь в микроконтроллерах. Больше как-то по аналоговой части. Мне нужен пример кода, который выполняет следующие действия - снимает с какой либо ноги (к примеру с Р1.0) частоту и пишет её в переменную. И все.
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
11.08.2013, 20:52 5
а, понятно, ну тогда вам не исходник, а алгоритм нужен, скажу вам честно, неблагодарное это дело в чужих исходниках разбираться - потемки :) Посмотрите вот здесь, товарищ выложил подборку информации по алгоритмам тахометров, должно дать вам понимание... http://www.flowcode.info/index.php/foru ... -tahometri

Ну и частоту он конечно же не снимает, а оценивает :)))
0
Umriotii
11.08.2013, 20:58 6
Цитата Сообщение от voyd118
должно дать вам понимание... http://www.flowcode.info/index.php/foru ... -tahometri
Там все под AVR...
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
11.08.2013, 21:23 7
боже, ну какая разница..., если вы только начинаете работать с контроллерами, имхо TI не самый лучший выбор, но оговорюсь еще раз, это мое имхо. Вам по сути нужен только алгоритм, а дальше открываете даташит на конкретный МК, ставите среду разработки с отладчиком (IAR например) и поехали, начинаете строить. Наверняка если покопаетесь в интернете, то и исходник под TI найдете, дело не в этом, просто вы в нем ничего не поймете, сейчас редкий программист, в своем коде, каждые пять строчек комментарий ставит.
0
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
11.08.2013, 21:41 9
А тут пофигу какая платформа.

Самых очевидных способов измерения частоты есть два:
1. Подаем измеряемый сигнал на вход захвата таймера, а сам таймер запускаем на счет импульсов тактовой (возможно с делителем). В прерывании от события захвата сравниваем соседние показания регистра захвата и, зная эталонную частоту, считаем время периода измеряемого сигнала (время между фронтами), из чего получить частоту как-бы проблем не составляет.
2. Тактируем один таймер от измеряемого сигнала (подаем сигнал на счетный вход таймера). Второй таймер тактируем от эталонной тактовой частоты.
При помощи второго таймера формируем фиксированное "временное окно". Дальше смотрим сколько импульсов за отведенный промежуток времени намерял первый таймер. И по формуле Fx = Fo * M/N (где Fx - оцениваемая частота, Fo - опорная частота, M - количество импульсов с первого таймера, N - количество импульсов со второго таймера) Получаем искомое.

О плюсах и недостатках каждого можно почитать в гугле. Выбор будет зависеть от исходных параметров сигнала, требуемой точности, наличия ресурсов МК.
Но сам тип МК тут никаким боком не определяющий. Если понимания нет совсем, то надо усвоить сам алгоритм, а уже потом думать о программе.
Все основные периферийные блоки МК очень схожи, а уж таймеры и подавно. Поверьте, отличий между АВР и МСП очень немного в этом отношении.
Да и самому написать будет значительно полезнее в образовательных целях, нежели разбираться в чужом коде.
0
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
11.08.2013, 21:57 10
Цитата Сообщение от DOOMSDOY
Поверьте, отличий между АВР и МСП очень немного в этом отношении.
Позвольте дополнить коллега, что выбор платформы в некоторых устройствах весьма критичен, особенно если принимать во внимание архитеутуру МК, если мне не изменяет гугл, то у АВР она Гарвардская. Я писал, что TI не самый лучший выбор для новичка, поскольку он может там заблудиться, ибо начало описания работы блока АЦП с теоремы Котельникова-Шенонна, может слегка насторожить новенького и вызвать у него чувство панического страха :))))
0
Umriotii
12.08.2013, 01:09 11
#include <msp430.h>
#include "lcd32.h"

int i; //счётчик
int W[7]; //массив для хранения частоты
long counter, prevccr;

#define FALSE 0
#define TRUE 1

int main(void) {
WDTCTL = WDTPW | WDTHOLD; // останавливаем ждущий таймер

BCSCTL1 = CALBC1_16MHZ; //устанавливаем внутренний генератор на 16 Мгц
DCOCTL = CALDCO_16MHZ;

P1DIR = BIT0; //устанавливаем вход для измерения частоты

TA0CTL = TASSEL_0 + MC_2 + TAIE; //устанавливаем таймер А
TA0CCTL0 = CM1 + CAP + CCIE; //устанавливаем блок сравнения по внешнему входу
InitiotyzeLcm(); //иницмализируем дисплей
ClearLcmScreen();//очищаем дисплей

while (1)
{

unsykned long freq;

freq = counter;
counter = 0; //очищаем основнной счётчик
// TA0CCTL0 &= ~CCIFG; //пока без прерываний
unsykned long ccrvalue;
ccrvalue = TA0CCR0; //получаем данные
freq += ccrvalue - prevccr;
prevccr = ccrvalue;

W[0]=freq%10;
W[1]=((int)((freq/10)%10));
W[2]=((int)((freq/100)%10));
W[3]=((int)((freq/1000)%10));
W[4]=((int)((freq/10000)%10));
W[5]=((int)((freq/100000)%10));
W[6]=((int)((freq/1000000)%10));
W[7]=((int)((freq/10000000)%10));

//вывод на дисплей, не забыть потом завернуть в цикл
LcmSetCursorPosition(1,7);
SendByte((0x30+W[0]), TRUE);
LcmSetCursorPosition(1,6);
SendByte((0x30+W[1]), TRUE);
LcmSetCursorPosition(1,5);
SendByte((0x30+W[2]), TRUE);
LcmSetCursorPosition(1,4);
SendByte((0x30+W[3]), TRUE);
LcmSetCursorPosition(1,3);
SendByte((0x30+W[4]), TRUE);
LcmSetCursorPosition(1,2);
SendByte((0x30+W[5]), TRUE);
LcmSetCursorPosition(1,1);
SendByte((0x30+W[6]), TRUE);
LcmSetCursorPosition(1,0);
SendByte((0x30+W[7]), TRUE);

}
}

Накидал код. Можно ли как нибудь вывести внутренний генератор проца на какую-нибудь ногу, что бы проверить, считает он или нет?
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
12.08.2013, 11:32 12
Код
Накидал код. Можно ли как нибудь вывести внутренний генератор проца на какую-нибудь ногу, что бы проверить, считает он или нет?
Послушайте, вам нужно либо пойти учиться, где вам будут рассказывать основы микропроцессорной техники, либо пойти учиться и прикупить для начала что-то"дуино" и экспериментировать на нем. Ваш порыв изучать эту тему просто прекрасен, вы молодец, но просто начали не с того немного.

Теперь по вопросу, это не проц. как вы выразились, а микроконтроллер, разница, как минимум в наличии памяти программ. Далее, МК тактируется неким генератором с частотой "X", большинство команд современных МК могут выполняться за один такт МК, вам нужно настроить один из выводов МК на выход и циклически менять его состояние, таким образом вы, как минимум, получите понимание, работает ваш МК или нет.

Код
P1DIR |= 0x01;
while(1)
{
P1OUT ^= 0x01;
}
Опишите зачем все это вам, а мы подскажем как лучше и дешевле научиться, и даже школу, кружок и университет с кафедрой посоветуем :)
0
12.08.2013, 11:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.08.2013, 11:32
Помогаю со студенческими работами здесь

Кто-нибудь делал операции с матрицей?
Помогите пожалуйста с зачетной работой на С! Но только одна просьба, библиотеки использовать...

Кто-нибудь делал базу на Fox'e?
FoxPro - хитрая штука. Если из Delphi удалять записи из таблицы, то фокс просто помечает их на...

PoE, самопальная реализация - кто-нибудь делал?
Народ, подскажите, делал кто-нибудь проекты с питанием от Ethernet? Есть некоторые задумки и, пока...

Кто нибудь делал перенос сотрудников из .dbf в 1с?
написал код но понять не могу как с полом определиться

Кто нибудь делал функции (например, поиск) с хешированием?
подскажите кто нибудь делал функции с хешированием? поиск допустим? если да то киньте ссылку плиз...

Кто-нибудь делал свой форум под Лотус?
Дело вот в чем. Мне, да и моим коллегам сисадминам не нравится дизайн стандартного форума, идущего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru