-         

Ergebnis 1 bis 3 von 3

Thema: Einen Wert über SerWrite senden klappt nicht?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    03.10.2004
    Alter
    50
    Beiträge
    50

    Einen Wert über SerWrite senden klappt nicht?

    Anzeige

    Hallo Forum,

    Ich möchte einen Wert über SerWrite senden.
    Es werden über die RS232 Symbole gesendet.
    Also nicht den Wert.

    Code:
    #include "asuro.h" 
    
    unsigned char sw1, sw2;
    
    
    int main(void){ 
       //unsigned int i;
       Init(); 
        
       while(1){ 
          sw1=PollSwitch(); 
          sw2=PollSwitch();
    	  StatusLED(OFF); 
          BackLED(OFF,OFF); 
          FrontLED(OFF); 
                if ((sw1 == sw2) && (sw1 == 0x01)) { 
                            StatusLED(GREEN);
                             unsigned int erg;
    	          int a;
                              unsigned char b;
    	          a = 2;
    	          b = 6;
                              //erg = a + b;
               	          erg = 37;
                              SerWrite("Asuro Ergebniss = \n",18);
                              SerWrite(&erg,3);
    		} 
          
       } 
       return(0); 
    }
    Was ist hier bei diesem Test Script falsch ?

    mfg
    Enterprise

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Statt langer Worte:

    http://de.wikipedia.org/wiki/Dualsystem
    (http://de.wikipedia.org/wiki/Hexadezimalsystem)
    http://de.wikipedia.org/wiki/Byte
    http://de.wikipedia.org/wiki/Ascii
    http://de.wikipedia.org/wiki/Terminalemulation

    Viel Spass beim Einlesen...

    Eine Lösung für dein Problem:
    http://www.roboternetz.de/phpBB2/zei...=328202#328202

    Gruß

    mic

    Code:
    #include "asuro.h"
    
    unsigned char sw1, sw2;
    
    void PrintChar(unsigned char x)
    {
       unsigned char einer, zehner, huni;
       char s[3]="hze";
       einer=x%10;
       zehner=(x-einer)/10;
       huni=(x-(zehner*10+einer))/100;
       s[0]=huni+'0';
       s[1]=zehner+'0';
       s[2]=einer+'0';
       SerWrite(s,3);
    }
    
    int main(void){
    	//unsigned int i;
    	unsigned int erg;
    	int a;
    	unsigned char b;
    
    	Init();
    
    	while(1){
    		sw1=PollSwitch();
    		sw2=PollSwitch();
    		StatusLED(OFF);
    		BackLED(OFF,OFF);
    		FrontLED(OFF);
    		if ((sw1 == sw2) && (sw1 == 0x01)) {
    			StatusLED(GREEN);
    			a = 2;
    			b = 6;
    			erg = a + b;
    			//erg = 37;
    			SerWrite("\n\rAsuro Ergebniss = ",20);
    			//SerWrite(&erg,3);
    			PrintChar(erg);
    		} // if
    	} // while
       return(0);
    }

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    03.10.2004
    Alter
    50
    Beiträge
    50
    Danke radbruch,

    Hat mir sehr geholfen.
    Werde mich auch in die Dokus ein lesen.


    mfg
    Enterprise

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •