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

Re: Geräteadresse TRX433 Kategorie: Programmierung (von JensD - 21.08.2003 15:17)
Als Antwort auf Re: Geräteadresse TRX433 von CTC - 19.08.2003 11:37

hallo CTC

Zuerst mal Danke für dein hilfreiches Posting. Vieleicht kannst du mir ja nochmal weiter-
helfen.Beide Sender laufen einzeln betrieben korrekt, wenn ich jedoch beide anschlieÃ?e
gibt mir die Empfängereinheit zwar Daten auf den PC aus, jedoch nicht exakt die die ich
gesendet habe. Versuche zur Synchronisation(capture,release) waren bisher nicht so erfolgreich.
Sollte ich zur Auswertung/Ausgabe auf PC für jeden Sender einen eigenen thread machen
oder gibt es noch andere Möglichkeiten? Vielen Dank im voraus.

MfG Jens

Zuerst ein "kleiner" Quellcode zu meiner TRX433 Empfängereinheit

string s;
string a;
int B,i;
int anzString;    //zur Längenbestimmung des strings 's',
const LO = 0;
const HI = -1;

/*------------------------------------------------------------------------------
  -----------------------thread empfang-----------------------------------------*/
thread empfang
{

loop
    {
      if ports.get(trx.DATA) == HI    //Frame angekommen?
      {
       trx.TRX_RECEIVE();    
       s = "";                

       B=trx.ADDR;                     //Sender1
       str.putint(s,B);  
       str.putstring(s,"/");  

//     Anzeige DB6 Sender 1
       B=trx.DB6;
       str.putint(s,B);
       str.putstring(s,"+");

//     Anzeige TXADDR Sender 2
       B=trx.ADDR;  
       str.putint(s,B);
       str.putstring(s,"-");  

//     Anzeige DB5 Sender 2
       B=trx.DB5;
       str.putint(s,B);
       str.putstring(s,"?");

       lcd.clear();
       lcd.print(s, str.length(s));    
       }
    }
}

/*----------------------------------------------------------------------------------
  -------------------------------thread sendenanpc----------------------------------*/
thread sendenanpc
{
anzString=12;   //nur zum testen

    if str.length(s) == anzString                                    
       {
// Baudrate einstellen, Standardeinstellung 9600 Baud
       hwcom.setspeed(5);

// Zeichenkette ueber HWCOM ausgeben
       hwcom.send(s, str.length(s));
       halt;      //weiss nicht ob wirklich richtig(will nur eine Ausgabe auf Hyperterminal)
     }
}

/*------------------------------------------------------------------------------
  ---------------------------thread main----------------------------------------*/
thread main
{
         lcd.clear();
// ------------- Startanzeige -------------------------
         a = "DemoTRX433";
         lcd.print(a, str.length(a));    

         lcd.goto(1, 0);

         a = "Empfang";
         lcd.print(a, str.length(a));

         sleep 5000;
         lcd.clear();
//---------------- TRX 433 Initialisierung -----------------------
         trx.TRXreset();                
         trx.CH2set();                  
         trx.PWR4set();                
         trx.ADDRset(100);           //Empfängeradresse 100

// ------- Thread Empfang ------------------------------------
         
         run empfang;
         
// ------- SENDE DATEN AN PC ---------------------------------

         run sendenanpc;
}


nun noch ein Quellcode zur Sendeeinheit(habe 2 Sender,bis auf Adresse und Datenbit alles gleich)

string s;
string a;
int test1;

/*------------------------------------------------------------------------------
  -------------------------thread senden an empfänger---------------------------*/
thread senden
{
test1=6;      //nur Hilfsvariable

loop
          {
          trx.ADDR=100;      //Adresse des Empfängers(immer 100)
          trx.DB0=trx.DB0+1;

     /*   trx.DB5=test2;   // wird als 2. Datenbit übertragen   */    (für Sender 2)
          trx.DB6=test1;   // wird als 1. Datenbit übertragen

          trx.TRX_SEND();
          }
}

/*------------------------------------------------------------------------------
  -------------------------thread main------------------------------------------*/
thread main
{

         lcd.init();

         a = "DemoTRX433";
         lcd.print(a, str.length(a));

         lcd.goto(1, 0);

         a = "Sender1";
         lcd.print(a, str.length(a));
//---------------- TRX 433 Initialisierung -----------------------
         trx.CH2set();            
         trx.PWR4set();        
         trx.ADDRset(133);        //Senderadresse 133(Sender 2 hat 166)
         
         run senden;
         sleep 500;
}


    Antwort schreiben


Antworten:

Re: Geräteadresse TRX433 (von CTC - 22.08.2003 21:53)
    AbfrageSenderEmpfänger (von JensD - 25.08.2003 14:14)
        Re: AbfrageSenderEmpfänger (von CTC - 25.08.2003 16:30)
            Re: AbfrageSenderEmpfänger (von JensD - 26.08.2003 11:08)