Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define F_CPU 8000000UL // ustawienie częstotliwości zegara – proponowane 8MHz
- #define BAUDRATE 9600 //określenie prędkości przesyłania
- #define BAUD_PRESCALLER (((F_CPU / (BAUDRATE * 16UL))) - 1) //wyznaczenie zawartości rejestru UBRR ze wzoru
- #include <avr/io.h>
- #include <avr/interrupt.h>
- #include <util/delay.h>
- char tekst[] = "Mikolaj Marcinkowski";
- void USART_Init(void)
- {
- /* ustawienie baud */
- UBRRH = (uint8_t)(BAUD_PRESCALLER>>8);
- UBRRL = (uint8_t)(BAUD_PRESCALLER);
- //konfiguracja (baud rate = 9600, ramka: 8 bitów danych, brak kontroli parzystości, 1 bit stopu)
- UCSRA=0;
- UCSRC=(1<<URSEL) | (1<<UCSZ0) | (1<<UCSZ1);
- UCSRB=(1<<RXEN) | (1<<TXEN);
- }
- void USART_putchar(unsigned char data)
- {
- while (!(UCSRA & (1<<UDRE)));
- UDR = data;
- }
- char tekst_ok[] = "Nacisnieto odpowiedni przycisk.";
- char tekst_nieok[] = "Nacisnieto zly przycisk.";
- char znak = 'h';
- unsigned char UART_RxChar()
- {
- while ((UCSRA & (1 << RXC)) == 0);/* Wait till data is received */
- return(UDR); /* Return the byte */
- }
- void napis(char *text,int n)
- {
- uint8_t i;
- for (i=0;i<n;i++)
- USART_putchar(text[i]);
- USART_putchar('\r');
- USART_putchar('\n'); // nowa linia
- }
- void switchNum(c) {
- PORTA = 2 ^ (c - 48);
- if (c == 'c') PORTA = 0x00;
- if (c == 's') PORTA = 0xFF;
- }
- int main(void)
- {
- uint8_t i;
- unsigned char c;
- DDRA |= 0xFF;
- PORTA |= 0x00;
- _delay_ms(100);
- USART_Init();
- napis(tekst, sizeof(tekst));
- while (1) {
- c=UART_RxChar();/*
- if (c==znak)
- napis(tekst_ok,sizeof(tekst_ok));
- else
- napis(tekst_nieok,sizeof(tekst_nieok));*/
- switchNum(c);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement