Advertisement
Guest User

Untitled

a guest
May 24th, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. #include <pic18.h>
  2. /* Modelo OSI*/
  3.  
  4. //Envia um caracter em modo bloqueante
  5. //Define para onde os printfs sao enviados
  6.  
  7. void putch(char c)
  8. {
  9. while(!TRMT){};
  10. TXREG=c;
  11. return;
  12. }
  13.  
  14. //Recebe um caracter em modo bloqueante
  15. char getch(void)
  16. {
  17. if(OERR==1)
  18. { // If overrun error
  19. CREN=0; // Restart USART
  20. CREN=1; //
  21. }
  22. while(!RCIF);//está a espera que o bit mude
  23.  
  24. return RCREG;
  25. }
  26.  
  27.  
  28. //Configuraçao da porta serie exemplo
  29. int Init_Usart(void)
  30. {
  31. SPEN=1; /* Serial port enabled */
  32.  
  33. SYNC=0; /* Select asynch mode */
  34. RX9=0; /* 8 bit reception*/
  35. TX9=0; /* 8 bit tx (no parity) */
  36. CREN=1 ; /* Continuous receives */
  37. ADDEN=0; /* No address detection */
  38.  
  39. BRGH=0; /* High speed mode */
  40. BRG16 = 0; /* 8 bit operation */
  41. SPBRG=31; /* Set baudrate to 57600/115200 (SPBRG=21/10 for br=57600/115200) */
  42.  
  43. TRISC7=1; /* Set RC7 pin as input (Rx data) */
  44. TRISC6=1; /* Set RC6 pin as output (Tx data) */
  45.  
  46. TXEN = 1; /* Enable Transmissions */
  47. }
  48.  
  49. void main(void)
  50. {
  51. TXEN=0; //transmissoes deligadas
  52. CREN=0; //desligar receção
  53. SPEN=0; //porta serie desligada
  54.  
  55. Init_Usart();
  56.  
  57. GIE=0; //desligar interrupcoes globais
  58. IPEN=0; //prioridades
  59. PEIE=1; //interrupçoes de perifericos
  60. RCIE=1; //interrupçoes da receção
  61. RCIF=0; // flag da receçao
  62. GIE=1; //interrupçoes globais ligadas
  63.  
  64. while(1)
  65. {
  66. /*putch('B');
  67. putch('G');
  68. putch('T');
  69. putch('O');
  70. putch('@');
  71. putch('L');
  72. putch('N');
  73. putch('R');
  74. putch('*');*/
  75.  
  76. TXREG=65;
  77. }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement