Advertisement
Guest User

Untitled

a guest
Oct 18th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.82 KB | None | 0 0
  1.  
  2. // Include Standard files
  3. #include "board.h"
  4.  
  5. //*--------------------------------------------------------------------------------------
  6. //* Function Name       : Main
  7. //* Object              : Software entry point
  8. //* Input Parameters    : none.
  9. //* Output Parameters   : none.
  10. //*--------------------------------------------------------------------------------------
  11. //int przesunWLewo (int  wart){
  12. //  return ((wart << 1) & 255) | ((wart>>7)); //int ma 32 bity i 255 to 11111111,  
  13. //}
  14.  
  15. int przesunWLewo (int ile){
  16.   *AT91C_PIOA_OWER = AT91C_PIO_PA0| AT91C_PIO_PA1| AT91C_PIO_PA2| AT91C_PIO_PA3| AT91C_PIO_PA4| AT91C_PIO_PA5| AT91C_PIO_PA6| AT91C_PIO_PA7;
  17.   return ((ile<<1)&255)|((ile>>7));
  18. }
  19. int b (int ile){
  20.   //fkcja board_MCK = 48 mln - taktowanie master clocka, pusty for 4 takty - zeby odpowiadalo sekundzie
  21.   *AT91C_PIOA_OWER = AT91C_PIO_PA0| AT91C_PIO_PA1| AT91C_PIO_PA2| AT91C_PIO_PA3| AT91C_PIO_PA4| AT91C_PIO_PA5| AT91C_PIO_PA6| AT91C_PIO_PA7;
  22.   int left = ile & 0xf0;
  23.   int right = ile & 0x0f;
  24.   return ( (left>>1 & 0xf0) | (left <<3 & 0xf0)) | ((right<<1 & 0x0f) | (right >>3 & 0x0f));
  25. }
  26.  
  27.  
  28.  
  29. int main()
  30. {
  31.   *AT91C_PMC_PCER=1<<AT91C_ID_PIOA;
  32.     *AT91C_PIOA_PER=AT91C_PIO_PA0| AT91C_PIO_PA1| AT91C_PIO_PA2| AT91C_PIO_PA3| AT91C_PIO_PA4| AT91C_PIO_PA5| AT91C_PIO_PA6| AT91C_PIO_PA7;
  33.     *AT91C_PIOA_OER=AT91C_PIO_PA0| AT91C_PIO_PA1| AT91C_PIO_PA2| AT91C_PIO_PA3| AT91C_PIO_PA4| AT91C_PIO_PA5| AT91C_PIO_PA6| AT91C_PIO_PA7;
  34.     int sekunda = 2000;
  35.     int g = 129;
  36.       int y = sekunda*BOARD_MCK*0.001/4;
  37.    
  38.     for(int i=1;1<16;i++){
  39.       g=b(g);
  40.        *AT91C_PIOA_ODSR=g;
  41.        for (int l=0;l<y;l++){
  42.     }
  43.          
  44.     }
  45.  
  46.  
  47.   return 0;
  48. }
  49. /*
  50. int main()
  51. {//* Begin
  52.    
  53.   *AT91C_PMC_PCER=1<<AT91C_ID_PIOA; //w³aczanie zegara dla PIOA
  54.   *AT91C_PIOA_PER=(AT91C_PIO_PA0); //W£¥CZANIE PORTU
  55.   *AT91C_PIOA_OER=(AT91C_PIO_PA0); //W£¥CZENIE PORTU NA WYJŒCIE
  56.  
  57.   //4a
  58.   *AT91C_PIOA_SODR = AT91C_PIO_PA0;
  59.   *AT91C_PIOA_CODR = AT91C_PIO_PA0;
  60.   //4b
  61.   *AT91C_PIOA_PER=(AT91C_PIO_PA1);
  62.   *AT91C_PIOA_OER=(AT91C_PIO_PA1);
  63.   *AT91C_PIOA_CODR = AT91C_PIO_PA1;
  64.  
  65.   *AT91C_PIOA_SODR = AT91C_PIO_PA0;
  66.  
  67.   //synchronicznie
  68.   *AT91C_PIOA_OWER = AT91C_PIO_PA0| AT91C_PIO_PA1; //output write enable - zezwolenie na wpis do rejestru odsr wymaga ustawienia tam pol
  69.   for(int i=0;i<3;i++){ //i= ile razy switch
  70.   *AT91C_PIOA_ODSR^=AT91C_PIO_PA0 | AT91C_PIO_PA1; //po lewej xoruje z tym po prawej
  71.   }
  72.  
  73.   //4c
  74.   *AT91C_PIOA_PER = AT91C_PIO_PA2;
  75.   *AT91C_PIOA_ODR = AT91C_PIO_PA2;
  76.   *AT91C_PIOA_ODR = AT91C_PIO_PA4;
  77.   while(1){ //1 bo while true - nigdy nie wyjdzie z petli
  78.   if(!(*AT91C_PIOA_PDSR & AT91C_PIO_PA4))  //jesli jest wcisniete
  79.     *AT91C_PIOA_CODR = AT91C_PIO_PA0; //zapala diode
  80.   else
  81.       *AT91C_PIOA_SODR = AT91C_PIO_PA0; // w przecwnym razie gasi
  82.  
  83.   }
  84.   return 0;
  85. }//* End
  86. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement