Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
artikel:ateval:usart-ringpuffer [2013/04/07 12:23] – LED Ausgabe für Pufferüberlauf hinzugefügt Hannes Jochriem | artikel:ateval:usart-ringpuffer [2024/02/06 09:43] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | <code c> | ||
/* | /* | ||
- | | + | |
* Einfacher Code, der den UART initialisiert und die | * Einfacher Code, der den UART initialisiert und die | ||
- | * empfangenen Bytes in einen Rinpuffe | + | * empfangenen Bytes in einen Rinpuffer |
- | * Sind Bytes im Ringpuffer werden diese zurueckgeschickt | + | * Sind Bytes im Ringpuffer, werden diese zurueckgeschickt |
* Als Baudrate wird 9600Bd eingestellt | * Als Baudrate wird 9600Bd eingestellt | ||
* http:// | * http:// | ||
Zeile 23: | Zeile 24: | ||
// globale Variablen | // globale Variablen | ||
- | // volatile ist noetig da die Variablen in der ISR veraendert werden | + | // volatile ist noetig, da die Variablen in der ISR veraendert werden |
volatile uint8_t ringpuffer[PUFFERSIZE]; | volatile uint8_t ringpuffer[PUFFERSIZE]; | ||
volatile uint8_t ring_schreibe = 0; | volatile uint8_t ring_schreibe = 0; | ||
Zeile 36: | Zeile 37: | ||
temp = UDR; | temp = UDR; | ||
- | // Schreibeposition | + | // Schreibposition |
ring_schreibe++; | ring_schreibe++; | ||
- | //Schreibeposition | + | //Schreibposition |
ring_schreibe %= PUFFERSIZE; | ring_schreibe %= PUFFERSIZE; | ||
Zeile 50: | Zeile 51: | ||
} | } | ||
else | else | ||
- | { // Puffer ist voll, Schreibeposition | + | { // Puffer ist voll, Schreibposition |
// LED an zeigt vollen Buffer an | // LED an zeigt vollen Buffer an | ||
PORTD |= LED1; | PORTD |= LED1; | ||
Zeile 79: | Zeile 80: | ||
{ | { | ||
if(ring_lese != ring_schreibe) | if(ring_lese != ring_schreibe) | ||
- | { // He, es ist was im Rinpguffer!!! | + | { // He, es ist was im Ringpuffer!!! |
// Leseposition inkrementieren | // Leseposition inkrementieren | ||
Zeile 104: | Zeile 105: | ||
_delay_ms(1); | _delay_ms(1); | ||
} | } | ||
+ | </ |