Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: 32 Digital-Eingänge? Kategorie: CC2-Unit & Appl.Board / CC2-Station (von joe - 8.09.2004 21:18)
Als Antwort auf Re: 32 Digital-Eingänge? von joe - 8.09.2004 19:27
Ich nutze:
C-Control II Station, OSOPT V3.0
Hallo,

hat sich erledigt...
mit hwcom.put funzt es...

mfg joe


> > Hallo joe,
> Erst mal Dank und Anerkennung an André für die Hilfe und Bereitschaft das Forum zu pflegen.
> Das mit
>
>         sbuf[6]=out;
>         sbuf[7]=out shr 8;
>         sbuf[8]=inp;
>         sbuf[9]=inp shr 8
>

> funzt nicht. bekomm immer noch (inp=0 und out=0).
>
>
> mfg 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.
> >


    Antwort schreiben


Antworten: