Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Millisekundenbereich ok, geht auch Nanosekundenbereich?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 03.10.2006, 19:48    Titel: Millisekundenbereich ok, geht auch Nanosekundenbereich? Antworten mit Zitat

Hallo zusammen, ich wollte Fragen, ob es auch einen Nanosekundenbereich in freebasic gibt.

Cu Andy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 03.10.2006, 20:05    Titel: Antworten mit Zitat

...
Was willst du dann mit Nanosekunden machen?!
Um auch nur Theoretisch in diesem Bereich Arbeiten zu können brauchst du einen Prozessor mit einem 1 GHz. (Kehrwert von einer Nanosekunde)
Eine Normalle CPU braucht aber relativ viele Taktzyklen für eine Rechnung, also muss der Takt deutlich über ein Gigahertz sein.

Meinst du vielleicht Microsekunden?
Das liesse sich in Asembler noch relativ einfach Umsetzten.
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 03.10.2006, 20:14    Titel: Antworten mit Zitat

Jepp Mikrosekundenbereich meine ich.

Ich muss Schieberegister so schnell wie es geht über die serielle Schnittstelle mit Daten füttern.

Wie ist es mit Assembler möglich die serielle Schnittstelle anzusprechen.

Cu Andy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 03.10.2006, 20:38    Titel: Antworten mit Zitat

Geht auch ohne Assembler.
Einfach per Winsock.
Mit Select kann man ein Timeout angeben, wie lange gewartet werden soll.
Da kann man sekunden und microsekunden einstellen.
Soweit ich weiß wird das auch in Freebasic (linux version) so gemacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 03.10.2006, 20:39    Titel: Antworten mit Zitat

Winsock?

Sagt mir überhaupt nix, sorry
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 03.10.2006, 20:48    Titel: Antworten mit Zitat

Zitat:
Geht auch ohne Assembler.
Einfach per Winsock.

Mit Winsock die serielle Schnittstelle ansteuern?! durchgeknallt Das hab ich aber auch noch nie gehört... Hmmm.... Ich würd mal vermuten, dass du da was verwechselst.
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 03.10.2006, 20:59    Titel: Antworten mit Zitat

Äh...
grinsen
Ok, ich meinte Sleep im nanosekundenbereich.
Aber irgendwie blick ich gerade nicht durch, wonach hier gesucht wird xD
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 04.10.2006, 08:24    Titel: Antworten mit Zitat

Hi,
wie Michael oben schon schrieb, ist ein arbeiten im Nanosekundenbereich fast unmöglich und für den COM-Port nicht machbar.
Vermutlich meint Andy µsek, da externe Schieberegister (TTL, CMOS) auch nur im MHz Bereich arbeiten.

Gruß Volta
EDIT/
@Andy19312 da habe ich deine Antwort übersehen verlegen
Bei Verzögerungen von µs kann ich dir helfen:
Code:
option explicit

Function pro_usek As Integer
 dim as ULongint tv ,tn
 dim as Double t1
  t1 = Timer + 0.1 '+ 100ms
 asm
  xor eax, eax
  cpuid    'warte bis alle Proz.Befehle abgearbeitet
  rdtsc    'internen Clockcounter lesen
  mov [tv], eax
  mov [tv+4], edx
 end asm
  Do '100ms warten
  Loop Until t1 < Timer
 asm
  xor eax, eax
  cpuid
  rdtsc
  mov [tn], eax
  mov [tn+4], edx
 end asm
  tn = (tn - tv) \ 100000
  Function = tn 'Takte pro 1µs
End Function

Sub delay_usek (dsek as integer, usec as integer)
 dim as ULongint tv ,tn
 asm
  xor eax, eax
  cpuid
  rdtsc
  mov [tv], eax
  mov [tv+4], edx
 end asm
  tv = tv + (dsek * usec)
  Do
   asm
    xor eax, eax
    cpuid
    rdtsc
    mov [tn], eax
    mov [tn+4], edx
   end asm
  Loop Until tv < tn
End Sub

dim as integer usek
dim as Double t

'1x Aufrufen um Takte pro µs zu berechnen
usek = pro_usek
?usek '~Prozessortakt in MHz

'Test 1ms (1000µs) warten
t = Timer
delay_usek 1000,usek
t = Timer-t
?t
sleep
Für die COM-Port Steuerung gibt es bestimmt andere Eksberden grinsen
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz