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 Andrè, > > > > Noch ne Idee... ich gebe zu, ich kann sie erst morgen prüfen... aber ich meine, sowas gesehen zu haben. > > > > Meine "Zielvorstellung" eines Programmes mit eeprom-Funktion (ins Unreine geschrieben) ist etwa so: > > > > Ich weis nicht, wie ich auf das schmale Brett gekommen bin.... :-) > > Die funktionen sind tatsächlich gekapselt und "Wasserdicht"... Die Ausnutzung des Seiteneffekts > > wie früher unter C möglich und üblich geht nicht, weil eine Kopie des Wertes auf den Funktionsstack > > geschrieben wird und nicht der Wert selbst oder dessen Adresse.. ich dachte ich hätte sowas gesehen > > aber nach dem ich es mit einem kleinen Test ausprobiert habe, ist die Idee hinfällig.. zumindest was die > > "Autoaddressierung" angeht. > > Mir ist ein Licht aufgegangen... es wurde richtig hell :-) > Das mit dem Seiteneffekt ist doch möglich.. und ich habe es tatsächlich gesehen gehabt... allerdings mit > einem String und nicht mit einem Int wie ich es heute morgen ausprobierte. Hab doch keine Halluzi's.... > Ich habe auch die Stelle im CC2-Handbuch gefunden, die den Zusammenhang noch mal genau klärt. > S.68 Parameter und lokale Variablen > > So.. und jetzt kommt der Clou... definiert man für eeepromaddr und addr je einen eigenen Typ einer Variable > vom Typ INT, werden die Parameter nicht mehr als Stackwert sondern referenziert angesprochen. > Ausserdem lassen sich die beiden static Variablen in einem Typ zusammen fassen was weniger > Stackoperationen zur Folge hat. > Variante 1: > > type eeadress > { byte eepromaddr;} > > type myaddr > { int addr;} > > Dann klappt auch > eeadress=0 > myaddr=16384 > If writebyte(eeadress,myaddr,wert) doerror (geterr()) > If writebyte(eeadress,myaddr,wert) doerror (geterr()) > If writelong(eeadress,myaddr,wert) doerror (geterr()) > .... > > Variante 2: > > type eeadress > { > byte eepromaddr; > int addr; > } > > Dann klappt auch > eeadress.eepromaddr=0; > eeadress.myaddr=16384; > > If writebyte(eeadress,wert) doerror (geterr()) > If writebyte(eeadress,wert) doerror (geterr()) > If writelong(eeadress,wert) doerror (geterr()) > .... > mit automatischem hochzählen der Adressen. Variante 2 finde ich sogar noch eleganter weil wie gesagt > min. 1 Stackvariable entfällt (die Adresse für die Referenz zum neuen Typ muß ja immer übergeben werden. > Referenzen müsten aber weit schneller als Stackoperationen sein. Da winkt also auch ein Vorteil. > > > > So einfach machen wir es den Leuten nicht. :-) > > Mit der Idee kannst Du den Leuten ruhig etwas mehr Luxus gönnen... :-) > Trau Dich ! :-) > Die Angaben sind ja weiterhin jederzeit auch mit direkten Adressen zu machen und es würde sich eine > weitere Möglichkeit zur Prüfung von unvollständig geschriebenen Daten eröffnen. > > > > Man muß hier selbst mitzählen. Außerdem hätte dies nur Vorteile beim sequentiellen > > > Schreiben. (z.B. Datenlogger) > Wie gesagt..es ist nicht vorherzusehen, wo für die CC2 eingesetzt wird... und sei es "nur" als > Datenlogger... überleg mal... will ich ein Menue darstellen, das Texte auf ein LCD ausgibt, > muß ich die Texte sequentiell einlesen. Jede Stunde ein Meßwert schreiben... sequentiell... > Suchen in einem Datenfeld... sequentiell lesen und vergleichen... dieses "nur" bei Dir ist aus > meiner Sicht so nicht ok. > > Die Nachteile der Geschichte sind 2 zusätzliche statische Variablen für das eeprom und die Adresse. > Da Du aber schon eine eingeführt hast, macht mir das wenig bedeneken solange wir da nich mit aasen. > > Ok.. ich warte weiter auf Dein nächstes Posting... (und ggf. Mail mit Änderungen) > Beachte bitte mein letztes und dieses Posting im Zusammenhang. > > Gruß Rolf
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB