Clock/Data auslesen über LPT

Im Unterforum Projekte im Selbstbau - Beschreibung: Selbstbau von Elektronik und Elektro

Elektronik Forum Nicht eingeloggt       Einloggen       Registrieren




[Registrieren]      --     [FAQ]      --     [ Einen Link auf Ihrer Homepage zum Forum]      --     [ Themen kostenlos per RSS in ihre Homepage einbauen]      --     [Einloggen]

Suchen


Serverzeit: 06 11 2024  21:48:22      TV   VCR Aufnahme   TFT   CRT-Monitor   Netzteile   LED-FAQ   Osziloskop-Schirmbilder            


Elektronik- und Elektroforum Forum Index   >>   Projekte im Selbstbau        Projekte im Selbstbau : Selbstbau von Elektronik und Elektro

Gehe zu Seite ( Vorherige Seite 1 | 2 | 3 | 4 Nächste Seite )      


Autor
Clock/Data auslesen über LPT

    







BID = 758648

IC-Killer

Schriftsteller



Beiträge: 635
Wohnort: Stuttgart
 

  


Ich kann mir zwar nicht vorstellen, daß das Softwaremäßig nicht hinzubekommen ist ,aber

Ein Inverter (Invertierer), als Logikgatter mit Nicht(Not) bezeichnet macht nichts anderes als ein Signal (wie der Name schon sagt) zu invertieren, also das Signal "umzudrehen". Beispiel:

Eingang High (+5V) --> "Nicht/Not Gatter"/Inverter --> Ausgang Low (0V), und:
Eingang Low (0V) --> "Nicht/Not Gatter"/Inverter --> Ausgang High (+5V)

Hier noch was zum Lesen: Wiki und Elko.

BID = 758657

QuirinO

Schreibmaschine



Beiträge: 2205
Wohnort: Behringersdorf
Zur Homepage von QuirinO ICQ Status  

 

  

Das MUSS per software auslesbar sein. Soll ich jetzt meine alte C-Control Anleitung raussuchen und dir den Befehl diktieren? Ich mach das mal. Bitte etwas geduld...

BID = 758659

QuirinO

Schreibmaschine



Beiträge: 2205
Wohnort: Behringersdorf
Zur Homepage von QuirinO ICQ Status  

Also ich empfehle dir das Taktsignal auf den IRQ eingang des C-Control zu legen. Dann schaust du dir mal dieses Beispiel an.
Hier steht beschrieben, wie man den Interrupt so einstellen kann, dass er nur auf steigende Flanken reagiert.
Bei jeder steigenden Flanke des Interrupt-Pins liest du dann den Zustand der Datenleitung aus, sammelst alle Bits ein und schickst das Ganze dann als Paket zum PC.

Hier ist nochmal ein Beispiel mit Interrupts in Basic hinterlegt. Einfach auf der Seite nach Interrupt suchen.

EDIT: Welche c-control denn? Bitte am besten einen Link. Dann kann ich dir auch genau sagen welcher Pin der Interrupt Pin ist.

[ Diese Nachricht wurde geändert von: QuirinO am  4 Apr 2011 20:25 ]

BID = 758679

martix

Neu hier



Beiträge: 37
Wohnort: Stuttgart

Wow!
Das ist ja mal eine riesen Hilfe!
Vielen, vielen Dank!

Hier der Link zu der C-Control, die ich gekauft habe:
http://www.conrad.de/ce/de/product/.....l=005

Den IRQ-Eingang habe ich schon gefunden.
Habe die Masse des Radios mit der Masse der C-Control verbunden...

Experimentiere gerade ein wenig rum...

Gruß Martin

BID = 758684

QuirinO

Schreibmaschine



Beiträge: 2205
Wohnort: Behringersdorf
Zur Homepage von QuirinO ICQ Status  

Ich denke das ist einer der gangbarsten Wege
Für weitere Rückfragen stehe ich gerne zur Verfügung

BID = 758703

martix

Neu hier



Beiträge: 37
Wohnort: Stuttgart

Perfekt funktioniert schon recht gut.

Pro Senderwechsel 5 fallende Flanken. Sind also 10 Takte - zuverlässig.
Kommt mir wenig vor für 8 Bytes... aber mal sehn, was er dann auf der Datenleitung ausspuckt


Allerdings reagiert der Interrupt nur auf fallende Flanken.
Ich finde für Basic keinen Befehl, wie man den Interrupt für beide Flanken sensibel macht.

Ich finde in keiner Referenz das Thema Interrupt...


Dann gäbe es da immer noch das Problem, wie ich dann die Datenleitung auslesen soll.
Du sagst ja, die C-Control kann auch Hi-Pegel am Digital-Port erkennen.

Habe gerade nochmal gesucht...
Z.B. hier: http://ccontrol.csslabs.de/index.ph.....B.bpp

Hier steht auch, dass man ein Kabel mit Masse auf den Port legen soll zum Testen.
Gibts vielleicht sowas wie Pulldown, damit er auf +5V reagiert?
Habe nichts dazu gefunden.

Danke nochmals!
Gruß Martin



BID = 758712

QuirinO

Schreibmaschine



Beiträge: 2205
Wohnort: Behringersdorf
Zur Homepage von QuirinO ICQ Status  

Folgendes solltest du mit der Datenleitung machen:

define Datenleitung bit[?] - ? Je nach angeschlossenem PIN
define Zaehler byte <- hier speicherst du die Position ab an der du dich im "stream" befindest, d.h. du zählst die ankommenden Flanken
define Data byte <- Datenspeicher
interrupt Impuls <- wenn ich das richtig verstanden habe springt er zum befehl Impuls jedes mal wenn ein Interrupt ausgelöst wird

Data=0
Zaehler=0
'Der Haupt Loop
#Loop
if Zaehler = 7 then goto Send

goto Loop <- hier endet der Haupt-Loop

#Send <- die Sprungadresse, wenn das Byte voll ist.
Print Data <- Ausgabe von Data an den PC
Zaehler =0 <- Zähler rücksetzen
Data=0 <- Daten rücksetzen
goto Loop

Dann immer wenn dein Interrupt ausgelöst wird:

#Impuls
Zaehler = Zaehler + 1
if Datenleitung then Data=Data+(2^zähler) <- Steht auf der Datenleitung eine 1 dann die jeweilige Position hinzurechnen.

return interrupt <- Rücksprung nach dem Interrupt


meh. das habe ich jetzt ausm Kopf zusammengehackt. Leider hab ich schon ewig nicht mehr Basic programmiert. Kann syntaktische Fehler enthalten. Aber das sollte das tun, was du willst. Probiers mal aus.

BID = 758719

QuirinO

Schreibmaschine



Beiträge: 2205
Wohnort: Behringersdorf
Zur Homepage von QuirinO ICQ Status  

Hab in der Anleitung jetzt noch was gefunden.


Zitat :
Der Interrupt-Eingang IRQ
Der IRQ-Pin ist auf dem Steuercomputer mit einem 10k-
Pullupwiderstand high-gezogen. Wird beim Ausführen eines BASIC-
Programms eine Low-Flanke am IRQ-Pin erkannt, so verzweigt die
Abarbeitung des Programms vor dem nächsten BASIC-Befehl zu einer
vom Anwender definierten Stelle (siehe INTERRUPT-Befehl).


Also musst du den Interrupt eingang so konfigurieren, dass eine Steigende Flanke am Eingang den Interrupt-Pin auf Low zieht. Das geht im Normalfall mit einem einzelnen Transistor wie oben beschrieben. Eine Änderung in Software funktioniert definitiv nicht.

BID = 758728

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Hier hätte Geld gespart werden können.
Ich kenne mich mit C-Controls nicht wirklich aus, aber kann es sein, dass da alles bloß interpretiert wird? Wenn ja, dann wird das nichts. Die Taktperiodendauern liegen im Bereich von 20µs, ob die C-Control das schafft?


Der Grafik ist ja eindeutig zu entnehmen, dass die Daten bei steigender Flanke gültig sind. Man invertiere das Taktsignal also und lese den Datenport kurz nach dem INT ein.

Dann schiebt man das Bit in eine Variable und nach acht Vorgängen ist man fertig.


Das macht man aber in keinem Fall so:

Zitat :

f Datenleitung then Data=Data+(2^zähler)

Das mag mathematisch zwar wunderbar sein, geht aber in der Realität viel einfacher (Multiplikation mit zwei, Addieren mit sichselbst, Linksschiebeoperation,...)



_________________

BID = 758751

martix

Neu hier



Beiträge: 37
Wohnort: Stuttgart

Jetzt muss ich mich erst nochmal bei euch allen bedanken!
Das ist wahnsinn, wie sehr einem hier geholfen wird.
Tausend Dank!


Also so ähnlich hab ichs bis jetzt auch gemacht, nur, dass er bei jedem Interrupt eine 1 auf dem Display ausgibt, damit ich sehe, wie viele es sind.

Dann muss ich das Taktsignal auch noch invertieren.
Werde heute nachmittag mal die Transistoren besorgen.
Theoretisch könnte man doch auch die fallenden Flanken auswerten, dann aber 20µs warten?...
Obwohl nein, geht wohl nicht, weil er die erste Flanke nicht mitbekommen würde.


Binärcode in Dezimale umrechnen krieg ich hin =)
Das ist an der Uni immer das Standardbeispiel.

@DonComi: Wenns nichts wird ist nicht so schlimm.
Eigentlich wollte ich schon immer ne C-Control zum üben/lernen haben.
Also verschwendetes Geld ists nicht.


Ich melde mich wieder, wenn ich weiter bin=)

Ihr seid eine wirklich gute Hilfe!
Vielen Dank

BID = 758766

hajos118

Schreibmaschine



Beiträge: 2453
Wohnort: Untermaiselstein


Zitat :
martix hat am  4 Apr 2011 17:31 geschrieben :


Deshalb meine Frage: Wie realisiere ich es, dass ich die +5V Signale in ein Massesignal verwandle.

IC mit dem Namen ULN2003 (oder ULN2803) kann so was...
Ist ein sog. Open Kollektor Treiber und wird mit 5V angesteuert. Der schaltet seine Ausgänge entsprechend dem Eingang gegen Masse (nahezu 0V).

_________________
Interpunktion und Orthographie dieses Beitrags sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
Wer einen Fehler findet, darf ihn behalten!

BID = 758767

martix

Neu hier



Beiträge: 37
Wohnort: Stuttgart

Wäre das hier der richtige: http://www.conrad.de/ce/de/product/177970/IC-ULN2003XR2203TD62003 ?

Ich würde GND auf Masse legen, bei In1 z.B. die Datenleitung hinlegen und Out1 mit dem digitalen Eingang der C-Control verbinden.
Ist das so richtig?
Wäre ja sehr einfach!

Vielen dank!

BID = 758768

hajos118

Schreibmaschine



Beiträge: 2453
Wohnort: Untermaiselstein

Ja, evtl. brauchst Du noch einen Pull - up Widerstand (ca. 2,7kOhm) aber so sollte es gehen.

_________________
Interpunktion und Orthographie dieses Beitrags sind frei erfunden.
Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
Wer einen Fehler findet, darf ihn behalten!

BID = 759080

QuirinO

Schreibmaschine



Beiträge: 2205
Wohnort: Behringersdorf
Zur Homepage von QuirinO ICQ Status  


Zitat :
Ich kenne mich mit C-Controls nicht wirklich aus, aber kann es sein, dass da alles bloß interpretiert wird? Wenn ja, dann wird das nichts. Die Taktperiodendauern liegen im Bereich von 20µs


Ja, C-Controls interpretieren. Zumindest die Basic Programme. Wie es mit den C Programmen aussieht kann ich nicht sagen, aber ich weiss auch, dass es die Möglichkeit gibt eigene Routinen in Assembler einzubinden. Man sollte einfach testen ob es so funktioniert, wenn nicht, dann muss man sich was einfallen lassen. Völlig Hoffnungslos ist es jedenfalls nicht, es werkelt schliesslich ein Atmel Prozessor auf dem Ding, wenn mich nicht alles täuscht.

BID = 759091

DonComi

Inventar



Beiträge: 8605
Wohnort: Amerika

Das bringt einem nichts. Wenn das Programm in einen SRAM geladen und von der Firmware im AVR interpretiert wird, kannst du nichts machen, auch kein ASM. AVRs (zumindest die 8-Bitter) können Programme nur aus dem Flash ausführen.

Ich bin mir aber gar nicht sicher, ob da wirklich ein AVR werkelt. Könnte auch irgendwas von Motorola sein.

Wenn jedenfalls diese vermeintlichen Interrupts eher dem VB-Konzept „Event“ entsprechen, dann läuft im Hintergrund irgendeine Event-Schleife, die zyklisch bestimmte Eingänge überwacht...
Dann ist das Unterfangen zum Scheitern verurteilt.

Ich sehe noch die Chance in externer Hardware, wie z.B. einem µC, der über I²C angebunden wird. Der tastet dann die Werte vom Radio aus und übermittelt sich byteorientiert als I²C-Slave der C-Control.

Die wird allerdings diesen Slave pollen müssen, es sei denn, die C-Control kann auch als Slave arbeiten...

_________________


Vorherige Seite       Nächste Seite
Gehe zu Seite ( Vorherige Seite 1 | 2 | 3 | 4 Nächste Seite )
Zurück zur Seite 1 im Unterforum          Vorheriges Thema Nächstes Thema 


Zum Ersatzteileshop


Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation!
Impressum       Datenschutz       Copyright © Baldur Brock Fernsehtechnik und Versand Ersatzteile in Heilbronn Deutschland       

gerechnet auf die letzten 30 Tage haben wir 23 Beiträge im Durchschnitt pro Tag       heute wurden bisher 5 Beiträge verfasst
© x sparkkelsputz        Besucher : 182293295   Heute : 4124    Gestern : 4667    Online : 531        6.11.2024    21:48
2 Besucher in den letzten 60 Sekunden        alle 30.00 Sekunden ein neuer Besucher ---- logout ----viewtopic ---- logout ----
xcvb ycvb
0.0411748886108