
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> define lcd_buf byte ' byte 1 im speicher > define lcd_param byte ' byte 2 > define i byte ' byte 3 > > define data byte ' byte 4 > define n byte ' byte 5 > define ii byte ' byte 6 > define b byte ' byte 7 > define z byte ' byte 8 > > define shiftbyte byte ' byte 9 - da soll "reingeschoben" werden ... > define shiftbit <b>bit[65]</b> ' das müsste doch das niedrigste bit > ' von shiftbyte sein, oder?? jo, stimmt erstmal, bis auf die letzte definition. mit den HTML-tags kann der basic-kompiler sicher nichts anfangen :-) raus damit! > define bit1 bit[101] > define bit2 bit[102] > define bit3 bit[103] > define bit4 bit[104] ' die bits 101 - 108 liegen ja alle außerhalb > define bit5 bit[105] ' des Überschneidungsbereichs ?!!! > define bit6 bit[106] > define bit7 bit[107] > define bit8 bit[108] hinweis: gewöhne dir bitte gar nicht erst weiter an, variablennamen auch nur so klingen zu lassen wie (reservierte) schlüsselwörter. <b>bit</b> ist ein schlüsselwort für den kompiler und mit einem solchen variablennamen bringst du dich schnell in teufels küche. das ist kein guter programmierstil und ausserdem hat der kompiler nicht für alles, was er nicht versteht eine explizite fehlermeldung bzw kommt auch mal eine falsche raus. > > define lcd_port byteport[2] > define lcd_rs port[14] > define lcd_rw port[13] > define lcd_e port[15] > define reset port [5] > define clock port [6] > define input port [7] > > ' *** ASCII *** > define A_ &H41 > define B_ &H42 > define C_ &H43 > define D_ &H44 ' wo werden eigentlich solche definitionen gespeichert??? > define E_ &H45 > define F_ &H46 > define G_ &H47 > define H_ &H48 > define I_ &H49 > define J_ &H4A > define K_ &H4B > define L_ &H4C > define M_ &H4D > define N_ &H4E > define O_ &H4F > define P_ &H50 > define Q_ &H51 > define R_ &H52 > define S_ &H53 > define T_ &H54 > define U_ &H55 > define V_ &H56 > define W_ &H57 > define X_ &H58 > define Y_ &H59 > define Z_ &H5A > wo diese definitionen gespeichert werden? als zahl direkt im programm. konstanten verwendet nur der kompiler. sie dienen dem programmierer zur besseren übersichtlichkeit und wartungsfreundlichkeit des quelltextes. > ...................................... > > #SHL > for ii = 0 to 6 > shiftbit = bit1 ' <----- wurde vorher mit nem port belegt so?? wurde es das? kann ich nirgends entedecken, bit1 wurde bis hierher nie verwendet und ist somit 0. das kann also nie gehen. statt dessen müsste hier wohl logischerweise die portvariable <b>input</b> rein ~denkz~ > shiftbyte = shiftbyte shl 1 > next ii > > shiftbit = bit1 hier ebenfalls > print shiftbyte > im großen und ganzen verwendest du ausserdem in keiner weise deine clock-leitung. dein programm kann sich also nie auf irgendwas synchronisieren, sondern rasselt nur blind die schelife durch und ist fertig. solltest du zum einlesen des bytes meinen vorschlag verwenden wollen, dann simuliere diesen noch einmal und lege augenmerk auf die waits. diese sorgen dafür, dass der einlesevorgang an die taktleitung von extern gebunden wird. das setzt natürlich auch vorraus, dass diese langsam genug ist, und nicht schneller als das programm. > ..................................... > > > > > --------> shiftbyte ist bei der ausgabe 0 ????!!!! > > --> Von byte1 bis byte8 = 64Bit .... Bit65 = Anfangsbit (lowest bit??!) vom nächsten byte, byte9 ?!! (mit Bit72 hab ichs auch schon probiert...) > shiftbyte wird vorher nicht benutzt ....... sonnst weiß ich nicht was noch falsch sein könnte > vorrausgesetzt mein cdode ist kein totaler stuss. :-\ ne, totaler stuss ned, nur arg nachbesserungsbedürftig ;-) > > Danke > > MFG Manu |
| Antwort schreiben |