arquitetura exp 8

Upload: matheus-telles-barreto

Post on 12-Oct-2015

5 views

Category:

Documents


0 download

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