Umriotii
|
|
1 | |
А делал ли кто-нибудь частотомер на MSP430?11.08.2013, 16:44. Показов 8820. Ответов 11
Метки нет (Все метки)
|
11.08.2013, 16:44 | |
Ответы с готовыми решениями:
11
Кто-нибудь делал чат? Кто нибудь делал ботов на WOT Кто нибудь делал интеграцию с ФЭР 2? Кто-нибудь делал бухгалтерию на Excel? |
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
|
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
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
|
|
11.08.2013, 21:23 | 7 |
боже, ну какая разница..., если вы только начинаете работать с контроллерами, имхо TI не самый лучший выбор, но оговорюсь еще раз, это мое имхо. Вам по сути нужен только алгоритм, а дальше открываете даташит на конкретный МК, ставите среду разработки с отладчиком (IAR например) и поехали, начинаете строить. Наверняка если покопаетесь в интернете, то и исходник под TI найдете, дело не в этом, просто вы в нем ничего не поймете, сейчас редкий программист, в своем коде, каждые пять строчек комментарий ставит.
0
|
hosh
|
|
11.08.2013, 21:38 | 8 |
|
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
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 | |
12.08.2013, 11:32 | |
Помогаю со студенческими работами здесь
12
Кто-нибудь делал операции с матрицей? Кто-нибудь делал базу на Fox'e? PoE, самопальная реализация - кто-нибудь делал? Кто нибудь делал перенос сотрудников из .dbf в 1с? Кто нибудь делал функции (например, поиск) с хешированием? Кто-нибудь делал свой форум под Лотус? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |