Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Operationsgeschwindigkeit Kategorie: CC-Pro Unit & Appl.Board (von Gerhard - 28.11.2005 17:22)
Als Antwort auf Re: Operationsgeschwindigkeit von Bernd - 28.11.2005 16:29

> >
> > Hallo Bernd,
> >
> > ganz richtig,
> > was ich brauche, sind zwei Signale(Portausgänge). Wenn ein Port GND hat, soll der andere 5V
> >  ausgeben, dann soll umgeschaltet werden, so daÃ? der erste von GND auf 5V schaltet und
> > der zweite von 5V auf GND.
> > Bei gleicher Umschaltzeit der Ports von GND zu 5V und wieder zu GND, erhält man symmetrische
> > gegenläufige Signale mit einer Differenzamplitide von stetig 5 V.
> > In Assembler programmiert (z.B. OpenMikro), sind das maximal 12 Takte bei absolut symmetrischen,
> > gegenläufigen Signalen (mit stetig 5 V Differenz) für eine Periode (POrt1 OFF,ON; Port2On/OFF).
> > Mit einer For...Next Schleife ist so etwas kaum ohne Kenntnis der Dauer der einzelnen Befehle zu
> > programmieren. Deshalb die Schleife mit den "Dummy-haft" aussehenden mittlerem GOTO-Befehl.
> > Wie ich aber schon sehe, habe ich mit der Mega32 keine Chance überhaupt in die Geschwindig-
> > keitsbereiche der OpenMikro/Mini zu gelangen, da (derzeit) die Mega32 zwar eine höhere Takt-
> > rate hat, aber durch die "Closed"-Struktur eine Assemblerprogrammierung in weiter Ferne liegt...
> >
> > GruÃ?, Gerhard
> >    
>
>
> Hallo Gerhard!
>
> Du brauchst also ein symetrisches Signal von 5V und etwas mehr als 1 Mhz, aber anscheinend einen
> definierten beginn (zB Leitung a beginnt mit 5V).
> Da du aber wohl nie beide Leitungen auf H bzw. L zu liegen haben willst, denke über
> die Benutzung von nur einem Port und einem negator nach. das entlastet die
> Programmierung auch noch mal. Das eine Port wäre dann immer die
> definierte Startleitung und du könntest die Zeit für den 2. Portbefehl für die pulsbreite ausnutzen.
> Ã?brigens du bekommst mit keiner Programmierung es so hin, das die 2. Leitung genau dann
> umschaltet wenn die 1.  umschaltet. somit hast du selbst bei Assembler
> für mid. 2 Takte den gleichen Pegel auf beiden Leitungen.
>
> GruÃ? Bernd
>
> Bin nur unter der Woche im Netz

Hallo Bernd,
In Assembler kannst Du mit einem simplen Programm alles komfortabel schalten:
1. Schritt: den ganzen Port auf Ausgang
2.Schritt:Belegung des Ports mit einer 01 Folge: z.B.:Port=01010101
(mit bset und bclr-Befehlen)
Nun kommt die Routine
Label1:
asl Port ;schiebt die Bits um eine Stelle nach links Port=10101010
            ;dauert 4 Takte
jmp Label2 ;Dauer 2 Takte
Label2:
asr Port ; schiebt die Bits um eine Stelle nach rechts: Port=11010101
             ; dauert 4 Takte
jmp Label1 ;dauert 2 Takte
(also ganz symmetrische Kennlinien: Immer wenn die Pins 0,2,4,6  auf 5V sind,
 dann sind die Pins 1,3,5,7 auf GND - und umgekehrt...)

Mit 12 Takten hast Du eine Routine im 300 kHz-Bereich (open-Micro),
Durch Einführung von Wartebefehlen (nop), kannst Du die Zeitdauer verändern.
Könnte man die Pro in Assembler bearbeiten, sollten auf Grund der höheren
Taktrate, MHz-Geschwindigkeiten erreichbar sein
... aber Assembler und Mega-Pro is nich...
(aber Elektor bietet dies wohl alles auf 16Bit-Basis als Zugabe für zwei Hefte an...)

GruÃ?, Gerhard


    Antwort schreiben


Antworten:

Re: Operationsgeschwindigkeit (von Bernd - 28.11.2005 22:22)
    Re: Operationsgeschwindigkeit (von Gerhard - 29.11.2005 18:07)
        Re: Operationsgeschwindigkeit (von Bernd - 30.11.2005 13:41)