Advertisement
Guest User

Untitled

a guest
Apr 29th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.48 KB | None | 0 0
  1. #include <targets/AT91SAM7.h>
  2. #include "lcd.h"
  3. #include "usart.h"
  4. //Definicje stałych
  5. #define SW_1 PIOB_SODR_P24
  6. #define SW_2 PIOB_SODR_P25
  7.  
  8. //wykonanie procedury opóźniającej w sekcji fast(RAM)
  9. void delay(int n) __attribute__ ((section(".fast")));
  10. void delay(int n) {//procedura opóźniająca
  11.   volatile int i;
  12.   for(i=3000*n; i>0; i--) {//pętla, która nie robi nic
  13.     __asm__("nop");//użycie wstawki asemblerowej z instrukcja nop –
  14.                //nie robi nic przez 1 cykl zegarowy
  15.   }
  16. }
  17.  
  18. int main() {
  19.   PMC_PCER=PMC_PCER_PIOB;//aktywacja kontrolera PIOB
  20.  
  21.   InitUSART0();//inicjalizacja interfejsu usart
  22.   InitLCD();//inicjalizacja LCD
  23.   LCDSettings();//ustawienie parametrów wyświetlacza
  24.   LCDClearScreen();//wstawienie do pamięci wyświetlacza czarnego ekranu  
  25.  
  26.   Backlight(BKLGHT_LCD_ON);//włączenie podświetlenia wyświetlacza
  27.  
  28.   while(1) {
  29.     //sprawdza czy na linii SW_1 występuje stan niski
  30.     if ((PIOB_PDSR & SW_1) == 0) {
  31.       write_str_USART0("1");
  32.       delay(100);
  33.     }
  34.     //sprawdza czy na linii SW_2 występuje stan niski
  35.     if ((PIOB_PDSR & SW_2) == 0) {
  36.       write_str_USART0("2");
  37.       delay(100);
  38.     }
  39.     //Odczytywanie znaku wysyłanego interfejsem usart
  40.     char a = read_char_USART0_nonstop();
  41.     //Wyświetlenie otrzymanego znaku na ekranie
  42.     if(a != 0)
  43.         LCDPutChar(a,50,0, SMALL, WHITE, BLACK);
  44.     //Wyświetlenie napisu na ekranie płytki nr 2
  45.     LCDPutStr("test plytka 2", 10, 10, LARGE, WHITE, BLACK);
  46.  
  47.   return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement