Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-12-2006, 12:03   #1
davidTrt83
Senior Member
 
L'Avatar di davidTrt83
 
Iscritto dal: Feb 2006
Città: Torino
Messaggi: 1620
[C] Come fare un timer ad alta precisione?

Ciao a tutti, ho bisogno di un timer con risoluzione dell'ordine dei ms per un ambiente borland C++ v3.1, come lo posso ottenere?
grazie.
__________________
Il numero di respiri che fate nella vostra vita è irrilevante, quello che conta sono i momenti che il respiro ve lo tolgono...
Nikon D750 - 24-120mm F4 - 70-300mm VR - Sigma 30mm f1.4 Art - Nikon 50mm f1.8 - Nikon 85mm f1.4
davidTrt83 è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2006, 15:00   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ovviamente dipende dal sistema operativo...quindi riferendosi alle PAI di Windows devi puoi usare timeGetTime

http://msdn.microsoft.com/library/de...imegettime.asp
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 10-12-2006, 15:56   #3
davidTrt83
Senior Member
 
L'Avatar di davidTrt83
 
Iscritto dal: Feb 2006
Città: Torino
Messaggi: 1620
Quote:
Originariamente inviato da cionci
Ovviamente dipende dal sistema operativo...quindi riferendosi alle PAI di Windows devi puoi usare timeGetTime

http://msdn.microsoft.com/library/de...imegettime.asp
Il compilatore è per dos... sto modificando un vecchio gioco.
__________________
Il numero di respiri che fate nella vostra vita è irrilevante, quello che conta sono i momenti che il respiro ve lo tolgono...
Nikon D750 - 24-120mm F4 - 70-300mm VR - Sigma 30mm f1.4 Art - Nikon 50mm f1.8 - Nikon 85mm f1.4
davidTrt83 è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2006, 00:23   #4
Dr.Speed
Senior Member
 
L'Avatar di Dr.Speed
 
Iscritto dal: Jun 2004
Città: Monselice (PD)
Messaggi: 4641
mi inscrivo perche interessa anche a me
__________________
2500KCorsair H70Asrock EXTREME4 GEN38GB Corsair DDR3 1600MHz CL8Gainward GTX570 GLHSSD Samsung 830 64GBCorsair CX600Centaurion2G500206BW
\_\_\_\_\_DrSpeed_/_/_/_/_/
Dr.Speed è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2006, 10:18   #5
repne scasb
Bannato
 
Iscritto dal: Feb 2003
Messaggi: 947
Ho disponibile delle routine in assembly x86 spero ti siano utili ugualmente:

Uso delle routine:

1) Chiamare una sola volta la routine Init_Timer (calcolo overhead del timer).
2) Per misurare un tempo utilizzare Timer_On per marcare l'inizio della misurazione.
3) Utilizzare Timer_Off per marcare la fine della misurazione.
4) Il tempo trascorso si trovera' nella variabile 'elapsed_time'.
5) La precisione del timer e' di 1193046.47111 -> (2^32)/3600. Ossia se in 'elapsed_time' si trovera' il valore di 1193046 sara' passato circa 1 secondo.

Codice:
	BIOS_SEGMENT		EQU	40h
	TIMER_OFFSET		EQU	6Ch

	Init_Timer	proc	near

	pusha
	call	Timer_On
	mov	ds: dword ptr [overhead],0h
	mov	cx,10h
	mov	eax,ds: dword ptr [timer_start]
loop_overhead:
	call	Timer_On
	call	Timer_Off
	loop	loop_overhead
	mov	ds: dword ptr [timer_start],eax
	call	Timer_Off
	mov	eax,ds: dword ptr [elapsed_time]
	shr	eax,4h
	mov	ds: dword ptr [overhead],eax
	popa
	ret

	Init_Timer	endp

	Timer_On	proc	near

	push	eax
	push	es
	push	BIOS_SEGMENT
	pop	es
	pushf
	mov	al,34h
	out     43h,al
	call	Delay
	xor	al,al
	out	40h,al
	call	Delay
	out	40h,al
	pushf
	sti
	call	Delay
	call	Delay
	call	Delay
	popf
	mov	eax,es: dword ptr [TIMER_OFFSET]
	mov	ds: dword ptr [timer_start],eax
	mov	al,34h
	out     43h,al
	call	Delay
	xor	al,al
	out	40h,al
	call	Delay
	out	40h,al
	popf
	pop	es
	pop	eax
	ret

	Timer_On	endp

	Timer_Off	proc	near

	pushf
	push	es
	push	BIOS_SEGMENT
	pop	es
	push	eax
	sti
	call	Delay
	call	Delay
	call	Delay
	mov	al,34h
	out	43h,al
	call	Delay
	xor	al,al
	out	43h,al
	cli
	mov	eax,es: dword ptr [TIMER_OFFSET]
	sub	eax,ds: dword ptr [timer_start]
	shl	eax,10h
	in	al,40h
	call	Delay
	mov	ah,al
	in	al,40h
	xchg	al,ah
	neg	ax
	sti
	sub	eax,ds: dword ptr [overhead]
	mov	ds: dword ptr [elapsed_time],eax
	mov	al,36h
	out     43h,al
	call	Delay
	xor	al,al
	out	40h,al
	call	Delay
	out	40h,al
	pop	eax
	pop	es
	popf
	ret

	Timer_Off	endp

	Delay	proc	near

	jmp	$+2h
	jmp	$+2h
	jmp	$+2h
	jmp	$+2h
	jmp	$+2h
	jmp	$+2h
	jmp	$+2h
	jmp	$+2h
	ret

	Delay	endp

	data	segment byte 'DATA'

overhead:
	DD	?
timer_start:
	DD	?
elapsed_time:
	DD	?

	data	ends
repne scasb è offline   Rispondi citando il messaggio o parte di esso
Old 11-12-2006, 10:44   #6
davidTrt83
Senior Member
 
L'Avatar di davidTrt83
 
Iscritto dal: Feb 2006
Città: Torino
Messaggi: 1620
Quote:
Originariamente inviato da repne scasb
Ho disponibile delle routine in assembly x86 spero ti siano utili ugualmente:

Uso delle routine:

1) Chiamare una sola volta la routine Init_Timer (calcolo overhead del timer).
2) Per misurare un tempo utilizzare Timer_On per marcare l'inizio della misurazione.
3) Utilizzare Timer_Off per marcare la fine della misurazione.
4) Il tempo trascorso si trovera' nella variabile 'elapsed_time'.
5) La precisione del timer e' di 1193046.47111 -> (2^32)/3600. Ossia se in 'elapsed_time' si trovera' il valore di 1193046 sara' passato circa 1 secondo.
FiGo , però non ho mai usato l'assembly quindi avrei bisogno di un minimo di aiuto, sempre che la cosa non è lunga e ti prenda troppo tempo.
__________________
Il numero di respiri che fate nella vostra vita è irrilevante, quello che conta sono i momenti che il respiro ve lo tolgono...
Nikon D750 - 24-120mm F4 - 70-300mm VR - Sigma 30mm f1.4 Art - Nikon 50mm f1.8 - Nikon 85mm f1.4
davidTrt83 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
AOC propone un QD-OLED al prezzo di un I...
AGCOM segnalerà la AI Mode di Goo...
L'Estonia porta ChatGPT in classe: firma...
2 nm giapponesi contro TSMC: il piano di...
Questa scopa elettrica Tineco iFLOOR 5 è...
FRITZ!Box 6825 4G sbarca in Italia a 129...
Red Hat presenta Digital Sovereignty Rea...
AMD Zen 6 'Olympic Ridge': sette configu...
Amazon batte Walmart dopo 30 anni: il so...
Digos nel mirino dell'intelligence cines...
Sony non vuole aumentare il prezzo della...
Energia geotermica: la (costosa) rispost...
MG ha già venduto 1 milione di au...
"Something Big Is Happening" —...
Renault chiude il 2025 con una perdita r...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:07.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v