Hierfür dokumentier ich mir alles nochmals genau, aber irgendwie komm ich nicht so ganz dahinter wofür ein paar Befehle stehen. Ich recherchiere weiter...
Wofür steht denn nun die erste Zeile? Ich versteh nicht genau, warum der Befehl da nun steht. Für die, die sich auskennen sicher ein Klacks - für mich im Moment ein Rätsel xD.
Da kommt man langsam mit C# zurecht und dann ärgert C einen fies.
ISR (USART_RXC_vect)
{
// Auslesen des Registers
// UDR enthält das gesendete Byte
_led = UDR;
// Ausgänge mit dem (NEGIERTEN!) Byte setzen
PORTB =~ _led;
}
Also von dem Codestück her, wenn du grade Interrupt Handling mit avr/interrupt.h machst:
AntwortenLöschenISR definiert die USART receive Interrupt Service Routine. Diese nimmt da einen Vector namens USART_RXC_vect, also einen Vector für USART - Rx Complete. Alternativ kann der Vector nach der alten Schreibweise auch so heißen: SIG_USART_RECV oder SIG_UART_RECV
Solange der Controller ATmega16, ATmega32, ATmega323 oder ATmega8 ist.
Der Aufbau sieht meist so aus:
ISR = Routinenname,
Vector = übergebener Parameter
ISR(Vector)
{
...
// Code um auf das Event zu reagieren
}
Mfg Sleepwalker