Moderadores: 51, guest2003, Renie, gpenga
T2CON = 0x34; /* timer 2 usado como baud rate generator */
TH2 = BYTE_H_TMR2;
TL2 = BYTE_L_TMR2;
RCAP2H = BYTE_H_TMR2;
RCAP2L = BYTE_L_TMR2;
#define BAUDRATE 9600
#define FREQUENCIA_CRISTAL 24000000
#define FREQ_TIMER_0 100
#define FREQ_TIMER_1 48
#define CICLOS_DE_MAQUINA 12
#define DIVIDENDO_BAUDRATE FREQUENCIA_CRISTAL
#define DIVSOR_BAUDRATE (unsigned long)((unsigned long)32*(unsigned long)BAUDRATE)
#define QUOCIENTE_BAUDRATE (unsigned int)((unsigned long)DIVIDENDO_BAUDRATE/(unsigned long)DIVSOR_BAUDRATE)
#define CARGABAUD (unsigned int)((unsigned long)65536-(unsigned long)QUOCIENTE_BAUDRATE)
#define BYTE_H_TMR2 CARGABAUD_H
#define BYTE_L_TMR2 CARGABAUD_L
#define CARGABAUD_L (char)( CARGABAUD%256 )
#define CARGABAUD_H (char)( CARGABAUD>>8 )
/*-------------------------------------------------------------------*/
TMOD = 0x11; /* Timer0:modo 1 - Timer1:modo 1 */
TCON = 0x55; /* timer 0 e 1 ativos */
T2CON = 0x34; /* timer 2 usado como baud rate generator */
SCON = 0x58; /* habilita recepcao */
/*-------------------------------------------------------------------*/
#define DIVIDENDO_TIMER (unsigned long)((unsigned long)FREQUENCIA_CRISTAL/(unsigned long)CICLOS_DE_MAQUINA)
#define DIVISOR_TIMER_0 (unsigned long)FREQ_TIMER_1
#define CARGA_TIMER_0 (unsigned int)((unsigned long)65536-(DIVIDENDO_TIMER/DIVISOR_TIMER_0))-1
#define CARGA_TIMER_0_L (char)(CARGA_TIMER_0%256)
#define CARGA_TIMER_0_H (char)(CARGA_TIMER_0>>8)
#define DIVISOR_TIMER_1 (unsigned long)FREQ_TIMER_1
#define CARGA_TIMER_1 (unsigned int)((unsigned long)65536-(DIVIDENDO_TIMER/DIVISOR_TIMER_1))-1
#define CARGA_TIMER_1_L (char)(CARGA_TIMER_0%256)
#define CARGA_TIMER_1_H (char)(CARGA_TIMER_0>>8)
/*----------------------------------------------------------------*/
#define BYTE_H_TMR0 CARGA_TIMER_0_H
#define BYTE_L_TMR0 CARGA_TIMER_0_L
#define BYTE_H_TMR1 CARGA_TIMER_1_H
#define BYTE_L_TMR1 CARGA_TIMER_1_L
#define BYTE_H_TMR2 CARGABAUD_H
#define BYTE_L_TMR2 CARGABAUD_L
//---------------------------------------------
#define _RECARGATIMER0 TH0 = BYTE_H_TMR0 ; \
TL0 = BYTE_L_TMR0 ;
#define _RECARGATIMER1 TH1 = BYTE_H_TMR1; \
TL1 = BYTE_L_TMR1;
/*----------------------------------------------------------------*/
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante