Hallo zusammen.
Ich habe mal das von damaltor angepasste Programm mit der von von izaseba angegeben Korrektur zu "SerWrite((unsigned char *)string,strlen(string));" übersetzt.
Code:
#include "asuro.h"
int main (void)
{
unsigned char x; //definition der pollswitch-variable
unsigned char string [5]; //definition eines string mit max. 5 zeichen
Init ();
while (1)
{
x = PollSwitch (); //taster werden abgefragt
itoa (x, string, 10); //wert wird umgewandelt und in string gespeichert
SerWrite (string, strlen (string)); //string wird an terminal geschrieben
SerWrite ("\n\r", 2); //umbruch an terminal schreiben
//("\n" und "\r" sind je ein byte!)
}
}
Ja, es gibt jede Menge Warnings.
Aber:
- Alle warnings wegen 'signedness' können hier ignoriert werden. Es erfolgt an keiner Stelle eine Nutzung des höchsten Bits. Ist nur Compiler-Overload
- Die warnings wegen 'implicit declaration' können hier ignoriert werden. Bei keiner der Funktionen wird der (angenommene) int-Return-Wert überhaupt benutzt.
Der Output ist dann:
Code:
0
0
0
1
1
0
0
0
2
2
2
0
0
0
4
4
4
0
0
8
8
8
0
0
0
0
16
16
16
16
0
0
0
31
31
31
31
Wie man sehen kann, funktioniert bei mir die 6-te Taste nicht.
(Ich sollte mal bei mir die Lib neu machen
)
Dem Käse-Einwand von izaseba zum SerWrite mit 'unsigned char' kann ich zustimmen. Änderung in der Lib ist drin, muss von m.a.r.v.i.n mal neu zusammengefasst, und gepostet, werden.
Das aber die Lib bei Thraxas schon benutzt wird, da bin ich mir ziemlich sicher, da er ja schon in seinem ersten Beitrag die Funktion SerPrint() aus der LIB benutzt.
@izaseba
Sollte deine Funktion PrintChar() nicht eher PrintuChar() heißen, dann könnte man noch eine 'echte' PrintChar() mit Vorzeichenausgabe für 'signed char' machen?
Gruß Sternthaler
Lesezeichen