Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <pic18.h>
- /* Modelo OSI*/
- //Envia um caracter em modo bloqueante
- //Define para onde os printfs sao enviados
- void putch(char c)
- {
- while(!TRMT){};
- TXREG=c;
- return;
- }
- //Recebe um caracter em modo bloqueante
- char getch(void)
- {
- if(OERR==1)
- { // If overrun error
- CREN=0; // Restart USART
- CREN=1; //
- }
- while(!RCIF);//está a espera que o bit mude
- return RCREG;
- }
- //Configuraçao da porta serie exemplo
- int Init_Usart(void)
- {
- SPEN=1; /* Serial port enabled */
- SYNC=0; /* Select asynch mode */
- RX9=0; /* 8 bit reception*/
- TX9=0; /* 8 bit tx (no parity) */
- CREN=1 ; /* Continuous receives */
- ADDEN=0; /* No address detection */
- BRGH=0; /* High speed mode */
- BRG16 = 0; /* 8 bit operation */
- SPBRG=31; /* Set baudrate to 57600/115200 (SPBRG=21/10 for br=57600/115200) */
- TRISC7=1; /* Set RC7 pin as input (Rx data) */
- TRISC6=1; /* Set RC6 pin as output (Tx data) */
- TXEN = 1; /* Enable Transmissions */
- }
- void main(void)
- {
- TXEN=0; //transmissoes deligadas
- CREN=0; //desligar receção
- SPEN=0; //porta serie desligada
- Init_Usart();
- GIE=0; //desligar interrupcoes globais
- IPEN=0; //prioridades
- PEIE=1; //interrupçoes de perifericos
- RCIE=1; //interrupçoes da receção
- RCIF=0; // flag da receçao
- GIE=1; //interrupçoes globais ligadas
- while(1)
- {
- /*putch('B');
- putch('G');
- putch('T');
- putch('O');
- putch('@');
- putch('L');
- putch('N');
- putch('R');
- putch('*');*/
- TXREG=65;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement