Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: mit 16-Bit-Erweiterung - viel zulangsam Kategorie: Programmierung Basic (von Georg - 27.07.2007 8:25)
 Als Antwort auf Re: mit 16-Bit-Erweiterung - viel zulangsam von Achim - 26.07.2007 19:04
Georg nutzt:  CC1-M-Unit V1.2/2.0, Micro, Open-Micro, Open-Macro
Hallo Achim,
so mache ich es auch, alles was in dem Zeitbereich liegt ist in der Schleife, die Grundeinstellung wird mit einer anderen Schleife voreingestellt. Da aber die Impulslänge 1 und 2 und die Pausenzeit immer die gleiche Gesamtlänge haben müssen (11ms + 22ms + 267ms = 300ms oder 20ms + 28ms + 252ms = 300ms) wäre es einfacher gewesen die Pausenzeit berechnen zulassen, als in einer extra Tabelle abzufragen.
Man könnte sicher auch noch mit den Verhältnissen der Zahlen zueinander arbeiten, leider ist das Spektrum, Spreizung zu groß,
Schleife (b) für Impuls 1 geht von 88 bis 240,  
Schleife (c) (davor Schleife - 1 bis 100 als Grundeinstellung) für Impuls 2 geht von 78 bis 220,
Pause (a) (Doppelschleife) geht von 228 bis hin zu 10.
siehe unten - also 2 Rechteckimpulse mit bestimmter Länge und angepaßter Pause zur nächsten Periode.
Ja und das wäre halt mit der 16Bit Erw. viel einfacher gewesen.
Hättest du einen andern Vorschlag wie ichs sonst machen könnte. ??????

Gruß
Georg

pause 7 ' der Vorlauf als Grundeinstellung
FOR x = 1 TO a          ' Doppelschleife für die Pause
NEXT
FOR x = 1 TO a
NEXT
TG = off

FOR x = 1 TO b            ' Impuls 1
NEXT
tog TG

FOR x = 1 TO 100    ' Impulspause und Impulslänge sind gleich
FOR x = 1 TO c
NEXT
tog TG
FOR x = 1 TO 100
NEXT
FOR x = 1 TO c
next
tog TG




> > so jetzt funktionierts, leider hat die OM-Micro mit der 16 Bit Erweiterung nur noch 30% der Geschwindigkeit. Ein Schleifen Durchlauf von 1 zu 220 waren mit dem Oszi gemessen 27,5ms, nach der Erweiterung sind es über 80ms. Damit erreiche ich leider nicht mehr die zeitliche Auflösung die ich brauche. Das Spektrum was ich brauche sind 11ms bis 34ms in 0,1-0,2ms Schritten.
> > Ohne 16 Bit - Ein Schleifendruchlauf von 1 zu 8 sind gemessen 1ms = Auflösung ca 0,125ms
> >
> > Schade mit der  16 Bit Erweiterung wäre es so einfach und komfortabel gewesen.
> >
> > Gruß
> > Georg
> >
> > Gibt es noch eine andere Möglichkeit
>
> Verstehe ich etwas nicht oder warum zählst Du nicht einfach bis zu einem drittel des bisherigen Endwertes?
>
> Statt bis 220 nur bis 70, statt bis 8 nur bis 2?
>
> Ansonsten ohne 16-Bit-Erweiterung:
>
> Statt
> c= 360
> ...    
> FOR x = 1 TO c
> NEXT
> tog TG
>
> ein
>
> c= 105
> ...    
> FOR x = 1 TO 255
> NEXT
> FOR x = 1 TO c
> NEXT
> tog TG
>
>
> Ggf. c etwas kleiner, um den Overhead der zweiten For-Schleife zu kompensieren.
>
> Bye
>  Achim

 Antwort schreiben

Bisherige Antworten: