|
Umriotii
|
|
А делал ли кто-нибудь частотомер на MSP430?11.08.2013, 16:44. Показов 9121. Ответов 11
Метки нет (Все метки)
|
|
| 11.08.2013, 16:44 | |
|
Ответы с готовыми решениями:
11
Кто-нибудь делал чат? Кто нибудь делал ботов на WOT Кто нибудь делал интеграцию с ФЭР 2? |
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
|
|
| 11.08.2013, 19:57 | |
|
а чего его делать то, алгоритм же довольно простой, да и не один к тому же...., по разному можно сделать, или вам просто лень и исходник нужен? :)
0
|
|
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
|
|
| 11.08.2013, 20:00 | |
|
все просто, гугл делал!
http://rodyodiveloper.btogspot... sp430.html http://meomdr.org/orshives/12537 http://sxim.net/izmer/izmer125.php
0
|
|
|
Umriotii
|
||
| 11.08.2013, 20:40 | ||
|
||
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
|
|
| 11.08.2013, 20:52 | |
|
а, понятно, ну тогда вам не исходник, а алгоритм нужен, скажу вам честно, неблагодарное это дело в чужих исходниках разбираться - потемки :) Посмотрите вот здесь, товарищ выложил подборку информации по алгоритмам тахометров, должно дать вам понимание... http://www.flowcode.info/index.php/foru ... -tahometri
Ну и частоту он конечно же не снимает, а оценивает :)))
0
|
|
|
Umriotii
|
||
| 11.08.2013, 20:58 | ||
|
||
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
|
|
| 11.08.2013, 21:23 | |
|
боже, ну какая разница..., если вы только начинаете работать с контроллерами, имхо TI не самый лучший выбор, но оговорюсь еще раз, это мое имхо. Вам по сути нужен только алгоритм, а дальше открываете даташит на конкретный МК, ставите среду разработки с отладчиком (IAR например) и поехали, начинаете строить. Наверняка если покопаетесь в интернете, то и исходник под TI найдете, дело не в этом, просто вы в нем ничего не поймете, сейчас редкий программист, в своем коде, каждые пять строчек комментарий ставит.
0
|
|
|
hosh
|
|
| 11.08.2013, 21:38 | |
|
|
|
|
0 / 0 / 0
Регистрация: 13.07.2012
Сообщений: 566
|
|
| 11.08.2013, 21:41 | |
|
А тут пофигу какая платформа.
Самых очевидных способов измерения частоты есть два: 1. Подаем измеряемый сигнал на вход захвата таймера, а сам таймер запускаем на счет импульсов тактовой (возможно с делителем). В прерывании от события захвата сравниваем соседние показания регистра захвата и, зная эталонную частоту, считаем время периода измеряемого сигнала (время между фронтами), из чего получить частоту как-бы проблем не составляет. 2. Тактируем один таймер от измеряемого сигнала (подаем сигнал на счетный вход таймера). Второй таймер тактируем от эталонной тактовой частоты. При помощи второго таймера формируем фиксированное "временное окно". Дальше смотрим сколько импульсов за отведенный промежуток времени намерял первый таймер. И по формуле Fx = Fo * M/N (где Fx - оцениваемая частота, Fo - опорная частота, M - количество импульсов с первого таймера, N - количество импульсов со второго таймера) Получаем искомое. О плюсах и недостатках каждого можно почитать в гугле. Выбор будет зависеть от исходных параметров сигнала, требуемой точности, наличия ресурсов МК. Но сам тип МК тут никаким боком не определяющий. Если понимания нет совсем, то надо усвоить сам алгоритм, а уже потом думать о программе. Все основные периферийные блоки МК очень схожи, а уж таймеры и подавно. Поверьте, отличий между АВР и МСП очень немного в этом отношении. Да и самому написать будет значительно полезнее в образовательных целях, нежели разбираться в чужом коде.
0
|
|
|
0 / 0 / 0
Регистрация: 30.07.2013
Сообщений: 446
|
||
| 11.08.2013, 21:57 | ||
0
|
||
|
Umriotii
|
|
| 12.08.2013, 01:09 | |
|
#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 | |||||||||||
Теперь по вопросу, это не проц. как вы выразились, а микроконтроллер, разница, как минимум в наличии памяти программ. Далее, МК тактируется неким генератором с частотой "X", большинство команд современных МК могут выполняться за один такт МК, вам нужно настроить один из выводов МК на выход и циклически менять его состояние, таким образом вы, как минимум, получите понимание, работает ваш МК или нет.
0
|
|||||||||||
| 12.08.2013, 11:32 | |
|
Помогаю со студенческими работами здесь
12
Кто-нибудь делал бухгалтерию на Excel? Кто-нибудь делал операции с матрицей? Кто-нибудь делал базу на Fox'e? PoE, самопальная реализация - кто-нибудь делал? Кто нибудь делал перенос сотрудников из .dbf в 1с? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|