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:

high/low Zeiten

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



Anmeldungsdatum: 23.04.2009
Beiträge: 44

BeitragVerfasst am: 07.02.2010, 20:00    Titel: high/low Zeiten Antworten mit Zitat

Hi,
1) ich will mit QBasic über COM oder LPT Impulse an einen Mikrokontroller schicken (einfach high/low, und das soll der MC zählen).
Wenn man Ausgänge ein- und ausschaltet, wie schnell geht das?
Wieviele Millisekunden dauert 1x high/low = 1 Impuls?
Wie schnell soll man das überhaupt machen damit nicht ein Impuls verschluckt wird? Eine Verzögerung?

Ich frage damit der MC auch lange genug auf dem Eingangspin lauscht bis z.B. alle 1000 Impulse übertragen sind.

2) Der MC läuft auf 5V (und erkennt angeblich Impulse von >10µSec). Wenn high/low über COM kommen - brauche ich auf der Leitung eine 4V7 Zenerdiode nach GND damit die Spannung für den MC nicht zu hoch ist?

lg
Triti
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 07.02.2010, 21:41    Titel: Antworten mit Zitat

Hallo

zu 1) Wie schnell du einen Pin an einer der Schnittstellen ein- und ausschalten kannst, hängt von deinem Rechner und deinem Betriebssystem ab, dass kann dir so pauschal niemand sagen.

Warum probierst du es nicht einfach aus? Du speicherst die Startzeit in Form des Stands von TIMER. Dann schaltest du in einer Schleife z.B. 100.000 Mal einen Pin an und aus und speicherst danach wieder den Stand von TIMER als Endzeit. Wenn du dann die Zeitdifferenz durch die Zahl der Schleifendurchläufe teilst, hast du die Dauer eines Impulses. Die Schwankt naturgemäß unter Windows etwas. Ich komme mit dieser Methode auf knapp 20µs für ein Mal ein- und ausschalten.

Was ist denn das für ein Mikrocontroller und wie ist er programmiert?

zu 2) Zenerdiode für den COM ist gut. Die begrenzt nicht nur die positive Spannung auf 4,7 Volt, sie schließt auch die negative Spannung bei Low-Pegel des COM-Ausgangs kurz.

Das ist deshalb nicht gefährlich, weil der Ausgangsstrom der seriellen Schnittstelle intern begrenzt und der Port damit kurzschlusssicher ist.


Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
triti



Anmeldungsdatum: 23.04.2009
Beiträge: 44

BeitragVerfasst am: 07.02.2010, 23:19    Titel: Antworten mit Zitat

Hi Skill,

> Was ist denn das für ein Mikrocontroller und wie ist er programmiert?
Picaxe 08M, programmiert wird mit basic lächeln

> Windows ist egal, bin ein anständiger Mensch und nehme sauberes DOS 6.2.2. und das auf irgend welchen alten PCs die sonst weggeworfen werden.

> Zenerdiode für den COM ist gut. Die begrenzt nicht nur die positive Spannung auf 4,7 Volt, sie schließt auch die negative Spannung bei Low-Pegel des COM-Ausgangs kurz.
Aha, schliesst kurz. Interessant, wäre ich nie drauf gekommen.

Mich würde nur interesieren was passiert wenn man mit 12V Impulsen auf den 5V MC geht. Ganz böse?

> Warum probierst du es nicht einfach aus? ...
Werde ich machen. Ich dachte nur das ist irgendwie fix oder immer ziemlich gleich.

Danke!
lg
Triti
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
triti



Anmeldungsdatum: 23.04.2009
Beiträge: 44

BeitragVerfasst am: 08.02.2010, 00:25    Titel: Antworten mit Zitat

Hi Skill,

> Was ist denn das für ein Mikrocontroller und wie ist er programmiert?
Picaxe 08M, programmiert wird mit basic lächeln

> Windows ist egal, bin ein anständiger Mensch und nehme sauberes DOS 6.2.2. und das auf irgend welchen alten PCs die sonst weggeworfen werden.

> Zenerdiode für den COM ist gut. Die begrenzt nicht nur die positive Spannung auf 4,7 Volt, sie schließt auch die negative Spannung bei Low-Pegel des COM-Ausgangs kurz.
Aha, schliesst kurz. Interessant, wäre ich nie drauf gekommen.

Mich würde nur interesieren was passiert wenn man mit 12V Impulsen auf den 5V MC geht. Ganz böse?

> Warum probierst du es nicht einfach aus? ...
Werde ich machen. Ich dachte nur das ist irgendwie fix oder immer ziemlich gleich.

Danke!
lg
Triti
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 08.02.2010, 09:58    Titel: Antworten mit Zitat

triti hat Folgendes geschrieben:
> Windows ist egal, bin ein anständiger Mensch und nehme sauberes DOS 6.2.2. und das auf irgend welchen alten PCs die sonst weggeworfen werden.

Bravo! :-)) Endlich einmal jemand, der von sich aus die optimal geeignete Umgebung für derartige INP()- und OUT-Anwendungen ausgesucht hat. :-)

Unter reinem DOS hast Du von dem her soweit keinerlei Schwierigkeiten mit schnellem und korrektem Timing.

Und schliesslich das Ersatzteillager nennt sich EBay, falls der Steuer-PC eines Tages doch einmal "den Schirm zumachen" sollte.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 08.02.2010, 14:12    Titel: Antworten mit Zitat

Hallo

triti hat Folgendes geschrieben:
Picaxe 08M, programmiert wird mit basic lächeln


Diese Picaxes sind ja extrem langsam. Solche hohen Frequenzen im zweistelligen Kilohertzbereich kannst du nur mit einigen Spezialbefehlen auswerten, z.B. COUNT. Laut Befehlsreferenz wird damit bei 4MHz Arbeitstakt des Controllers der Zustand des Pins alle 20µs abgefragt. Das heißt, das Signal darf maximal 25 kHz haben. Und das nur bei einem Impuls-Pausen-Verhältnis von 1:1. Ein solches bekommt man aber nicht so einfach. Mit

Code:
FOR a = 0 to 999
 OUT 1020, 1
 OUT 1020, 0
NEXT


ist der COM-Ausgang am PC länger Low als High, weil für die Bearbeitunge der FOR...NEXT-Schleife (Erhöhen der Zählvariable, Rücksprung) mehr Zeit benötigt wird. Misst du mit einer solchen Schleife also eine Frequenz von 20 kHz, heißt das nicht, das der COM-Ausgang je 25 µs an und aus ist, sondern vielleicht nur 10 µs an und 40 µs aus. Das könnte COUNT auf der Picaxe dann nicht mehr sauber erfassen.

Falls der PC zu schnell ist, musst du eben nach jedem Schalten des Pins noch eine kleine Pausenschleife einbauen. Ich denke, du musst dich einfach durch Ausprobieren an die höchstmögliche Geschwindigkeit herantasten.

triti hat Folgendes geschrieben:
Windows ist egal, bin ein anständiger Mensch und nehme sauberes DOS 6.2.2. und das auf irgend welchen alten PCs die sonst weggeworfen werden.


Da kann ich mich dreael nur anschließen - sehr löblich!

triti hat Folgendes geschrieben:
Mich würde nur interesieren was passiert wenn man mit 12V Impulsen auf den 5V MC geht. Ganz böse?


Das Datenblatt für PIC-Mikrocontroller, auf denen die Picaxe basiert sagt, dass die Spannung an den Eingängen im Bereich der Versorgungsspannung liegen muss. In deinem Fall also zwischen 0 und 5 Volt.
Allerdings sagt es auch, dass der Strom, der über einen als Eingang konfigurierten Pin fließt, maximal 25 mA stark sein darf. Das ist etwas mehr, als ein COM-Ausgang in der Regel zu liefern im Stande ist. Ich denke also, dass nichts passiert, wenn du den COM direkt an die Picaxe anschließt. In diesem Fall empfehle ich dir aber ausnahmsweise trotzdem nicht, es doch einfach einmal auszuprobieren...


Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
triti



Anmeldungsdatum: 23.04.2009
Beiträge: 44

BeitragVerfasst am: 09.02.2010, 15:48    Titel: Antworten mit Zitat

Hallo Skill,
Danke für die Antwort. Es ist alles nicht so einfach....
Ich hab jetzt was geschrieben das die Zahlen auf binär und umgekehrt ausrechnet. Uff, das hat gedauert...
Schaut so aus:
Code:
CLS
'-------------------- von dezimal in binär umwandeln
PRINT
INPUT "Zahl: ", zahl
start = zahl
DO
x = x + 1
y = zahl MOD 2
z = zahl / 2: z = FIX(z)
bin$ = bin$ + LTRIM$(STR$(y))
IF z = 0 THEN EXIT DO
zahl = z
PRINT y, z
LOOP
'Das Ergebnis hat die falsche Reihenfolge, darum umdrehen:
FOR I = x TO 1 STEP -1
b$ = MID$(bin$, I, 1)
binaer$ = binaer$ + b$
NEXT I
PRINT STR$(start) + " = "; binaer$
'-------------------- von binär in dezimal umwandeln
PRINT
x = LEN(binaer$): v = x - 1
FOR u = 1 TO x
d1 = VAL(MID$(binaer$, u, 1))
d2 = (d1 * (2 ^ v))
zusammen = zusammen + d2
PRINT STR$(d1) + "* (2^" + LTRIM$(STR$(v)) + ")", STR$(d2)
v = v - 1
NEXT u
PRINT binaer$ + " = " + STR$(zusammen)


Kannst Du mir bitte mal das erklären wie ich da tun soll, ich verstehe es nicht wirklich:

» (Du wandelst auf dem Rechner die Dezimalzahl, also wie oft der Controller
» etwas machen soll in einen Binärwert um, also in eine Folge von Nullen und
» Einsen. Diese sendest du über die eine Leitung. Über die andere läuft ein
» Taktsignal. So weit komme ich noch mit)
» Erkennt die Picaxe dort einen 0-1-Wechsel, wird der jeweilige
» Zustand der Datenleitung gelesen und gespeichert. Der Zustand dieser
» Datenleitung darf sich dabei nur ändern, während die Taktleitung auf low
» ist.
» Ändert er sich, während der Takt auf high ist, dient das als Start- bzw.
» Stopsignal. Ein 1-0 Wechsel auf der Datenleitung während der Takt high ist
» zeigt dabei den Start einer Datenübertragung an, ein 0-1 Wechsel deren
» Ende.
Also so, dass man eine Zahl von QB in den Picaxe schicken kann und der auch eine Zahl in eine Variable von QB.
Ich glaube da brauche ich 4 Leitungen (1x out + 1x inp)*2.


lg
Triti

Editiert durch Moderator: Code-Tags hinzugefügt. (Sebastian)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 10.02.2010, 14:32    Titel: Antworten mit Zitat

Hallo triti

Mit dir ist auch alles nicht so einfach. Erst soll die Picaxe nur Impulse zählen, die vom PC kommen. Dann sollen auf einmal Daten binär vom Rechner gesendet werden und nun sollen die Daten in beide Richtungen übertragen werden, vom Rechner zum Mikrocontroller und umgekehrt.

Es macht nicht viel Spaß dir etwas zu erklären, nur um in deiner nächsten Antwort zu erfahren, dass du eigentlich was ganz anderes vor hast.

Die Picaxe hat ja schon "vorgefertigte" Befehle für serielle Datenübertragung (ich glaube SERIN/SEROUT/SERRXD/SERTXD) . Allerdings kenne ich mich mit Picaxe nicht aus und kann dazu nicht viel sagen. Im anderen Forum bekommst du da sicher bessere Antworten.

Jedenfalls würde ich dir raten, einfach mal ganz genau zu beschreiben was du machen willst, statt diese Informationen immer nur häppchenweise zu liefern.


Gruß
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
triti



Anmeldungsdatum: 23.04.2009
Beiträge: 44

BeitragVerfasst am: 10.02.2010, 16:28    Titel: Antworten mit Zitat

> Mit dir ist auch alles nicht so einfach.
Ja. Ich komme selber mit mir oft nicht klar.

> Die Picaxe hat ja schon "vorgefertigte" Befehle für serielle Datenübertragung (ich glaube SERIN/SEROUT/SERRXD/SERTXD) .
Mit denen muss ich erst klarkommen. Ich dachte mir serout kommt man nur auf den Bildschirm vom PC und nicht in eine Variable. Ich hab gerade die Seite http://www.hippy.freeserve.co.uk/picaxeio.htm#Serin gefunden und werde mir das mal übersetzen.

> Erst soll die Picaxe nur Impulse zählen, die vom PC kommen.
Ja und das weil ich nicht die Möglichkeit gesehen habe, anders Zahlen in den Picaxe reinzukriegen und natürlich auch welche zurückzuschicken.
Aber mit dem Umwandeln in binär wird das super gehen - Danke für den Tipp!

Erstmal schönen Dank. Ich hab mir das Handbuch ausgedruckt (224 Seiten). Da bin ich einige zeit beschäftigt.
lg
Triti
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. 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