1 /* 2 * File: led.c 3 * Author: jose 4 * 5 * Created on 18 de diciembre de 2016, 18:59 6 */ 7 #pragma config FOSC = XT // Oscillator Selection bits (XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN) 8 #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) 9 #pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT disabled) 10 #pragma config MCLRE = OFF // RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is MCLR) 11 #pragma config BOREN = OFF // Brown-out Detect Enable bit (BOD disabled) 12 #pragma config LVP = OFF // Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming) 13 #pragma config CPD = OFF // Data EE Memory Code Protection bit (Data memory code protection off) 14 #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off) 15 #define _XTAL_FREQ 4000000 16 17 #include <stdio.h> 18 #include <stdlib.h> 19 #include <xc.h> 20 21 void UART_tx(char dato); 22 char UART_rx(); 23 24 //------------------------------------------------------------------------------ 25 void interrupt Interrupciones(){ 26 char dato; 27 28 GIE = 0; 29 if(RCIF == 1){ 30 RB0 = 1; 31 dato = UART_rx(); 32 UART_tx(dato); 33 } 34 35 RB0 = 0; 36 GIE = 1; 37 } 38 39 40 /* 41 * Funciones 42 */ 43 void UART_Config(const long int baudrate) 44 { 45 unsigned int X_SPBRG=0; 46 47 X_SPBRG = _XTAL_FREQ /(16*(baudrate+1)); 48 SPBRG = X_SPBRG; 49 BRGH = 1; 50 TXEN = 1; 51 SPEN = 1; 52 TX9 = 0; 53 RX9 = 0; 54 SYNC = 0; 55 CREN = 1; 56 } 57 58 void UART_tx(char dato) 59 { 60 while (TXIF==0); 61 TXREG=dato; 62 } 63 64 char UART_rx(){ 65 while (RCIF==0 && OERR==0); 66 return RCREG; 67 } 68 69 void print_uart(char *texto) 70 { 71 int i; 72 for(i=0;texto[i]!='\0';i++) 73 UART_tx(texto[i]); 74 } 75 76 void UART_Interrupciones(){ 77 RCIE=1; 78 PEIE=1; 79 GIE=1; 80 } 81 /*------------------------------------------------------------------------------ 82 * Programa principal 83 */ 84 void main(void) { 85 char dato; 86 TRISB = 0b00000010; 87 88 UART_Config(9600); 89 UART_Interrupciones(); 90 91 while(1); 92 93 } 94 95-->
lunes, 19 de diciembre de 2016
Ejemplo con el compilador XC8 PIC16F628A UART
martes, 1 de noviembre de 2016
Reparando un analizador de red CVM 96 - Parte 1
El siguiente analizador tenia los siguientes problemas :
- No visualizaba medición de I
- Sin comunican RS485
Suscribirse a:
Entradas (Atom)
IRC
#freenode->#usljujuy