naja, eine Tilde "~" ist hex 0x7E 01111110

Dass die Baudrate stimmt, kann man da nicht ableiten, wenn du eigentlich
"@" schickst, also 0 0000 00101 . Das schaut ja schom fast verkehrt polarisiert aus

01111110 "~"
00000010 "@"


Schau dir bitte (mir zuliebe) in deinem Programm nochmal insbes.
.equ F_CPU = 4000000
.equ UBRR_VAL = ((F_CPU+BAUD*8 )/(BAUD*16)-1)
ZEICHENGENAU an.

bei den nullen bei der CPU hab ich mich schon mal vertan und lange gesucht