arquitetura exp 8
TRANSCRIPT
Universidade Federal de Campina Grande
Universidade Federal de Campina Grande
Laboratrio de Arquitetura de Sistemas Digitais
Aluno: Antonio Isaac Luna de Lacerda Mat: 20521472Turma: 04Preparao 8 experimento1. SETUP_TIMER_0(mode): Configura o timer0;mode:
RTCC_INTERNAL: timer0 com clock interno.
RTCC_EXT_L_TO_L/H: timer0 sensvel a borda de descida/ subida.
RTCC_DIV_2/4/8/16/32/64/128/256: Pr escalonamento dividindo por 2/4/32/64/128/256.
SETUP_TIMER_1(mode): Configura o timer1.
Mode:
T1_DISABLED: Desabilita o timer1.
T1_INTERNAL: timer1 com clock interno.
T1_EXTERNAL: timer1 com clock externo assncrono.T1_EXTERNAL_SYNC: timer1 com clock externo sincrono.
T1_CLK_OUT: Ativa a sada exterma de clock.
T1_DIV_BY_1/2/4/8: pr-escalonador do timer1 dividido por 1/2/4/8.
SETUP_TIMER_2(mode, period, postscale): configure o timer2.
mode:T2_DISABLED: desabilita o timer2.
T2_DIV_1/4/16: timer2 ligado com pr-escalonador dividindo por 1/4/16.
SET_TIMERx (value): modifica o contedo de um timer interno.
GET_TIMERx (): l o contedo de um timer interno.
SETUP_CCPX (mode): configura o funcionamento do da interrupo.
mode:
CCP_OFF: mdulo CCP desligado.CCP_CAPTURE_FE/RE: captura na borda de descida/subida do sinal.CCP_CAPTURE_DIV_4/16: captura a cada 4/16 borda de subida do sinal.CCP_COMPARE_SET_ON_MATCH: modo de comparao, seta pino CCPx.CCP_COMPARE_CLR_ON_MATCH: modo comparao, apaga pino CCPx.CCP_COMPARE_INT: modo de comparao com gerao de interupao.CCP_COMPARE_RESET_TIMER: mode de comaparao com reset do timer1 ou timer3.CCP_PWM: configure o modo de gerao de sinal PWM.
SET_PWMX_DUTY (value): configura o ciclo ativo do mdulo no modo PWM.RESET_WDT (): reinicia a contagem do watchdog.
SETUP_WDT (mode): configura o funcionamento do watchdog.
mode:
WDT_18/36/72/144/288/576/1152/2304MS: pr-escalonador ligado ao watchdog, timeout de 18/36/72/144/288/576/1152/2304 ms.WDT_ON/OFF: liga/desliga o watchdog.DISABLE_INTERRUPTS (value): desabilita uma interrupo.ENABLE_INTERRUPTS (level): habilita uma interrupo.level:
GLOBAL: habilitao global de interrupes.
INT_RTCC: estouro de contagem do timer0.
INT_RB: mudana na porta B(RB4-RB7).INT_EXT: interrupo externa RB0/INT.
INT_AD: converso A/D completa.
INT_TBE: buffer de transmisso vazio. INT_RDA: recepo de dados na USART.INT_TIMER1: estouro de contagem do timer1.
INT_TIMER2: estouro de contagem do timer2.
INT_CCP1: mdulo CCP1.
INT_CCP2: modulo CCP2.
INT_SSP: atividade de comunicao SPI ou I2C.INT_PSP: chegada de dados mdulo PSP.INT_BUSCOL: coliso de barramento.
INT_EEPROM: escrita na EEPROM.
INT_TIMER0: estouro de contagem do timer0.
2.
3.#int_RTCC
RTCC_isr()
{
if (cont==8) {
output_bit( PIN_B0, !input(PIN_B0));
cont=1;
}
else cont++;
}
#int_TIMER1
TIMER1_isr()
{
if (cont1==2) {
output_bit( PIN_B1, !input(PIN_B1));
cont1=1;
}
else cont++;
}
#int_TIMER2
TIMER2_isr()
{
if (cont2==4) {
output_bit( PIN_B2, !input(PIN_B2));
cont2=1;
}
else cont2++;
}
int cont=1;
int cont1=1;
int cont2=1;
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_256);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
setup_timer_2(T2_DIV_BY_16,255,16);
enable_interrupts(INT_RTCC);
enable_interrupts(INT_TIMER1);
enable_interrupts(INT_TIMER2);
enable_interrupts(GLOBAL);
while(1);
}4.#int_CCP1
CCP1_isr()
{
cont++;
OUTPUT_D(cont);
}
int cont=0;
void main()
{
enable_interrupts(INT_CCP1);
enable_interrupts(GLOBAL);
setup_ccp1(CCP_CAPTURE_FE);
while(1);
}5.
#int_CCP2
CCP2_isr()
{
cont++;
int cont_h=make8(cont,1);
int cont_l=make8(cont,0);
cont_l = CCPR2L;
cont_h = CCPR2H;
output_bit(PIN_B0,a);
a=!a;
}
int1 a=0;
int1 led;
long cont;
void main()
{
enable_interrupts(INT_CCP2);
enable_interrupts(GLOBAL);
setup_ccp2(CCP_CAPTURE_FE);
while(1);
}6.
#int_TIMER2
TIMER2_isr()
{
cont++;
ouput_b(cont);
}
#int_CCP1
CCP1_isr()
{
restart_wdt();
}
int cont=0;
void main()
{
setup_timer_0(RTCC_INTERNAL);setup_wdt(WDT_2304MS);
setup_timer_2(T2_DIV_BY_16,255,16);
setup_timer_1(T1_DISABLED);
enable_interrupts(INT_TIMER2);
enable_interrupts(INT_CCP1);
enable_interrupts(GLOBAL);
setup_ccp1(CCP_CAPTURE_FE);
}7.#device adc=8
#use delay(clock=4000000)
#fuses NOWDT,RC, NOPUT, NOPROTECT, BROWNOUT, LVP, NOCPD, NOWRT, NODEBUG
#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)void main() {
setup_psp(PSP_DISABLED);setup_spi(FALSE);setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
setup_timer_2(T2_DIV_BY_16,31,1);setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);setup_ccp1(CCP_PWM);enable_interrupts(GLOBAL);set_pwm_duty(32);
while(1);
}_1235805053.unknown
_1235813974.unknown