Hallo, ich habe hier im Forum eine kleine Routine für eine serielle Schnittstelle gefunden.
1 | volatile uint16_t stxdata = 0; |
1 | void sputchar(uint8_t val){ |
2 | while(stxdata); |
3 | stxdata = 0x200 | (val<<1); |
4 | }
|
Wird im Timerinterrupt mit Baudrate aufgerufen:
1 | if (stxdata){ |
2 | if (stxdata & 1) |
3 | {
|
4 | PORTB &= ~(1<<TX); // off |
5 | }
|
6 | else
|
7 | {
|
8 | PORTB |= (1<<TX); // on |
9 | }
|
10 | stxdata >>= 1; |
11 | }
|
Jetzt würde ich gerne noch ein Bit Pause anhängen, damit es keine Probleme beim Empfänger gibt. Hat jemand eine Idee?