Форум программистов, компьютерный форум, киберфорум
Электродвигатели
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 18.12.2017
Сообщений: 4
1

Программа на C++ генерирует тактовую частоту на lpt порт

13.04.2021, 08:38. Показов 1063. Ответов 6

Программа на C++ генерирует тактовую частоту на lpt порт.
while(true){Out32(888,1);Out32(888,0);}
Этот цикл выполняется 150000 раз в секунду, мне нужно 450000.
С помощью этой частоты крутится серводвигатель (80st-m04025).
Но он крутится только в треть своей номинальной скорости.
Как увеличить количество тактов?
В диспетчере задач показывается что только 25цп используется программой.
Как использовать больше? (Приоритет менял на высокий +1цп)
Компилятор vc++2019, операционная система windows xp.
На этом же компьютере программа Mach3 крутит серводвигатель в полную скорость (как она это делает?).
Пытался в настройках драйвера умножить ШИМ на 3, не получается.
Подскажите пожалуйста если кто знает как (драйвер 110st-m06030).
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2021, 08:38
Ответы с готовыми решениями:

Программа которая определяет тактовую частоту процессора
Доброго времени суток. Прошу помочь с написанием задачки. Весь мой опыт в С не выходит за рамки...

Не работает программа по выводу в порт LPT
#include <unistd.h> #include <asm/io.h> #define time 1000 int main() { ioperm(0x278,1,1); ...

Влияние АЦП на тактовую частоту МК
Добрый день! Сделал термоконтроллер на amega88pa -- контроллер, таймер, часы для духовки. В...

Как поменять тактовую частоту?
Как поменять тактовую частоту не убив бутлоадер? Есть программатор AVRISP mkII

6
Тутошний я
2059 / 1127 / 208
Регистрация: 03.11.2009
Сообщений: 3,942
Записей в блоге: 2
13.04.2021, 21:43 2
Цитата Сообщение от gekir Посмотреть сообщение
Out32(888,1);Out32(888,0);
нужно смотреть в какой код разворачивается эти функции.
возможно понадобятся вставки на ассемблере.
0
0 / 0 / 0
Регистрация: 18.12.2017
Сообщений: 4
14.04.2021, 06:45  [ТС] 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
void _stdcall Out32(short PortAddress, short data)
{
    {
        switch(sysver)
        {
        case 1:
#ifdef _M_IX86
            _outp( PortAddress,data);   //Will ONLY compile on i386 architecture
#endif
            break;
        case 2:
            unsigned int error;
            DWORD BytesReturned;        
            BYTE Buffer[3]={NULL};
            unsigned short* pBuffer;
            pBuffer = (unsigned short *)&Buffer[0];
            *pBuffer = LOWORD(PortAddress);
            Buffer[2] = LOBYTE(data);
 
            error = DeviceIoControl(
                hdriver,
                IOCTL_WRITE_PORT_UCHAR,
                &Buffer,
                3,
                NULL,
                0,
                &BytesReturned,
                NULL);
            break;
        }
    }
}
Добавлено через 1 минуту
Может возможно аппаратно умножить частоту? Подскажите пожалуйста если кто знает дешовый компактный чип которому на вход можно подавать с lpt порта частоту (5 вольт) и он на каждую смену логического сигнала будет делать на выходе 2 смены?
0
Тутошний я
2059 / 1127 / 208
Регистрация: 03.11.2009
Сообщений: 3,942
Записей в блоге: 2
14.04.2021, 10:23 4
аппаратно как то так.
но я бы лучше предложил микроконтроллер.
хотя бы ардуино для начала.
1
Миниатюры
Программа на C++ генерирует тактовую частоту на lpt порт  
Тутошний я
2059 / 1127 / 208
Регистрация: 03.11.2009
Сообщений: 3,942
Записей в блоге: 2
14.04.2021, 10:40 5
80st-m04025
сразу не посмотрел.
он же с драйвером?
драйвер сам не может нужную частоту выдавать?
0
0 / 0 / 0
Регистрация: 18.12.2017
Сообщений: 4
14.04.2021, 11:14  [ТС] 6
посоветуйте пожалуйста микроконтроллер который работает на логическом уровне 5 вольт не мог не как найти

Добавлено через 11 минут
Пытался в настройках драйвера умножить ШИМ на 3, не получается.
Подскажите пожалуйста если кто знает как (драйвер 110st-m06030).

Вот тут читал
https://docviewer.yandex.ru/vi... J9&lang=en

Там что только не делал не крутиться быстрее.
Из последнего выставил 300 в Pn206 Pn207 Pn208
0
Тутошний я
2059 / 1127 / 208
Регистрация: 03.11.2009
Сообщений: 3,942
Записей в блоге: 2
14.04.2021, 21:32 7
Лучший ответ Сообщение было отмечено gekir как решение

Решение

Цитата Сообщение от gekir Посмотреть сообщение
микроконтроллер который работает на логическом уровне 5 вольт
AVR, PIC.
Может STM через согласователь уровней.

Pn098
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2021, 21:32

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Получить тактовую частоту процессора
По этому поводу я уже создавал тему в разделе для начинающих...

Получить текущую тактовую частоту процессора
В Интернете я нашёл данный код, задался целью понять, как он работает. Для этого изучил WinAPI...

Процессор перестал повышать тактовую частоту
Так вот господа процессор перестал разгоняться при нагрузке(да и вообще он даже при включение пк...

Получить заданную тактовую частоту на пин мк
Надо получить тактовую частоту на какой-нибудь выход мк, чтобы подать ее на микросхему. Желательно...

Turbo Pascal!? Как возвратить тактовую частоту процессора?
надеюсь это вообще осуществимо, может через Assembler как-то?

Как выставить тактовую частоту процессора в atmel studio 7.0?
Доброго времени суток. Кто знает как выставить тактовую частоту процессора в atmel studio 7.0. Жду...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.