Re: 32 Digital-Eingänge? Kategorie: CC2-Unit & Appl.Board / CC2-Station (von André H. - 6.09.2004 21:00) | ||
Als Antwort auf Re: 32 Digital-Eingänge? von joe - 6.09.2004 20:29 | ||
| ||
Hallo joe, > Wenn ich einen Schalter an P0 ... P7(i2c-max7311-board ) betätige, wird der Portinhalt richtig über > die Funktion showports angezeigt und richtig über die RS232 übertragen. > Beim Drücken bzw. Loslassen eines Schalters P8...P15(i2c-max7311-board ) wird > der PortInhalt RICHTIG angezeigt, > ABER via RS232 NICHT RICHTIG übertragen, d.h. es kommt immer eine 0 (inp=0 und out=0)rüber. > Ich verstehs nicht, was mach ich nur falsch. > ... > > byte sbuf[12]; > int inp, new, out; > byte flag; > system.TIME time; > > thread main > { // Initialisierung > ... > sbuf[6]=out; > sbuf[8]=inp ; > sbuf[10]=13; > sbuf[11]=10; >... Das ist ja klar, da� dies so nicht funzt. ;-) Fällt es Dir so auf ? Du willst out und inp, beides Integer, in sbuf[], ein Byte-Array, schreiben. Wenn Du das aber so machst, dann werden nur jeweils die unteren 8 Bit in sbuf[] gespeichert. Du mu�t dies dann schon so schreiben: sbuf[6]=out; sbuf[7]=out shr 8; sbuf[8]=inp; sbuf[9]=inp shr 8; Dann funzts. ;-) �brigens, bei der Jahreszahl passiert dasselbe. (sbuf[2]=system.year();) Du könntest es aber auch so schreiben, und auf einen Datenrahmen verzichten: hwcom.put(system.day()); hwcom.put(system.month()); hwcom.putint(system.year()); hwcom.put(time.hour); hwcom.put(time.minute); hwcom.put(time.second); hwcom.putint(out); hwcom.putint(inp); hwcom.ret(); Allerdings mu�t Du hier beachten, da� integer bei hwcom.putint() mit MSB first gesendet werden ! MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: Re: 32 Digital-Eingänge? (von joe - 8.09.2004 19:27) Re: 32 Digital-Eingänge? (von joe - 8.09.2004 21:18) |