Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> Hallo Marc, > > > Ich glaube nicht, dass da irgend eine Funktion meinen Programmablauf stört. Es scheint eher so, als wäre > > die CC II Unit zu langsam. > > Daß etwas zu langsam ist, glaube ich nicht. > Ich habe mir einmal das Datenblatt des ICs angesehen. Es scheint nicht so, > daß der TLC549 einen Mindesttakt benötigt. > Ich glaube eher, daß der Fehler eher in der Routine read() liegt: > <code>function read() returns int > { > int cnt, val; > cnt = 0; val=0; //<= Das brauchst Du nicht > ports.set(CLK,0b0); > ports.set(CS,0b0); > val = -ports.get(DATA); > for cnt = 1...7 > { > ports.pulse(CLK); > val = (val shl 1) - ports.get(DATA); > } > ports.toggle(CLK); > ports.set(CS,0b1); //<=Und zwar hier > ports.toggle(CLK); > return val; > }</code> > Hier gibts nämlich eine Unstimmigkeit mit den Angaben des Datenblatts. > > Versuch mal folgendes: > <code>function read() returns int > { > int cnt, val; > ports.set(CLK,0b0); > ports.set(CS,0b0); > val = -ports.get(DATA); > for cnt = 1...7 > { > ports.pulse(CLK); > val = (val shl 1) - ports.get(DATA); > } > ports.pulse(CLK); > ports.set(CS,0b1); > return val; > }</code> > > > > Wäre vlt. sinnvoll das Programm bzw. die Funktionen in ASM oder in C zu schreiben, um den Systemtakt > > voll ausnutzen zu können. > > Hätte da vlt. jemand eine Idee, wie ich möglichst simpel (ohne Timer) nen µ-Sekunden delay realisieren > > könnte? Am besten wär ein Delay von 0.4µsec, 0.8µsec und 17µsec. > > Ich hab schon im netz und im Datenblatt des C166 nachgeschaut, obs da ne Angabe für die benötigten > > Taktzyklen jeder Instruktion des Prozessors gibt. Bin allerdings nicht fündig geworden. > > Das einfachste sind Schleifen. > Aber exakte Zeiten kommen hier nicht raus, da schließlich eine Reihe von Interrupts > abgearbeitet werden. > Gehe aber mal davon aus, daß alles, was im Nano-Sekunden-Bereich an nötigen > Delay gemacht werden müßte, hier ignoriert bzw. mit einem nop erledigt werden kann. > Die CC2 arbeitet mit 20MHz. Die meisten Befehle benötigen 2 Taktzyklen. > Durch den externen Bus, an dem der Flash und der RAM hängen, wird es etwas langsamer. > Aufschluß sollte das Kapitel 4.3 Instruction State Times im C164CI Manual geben. > (Auf der CC2-CD unter \CC2\icdata\) > Da die CC2 mit einem 16-Bit-MUX-Bus arbeitet, benötigen alle Befehle bestehend aus > 2 Byte, außer Multiplikation, Division und ein paar Sprungbefehle, 3 Takte. > Bei 4Byte-Instruktionen entsprechend 6 Takte. > Beachte aber, daß sich wegen der 4-Stage-Pipeline die Zeiten etwas ändern, > wenn Sprungbefehle enthalten sind. > > Aber eine ganz blöde Frage: > Warum nimmst Du nicht einfach den AD-Wandler der CC2 ? > Sind alle AD-Eingänge schon belegt, oder brauchst Du eine andere Referenzspannung? > > MfG André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB