Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.10 KB | None | 0 0
  1. // Include Standard files
  2. #include "include/AT91SAM7X-EK.h"
  3.  
  4. #define PID2 2
  5.  
  6. //===================================== { Interruption Received char } ===================================================
  7. void char_rcv_IT(void){
  8.  
  9. }
  10.  
  11. //========================================== { Fonction d'attente } ======================================================
  12. void wait ( void )
  13. {
  14. volatile unsigned int waiting_time ;
  15. for(waiting_time = 0; waiting_time < MCKKHz*5; waiting_time++) ;
  16. }
  17.  
  18. //========================================== { Main } ======================================================
  19. int main()
  20. {
  21. int i;
  22.  
  23. //---------------------------------------------------------------------------------------------------//
  24. // INITIALISATION //
  25. //---------------------------------------------------------------------------------------------------//
  26. // Il faut activer l'horloge sur le module UART et DEBUG
  27. AT91C_BASE_PMC->PMC_PCER = (1 << ID_UART) | (1 << ID_DEBUG);
  28. // il faut définir que les broches UART_RX_PIN, UART_TX_PIN, DEBUG_TX_PIN et DEBUG_RX_PIN ne soient pas en mode PIO
  29. AT91C_BASE_PIOA->PIO_PDR = (UART_RX_PIN | UART_TX_PIN | DEBUG_TX_PIN | DEBUG_RX_PIN);
  30. // puis les attribuer au module A
  31. AT91C_BASE_PIOA->PIO_ASR = (UART_RX_PIN | UART_TX_PIN | DEBUG_TX_PIN | DEBUG_RX_PIN);
  32.  
  33. //===================================== { UART } ===================================================
  34.  
  35. // cet accès valide les RX et TX du module UART
  36. AT91C_BASE_US0->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
  37. // Initialisation des modes de l'UART
  38. AT91C_BASE_US0->US_MR = (AT91C_US_CHMODE_NORMAL | AT91C_US_USMODE_NORMAL | AT91C_US_SYNC | AT91C_US_CHRL_8_BITS);
  39. // Initialisation du debit UART
  40. int BD_UART = 115200;
  41. int CD_UART = MCK/BD_UART;
  42. AT91C_BASE_US0->US_BRGR = CD_UART;
  43.  
  44.  
  45. // ------------------------------{ Initialisation de l'AIC }--------------------------------------
  46. AT91C_BASE_AIC->AIC_IECR = (1 << PID2);
  47. AT91C_BASE_AIC->AIC_SVR[PID2] = (unsigned int)char_rcv_IT;
  48. AT91C_BASE_AIC->AIC_SMR[PID2] = 0;
  49.  
  50.  
  51. //===================================== { DEBUG } ====================================================
  52. // ------------------------------{ Initialisation du module DEBUG }--------------
  53. // cet accès valide les RX et TX du module DEBUG
  54. AT91C_BASE_DBGU->DBGU_CR = (AT91C_US_RXEN | AT91C_US_TXEN);
  55. // Initialisation des modes du module DEBUG
  56. AT91C_BASE_DBGU->DBGU_MR = (AT91C_US_CHMODE_NORMAL | AT91C_US_PAR_NONE);
  57. // Initialisation du debit DEBUG
  58. int BD_DEBUG = 200000;
  59. int CD_DEBUG = MCK / (BD_DEBUG*16);
  60. AT91C_BASE_US0->US_BRGR = CD_DEBUG;
  61.  
  62. for (;;)
  63. {
  64. char* msg = "Anass";
  65. int size = sizeof(msg);
  66. for (i = 0; i < size ; i++) {
  67. while ((AT91C_BASE_US0->US_CSR & AT91C_US_TXRDY) == 0){};
  68. AT91C_BASE_US0->US_THR = msg[i];
  69. }
  70. wait();
  71. }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement