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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > > > Hallo, > > > > > > ich bin von C-Control I auf C-Control Pro MEGA128 umgestiegen. Ich programmiere in CompactC. > > > > > > Ich möchte eine Ablaufsteuerung aufbauen. Dazu habe ich "früher" häufig mit den Tabellen > > > (Table-Anweisung) gearbeitet. > > > > > > Nun habe ich in C versucht, dies mit Arrays nachzubilden. > > > > > > Ich stoße jedoch ständig auf Schwierigkeiten! > > > > > > Mehrdimensionale Arrays können nicht referenziert werden!!. Parameterübergaben gehen > > > nur bei eindimensionalen Arrays. Als Rückgabewerte einer Funktion kann man sie > > > nicht verwenden. Dynamisch (Größenangabe durch Variablen) kann man sie nicht > > > erstellen, es exestieren keine Funktionen um die Dimensionen eines Arrays ermitteln > > > zu können und und und... > > > > > > Eine sinnvolle alternative für meine Ablaufsteuerung wäre noch Struc(turen) zu benutzen. > > > Geht nicht! > > > Vieleicht habe ich ja auch aufs falsche Pferd gesetz. Habt ihr noch einen Hinweis? > > > > > > Vielen Dank! > > > > Ja es gibt Einschränkungen, aber es ist immer noch mehr möglich als auf der C-Control I, > > dort hat man nur globale statische ein-dimensionale Arrays vom Typ Word. Ich überlege noch wie > > man Referenzen übergeben und zurückgeben kann, ohne die komplette Pointerarithmetik mit > > einzubauen. > > > > Dynamisch (Größenangabe durch Variablen) gehen nur mit den C99 Standard und auch dort nur lokal, > > weil sie auf dem Stack angelegt werden. Der Speicher ist zu klein um sinnvoll mit einem Heap > > zu arbeiten. Der C-Control Pro Compiler kann sich nicht mit einem kommerziellen Compiler > > messen, und selbst die unterstützen größtenteils nicht C99. Wenn Du das alles haben willst, mußt > > Du schon den GNU Compiler benutzen. > > > > Gruss Peter > > > > > > > > Fred > > Hallo Fred, > ich habe auch viel mit der CC1 gearbeitet und auch mit LOOKTAB. > Die CC Pro kann keine mehrdimensionalen flash arrays. > Ich habe aber eine Lösung gefunden, mit der ich leben kann. > > > > // Table komplett definieren und ab ins flash: > flash byte match1[8] = {16, 244, 35, 78, 1, 8, 0, 203}; > flash byte match2[8] = {16, 156, 193, 78, 1, 8, 0, 240}; > flash byte match3[8] = {16, 156, 193, 78, 1, 8, 0, 240}; > flash byte match4[8] = {16, 156, 193, 78, 1, 8, 0, 240}; > flash byte match5[8] = {16, 156, 193, 78, 1, 8, 0, 240}; > flash byte match6[8] = {16, 156, 193, 78, 1, 8, 0, 240}; > flash byte match7[8] = {16, 156, 193, 78, 1, 8, 0, 240}; > flash byte match8[8] = {16, 156, 193, 78, 1, 8, 0, 240}; > flash byte match9[8] = {16, 156, 193, 78, 1, 8, 0, 240}; > flash byte match10[8] = {16, 156, 193, 78, 1, 8, 0, 240}; > flash byte match11[8] = {16, 156, 193, 78, 1, 8, 0, 240}; > flash byte match12[8] = {16, 156, 193, 78, 1, 8, 0, 240}; > flash byte match13[8] = {16, 156, 193, 78, 1, 8, 0, 240}; > > > // 1 Zeile im Ram definieren > byte array1[8]; // Schmierarray > > // 1 Zeile vom flash ins Ram kopieren und verarbeiten > array1 = match1 > > Anders gehts leider nicht > > mfg Ellen > > >