Montag, 28. März 2011

Der Fluch des Microcontrollers

Sitz grad an meinem Baby, dem Microcontroller und versuche ein Projekt bis Donnerstag fertig zu bekommen. 
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;
}

1 Kommentar:

  1. Also von dem Codestück her, wenn du grade Interrupt Handling mit avr/interrupt.h machst:

    ISR 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

    AntwortenLöschen