Gast
#842813
Hallo Zusammen, Ich hab nach einiger Zeit wieder mal was Programiert und es funzt nicht so wie ich mir das vorstelle und ich weiß nicht mehr weiter. Folgendes Problem: Ich möchte ein LIN Protokoll nachbilden und um die Aufmerksamkeit meiner LIN-Bus-Teilnehmer zu wecken muss ich mindestens 13 byte hintereinander eine logische "0" auf den Bus legen. Zweimal hintereinander "uart_putc(0x00);" geht nicht, zwischen den beiden kommt immer ein kurzes "high" ...wegen stoppbit?? Dann dachte ich ok, clever, mach ich ein "uart_putc(0x00);" mit 4800 baud und schalte dan auf 9600 baud um und mach den rest. Das Programm sieht so aus:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
Geht aber auch nicht, das Programm schikt beide Bytes mit 9600baud raus, die logische 0x00 dauert somit 920uS. Kommentiere ich aber die Zeile UBRR= Bd9600; aus dan sendet es beide Bytes mit 4800 baud. Ganz ehrlich ich versteh das nicht. Sieht hier jemand einen logischen Grund?? Danke und Gruß!