Ich würde mir erst mal das Modul mit einem RS232/USB Umsetzer (oder
einem MAX232, wenn ich noch eine echte serielle Schnittstelle am PC
habe) erst mal an den PC hängen und dort in einem Terminalprogramm
nachsehen ob und was das Scanner-Modul so von sich gibt.
So wie das momentan ist, ist das ein Stochern im Nebel. Du weißt nicht,
ob das Modul was vernünftiges von sich gibt bzw. du weißt nicht, ob in
deinem µC alles korrekt gemacht ist. die 1Mhz für F_CPU lassen in mir
den Verdacht aufkommen, dass der auf internem Oszillator läuft, was ein
Problem mit der Baudrate bedeuten kann. D.h. auch das würde ich mal
testen, indem ich den µC etwas ausgeben lasse, was ich mir am PC im
Terminalprogramm ansehe.
Die x bzw x-quer bzw. Leerezeichen lassen eigentlich nicht auf 'bekannt
oder nicht bekannt' schliessen (nichts dergleichen steht im Datenblatt
vom Scanner), sondern die würde ich erst mal als Indiz werten, dass da
mit der Baudrate was nicht stimmt. Höchst wahrscheinlich ist das Problem
im µC zu lokalisieren. Gerade deshalb ist es so wichtig, dass man erst
mal eine Komponente (den Scanner), durch etwas ersetzt, dessen
funktionieren ausser Zweifel steht (ein PC mit Terminalprogramm) und
dort mal die UART Verbindung durchtestet.
Es hat sich auf lange Sicht bewährt, wenn man in einem System immer nur
eine Komponente hat, von der man nicht weiß, ob sie sauber funktioniert.
Je mehr ungetestete und unbekannte Komponenten man hat, desto
schwieriger wird die Fehlersuche. Daher führt der schnellste Weg, auch
wenn es zunächst nicht so aussieht, meistens darüber erst mal alles bis
auf 1 einzige unbekannte und ungetestete Komponente durch etwas ausser
Frage stehendes zu ersetzen. Und in den meisten Fällen muss dann eben
ein PC als 'Lückenbüsser' herhalten. Was in diesem Fall besonders
einfach geht, da die Kommunikation über UART abläuft und ein PC das aus
dem Stand kann. Damit kann man Scanner und µC erst mal unabhängig
voneinander auf korrekte Funktion testen UND hat auch noch den Vorteil,
dass man im Terminalprogramm sogar sieht, was sich auf der Schnittstelle
abspielt.