Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Microcontroladores Pregutnas Timers
Microcontroladores Pregutnas Timers
RESPUESTA
El dsPIC30F4013 tiene 5 módulos de temporizador de 16 bits. Cada módulo contiene
Los siguientes registrós:
Cada módulo temporizador también tiene también los bits asociados para el control de
interrupción
Que utilizaremos más adelante en la sección de interrupción y éstos son:
TxIE: bit de control de habilitación de interrupción,
TxIF - bit de estado de indicador de interrupción,
TxIP <2: 0> - tres bits de control de prioridad de interrupción (en la interrupción
Registrar IPCx).
TCS (TxCON <1>): Bit de control de la fuente del reloj del temporizador
TSYNC (T1CON <2>): Bit de control del temporizador SYNChronizatio (Tipo A Base
de tiempo solamente)
TGATE (TxCON <6>): Bit de control del temporizador GATE
Los temporizadores están activados o desactivados mediante el control TON (TxCON
<15>)
Observe también que SOLAMENTE la base de tiempo de tipo A (Temporizador 1)
trabaja en Modo de reloj asíncrono.
6.
Se generar una señal de onda cuadrada de 1 KHz en el pin RF0 de PORTD del
dsPIC30F4013 con reloj de 120 MHz. Utilizar el Temporizador1 (tipo A) para generar
esta señal.
Calcular los valores de PR1 y TCKPS
Solución
T = 1 / f = 1/1000 = 1 mS Tiempo de retardo = T / 2 = 0,5 mS
R2
10k
U1
1 40
MCLR AVDD
2 39
RB0 AVss
3 38
RB1 RB9
4 37 1 ms
RB2 RB10
5 36
RB3 RB11
6 35
RB4 RB12
7 34
RB5 RD0
8 33
RB6 RD1
9 32
RB7 VDD
10 31
RB8 VSS
11 30
VDD RF0
12 29
VSS RF1
13 28
OSC1/CLKI RF4
14
OSC2/RC15 RF5
27 D1
15 26 LED
RC13 RF2/RX
16 25
RC14 RF3/TX
17 24
INT0/RA11 RF6
18
INT2/RD9 INT1/RD8
23 R1
19 22 10k
RD3 RD2
20 21
VSS VDD
DPIC30F4011
7.
Escribir una secuencia de instrucciones para configurar el temporizador para generar la
onda cuadrada del ejemplo 06
Solución
TRISFbits.TRISF0 = 0; // Configurar el puerto RE0 para que se emita
PR1 = 15151; // establecer PR1 para 0,5 mS
T1CONbits.TSIDL = 0; // apagado en modo inactivo
T1CONbits.TCS = 0; // utilizar reloj interno Tcy
T1CONbits.TCKPS = 0; // prescalar 1: 1
T1CONbits.TGATE = 0; // sin operación cerrada
T1CONbits.TON = 1; // encender el temporizador
8. Problema:
Repita los dos ejemplos anteriores( 6 y 7) para una aplicación para genenrar una onda
cuadrada con frecuencia 8 KHz
while(1) {
PORTEbits.RE0 = 1;
IFS0bits.T1IF = 0; // limpiar timer1 flag
While (! IFS0bits.T1IF) // espera mientras el temporizador1 no ha terminado
;
PORTEbits.RE0 = 0;
IFS0bits.T1IF = 0; // limpiar timer1 flag
While (! IFS0bits.T1IF) // espera mientras el temporizador1 no ha terminado
}
}