Advertisement
Guest User

Untitled

a guest
Feb 26th, 2015
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.68 KB | None | 0 0
  1. #include <avr/io.h>
  2. #include <inttypes.h>
  3. #define F_CPU 3686400UL
  4. #define BAUDRATE 9600
  5. #define UBRR ((F_CPU/(BAUDRATE*16UL))-1)
  6.      
  7. void config_uart()  //konfiguráció
  8.     {
  9.        UBRR0H = (UBRR>>8);      // UBRR felso 8 bitjenek betoltese az UBRRH regiszterbe
  10.            UBRR0L = UBRR;           // UBRR also 8 bitjenek betoltese az UBRRL regiszterbe
  11.        UCSR0B = (1 << RXEN0)|(1 << TXEN0); //transfer és receive engedélyezése      
  12.            UCSR0C = (0<<UMSEL01)|(0<<UMSEL00)|(0<<UPM01)|(0<<UPM00)|(0<<USBS0)|(0<<UCSZ02)|(1<<UCSZ01)|(1<<UCSZ00)|(0<<UCPOL0);
  13.     }   // Aszinkron mod, 8 Adat Bit, Nincs Paritas Bit, 1 Stop Bit
  14.  
  15. void send(char data)        //adatküldés
  16.     {
  17.        while(!(UCSR0A & (1<<UDRE0)) ); // Varakozas amig az ado kesz nem áll az adatküldésre
  18.        UDR0=data;                       // Az ado kesz az adatkuldesre, kuldendo adat írása a kimeno pufferbe
  19.     }
  20.  
  21. char receive()          //adatfogadás
  22.     {
  23.        while(!(UCSR0A & (1<<RXC0)) ); // várunk amig nincs uj bejovo adat
  24.        return UDR0;             //van beerkezett adat, amit kiolvasunk a pufferbol
  25.     }
  26. //-----------------------------------------------------------------------------------------------------------------
  27.      
  28. int main(void)
  29. {
  30.         DDRC=0xff; //data register port c kimenet
  31.         char adat;
  32.      
  33.        config_uart();
  34.      
  35.        while(1)
  36.        {
  37.           adat=receive();   //adat változóba kerül a fogadott adat
  38.  
  39.           if(adat=='a') //ha 'a' karakter érkezik, akor
  40.             {
  41.                 PORTC=0xff; //portc magas szinten lesz és
  42.                 send(adat); //visszaküldi adat értékét UART-on
  43.             }
  44.          else
  45.             {
  46.                 PORTC=0x00; //más esetben LED kialszik
  47.             }
  48.        }
  49.      return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement