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: Byte seriell einlesen Kategorie: Programmierung Basic (von Kay - 25.05.2005 8:29)
 Als Antwort auf Re: Byte seriell einlesen von Burt - 25.05.2005 0:47
Kay nutzt:  CC1-Unit V1.1

> 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

Bisherige Antworten: