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) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum