PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Einen Wert über SerWrite senden klappt nicht?



Enterprise
19.02.2008, 22:36
Hallo Forum,

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



#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

radbruch
19.02.2008, 22:59
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/zeigebeitrag.php?p=328202#328202

Gruß

mic


#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);
}

Enterprise
20.02.2008, 00:08
Danke radbruch,

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


mfg
Enterprise