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

CAN : Ich versteh was nicht? Kategorie: CAN-Bus (von Wolfgang - 29.10.2001 22:31)


Hi an alle!

2 Units

ich schicke auf  

kanal 0 die uhrzeit
kanal 1 Volt
kanal 2 Ampere

wenn ich nur die Uhrzeit abfrage funktioniert alles, sobald ich ander kanäle abfrage bekomm ich nur mehr Chaos!

Init Funktion im Main Thread!
 can.init(can.SPEED_500,0x07FF,0x0000);

Funktion : Float Werte senden

function sendcanf(byte ch,float f)
{ byte buffer[7];
  long l;
  if tools.KEY[1] == 0 return;
  if can.ready(ch)
    { l = f * 10000;
      mem.putlong(buffer,0,l);
      can.send(ch,0x0120,buffer,4);
    }
}

Funktion : Uhrzeit senden

byte data[7];
function CanSendTime()
{
  if can.ready(0)
    {
      data[0]=system.second();
      data[1]=system.minute();
      data[2]=system.hour();
      data[3]=system.day();
      data[4]=system.month();
      data[5]=system.year()/100;
      data[6]=system.year() % 100;
      can.send(0,0x0120,data,7);
    }
}

Funktion : Uhrzeit empfangen

function ShowCanTime(byte b[])
{ string tmp;
  tmp = "";
  str.putintf(tmp, b[2], 2);
  str.putchar(tmp,':');
  str.putintf(tmp, b[1], 2);
  str.putchar(tmp,':');
  str.putintf(tmp, b[0], 2);
  tools.msg2s(0,8,tmp);
  /*tmp="";
  str.putintf(tmp, b[3], 2);
  str.putchar(tmp,'.');
  str.putintf(tmp, b[4], 2);
  tools.msg2s(0,11,tmp);
  tools.msg2i(1,12,"",b[5]*100+b[6],4,"");
  */
}

test Thread :

byte buf[7],max;

thread CANREADER
{  float tmp;
   byte ch;
   buf=0;
   ch=0;
   can.expect(ch,0x0120);
   if can.rxd(ch)
     { can.get(ch,buf);
       system.settime(buf[2],buf[1],buf[0]);
       system.setdate(buf[5]*100+buf[6],buf[4],buf[3]);
       ShowCanTime(buf);
     }
   ch=1;
   can.expect(ch,0x0120);
   if can.rxd(ch)
     { tmp=0;
       max=can.get(ch,buf);
       tools.msg2i(0,12,"#1:",max,1,"");
       tmp=mem.getlong(buf,0);
       tools.msg2f(1,0,"",tmp/10000,6,3,"V");
     }

   ch=2;
   can.expect(ch,0x0120);
   if can.rxd(ch)
     { tmp=0;
       can.get(ch,buf);
       tmp=mem.getlong(buf,0);
       tools.msg2f(1,9,"",tmp/10000,6,3,"A");
     }

}

Erklärung für meine tools.msg2f Funktion

msg2f(zeile,spalte,string 1,float value,länge,kommas,string 2)

Ich hoffe auf Hilfe

mfg Wolfgang


    Antwort schreiben


Antworten:

Re: CAN : Ich versteh was nicht? (von Cris - 30.10.2001 15:07)
    Re: CAN : Ich versteh was nicht? (von Wolfgang - 30.10.2001 23:43)
        Re: CAN : Ich versteh was nicht? (von Cris - 31.10.2001 1:02)
            Re: CAN : Ich versteh was nicht? (von Wolfgang - 31.10.2001 18:30)