Wykorzystuje bibliotekę inpout32.dll jednak mam z nią problemy. Nie da się ustawić "dobrej" szybkości silników. Pomiędzy krokami muszę dawać uśpienie głównego wątku programu na 1ms. Bardzo zmniejsza to szybkość pracy.
Fragment mojego programu wygląda następująco:
timeDelay=1;
mikroStep=30;
public void Xgo()
{
for (int j = 0; j < mikroStep; j++)
{
suma = 0;
suma += (int)Math.Pow(2, 3);
PortAccess.Output(adress, suma);
Thread.Sleep(timeDelay);
Reset();
}
}
public void Reset()
{
PortAccess.Output(adress, 0);
Thread.Sleep(timeDelay);
}
Jeśli nie dam "Thread.Sleep(timeDelay);" to silnik właściwie się nie obraca.
Jak można temu zaradzić?
szybkość działania programu i biblioteka inpout32.dll
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 2
- Posty: 1701
- Rejestracja: 17 mar 2006, 08:57
- Lokalizacja: Gdańsk
Nie da się - taka dyskusja już była.
Bibilioteka ma pod sobą duży kod drivera Windowsowego, jej wywołania (w pętli, bez opóżnienia) będą dawały dość przypadkowy rezultat
A samo ...Sleep(1ms) jest tylko poboznym życzeniem - można się spodziewać 10-20ms
Tylko bardzo specjalistyczne drivery ( Mach, który używa wpina się w zasadzie pod Windowsy) lub DOS da radę ( DOS nawet lepiej).
Może zatem dual(quad) core oraz pętla w programie ( bez funkcji systemowych ) ?
Bibilioteka ma pod sobą duży kod drivera Windowsowego, jej wywołania (w pętli, bez opóżnienia) będą dawały dość przypadkowy rezultat
A samo ...Sleep(1ms) jest tylko poboznym życzeniem - można się spodziewać 10-20ms
Tylko bardzo specjalistyczne drivery ( Mach, który używa wpina się w zasadzie pod Windowsy) lub DOS da radę ( DOS nawet lepiej).
Może zatem dual(quad) core oraz pętla w programie ( bez funkcji systemowych ) ?
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 2
- Posty: 1454
- Rejestracja: 16 paź 2005, 01:26
- Lokalizacja: Świecie
nie stosując specjalistycznych (drogich) bibliotek -> DOS.
Można zacząć się bawić stosując choćby kompilator FirstBASIC (shareware, 25$)
http://www.powerbasic.com/files/pub/pbdos/
i można bezpośrednio obsługiwać LPT.
Można zacząć się bawić stosując choćby kompilator FirstBASIC (shareware, 25$)
http://www.powerbasic.com/files/pub/pbdos/
i można bezpośrednio obsługiwać LPT.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 1
- Posty: 3962
- Rejestracja: 18 wrz 2004, 12:51
- Lokalizacja: k/w-wy
- Kontakt:
jeśli już zmieniamy system operacyjny (Win32 -> DOS)...
to może lepiej rozważyć programowanie w linuksie z jądrem czasu rzeczywistego?
to może lepiej rozważyć programowanie w linuksie z jądrem czasu rzeczywistego?
SpotkanieCNC: STOM-TOOL Marzec 2014
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm
http://www.cnc.info.pl/topics79/spotkan ... t55028.htm
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 2
- Posty: 1454
- Rejestracja: 16 paź 2005, 01:26
- Lokalizacja: Świecie
Instalujemy FreeDos-a + jakąś nakładkę a-la NortonCommander,
następnie jakiś kompiler (może być QuickBASIC (free), Pascal, C... jak ktoś woli,)
i w ciągu pół godziny możemy zacząć się bawić w sterowanie silnikami.
Komputer może być z odzysku - przy Pentium 200MMX silniki kręcą jak rakieta.
Jak się znudzi naciskamy wyłączamy klawiszem POWER.
następnie jakiś kompiler (może być QuickBASIC (free), Pascal, C... jak ktoś woli,)
i w ciągu pół godziny możemy zacząć się bawić w sterowanie silnikami.
Komputer może być z odzysku - przy Pentium 200MMX silniki kręcą jak rakieta.
Jak się znudzi naciskamy wyłączamy klawiszem POWER.