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.
Ja, es gibt jede Menge Warnings.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!) } }
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:
Wie man sehen kann, funktioniert bei mir die 6-te Taste nicht.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
(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







Zitieren

Lesezeichen