-         
Ergebnis 1 bis 3 von 3

Thema: Einen Wert über SerWrite senden klappt nicht?

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

    Einen Wert über SerWrite senden klappt nicht?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    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
    58
    Beiträge
    5.799
    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:
    https://www.roboternetz.de/phpBB2/ze...=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
    54
    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
  •