Autor Tema: Novato! Estudiando el Timer2, veo 2 valores que no conozco ¿de dónde salen?  (Leído 1154 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Novato!

  • PIC10
  • *
  • Mensajes: 6
#include <16f877.h>
#device adc=8  //Voy a utilizar el Converson Análogo Digital.
//fuses XT,NOWDT,NOLVP,NOBROWNOUT
#USE delay (clock=4000000)
#include <lcd.c>

const float escala=255;  //float quiere decir que tiene decimales.
const float d_max=2000;  //Podría utiizar cualquier número +#>

void calcula_duty(int val, float&duty)  //Tarea exclusiva. ***Lea abajo***
{
duty=(val*d_max)/escala;  //"val" cualquier valor en voltios -debido al RESvar-. La escala es 255.
                         //***Se usa cuando uno necesite calcular un valor ¿cuanta luz, voltaje, humedad, etc?***
}
void main (void)
{
int valor;
float duty;
lcd_init();
lcd_gotoxy(1,1);
lcd_putc("F=500Hz=>2ms");
lcd_gotoxy(1,2);
lcd_putc("duty=ms");
setup_ccp1(ccp_pwm);  //eN EL PUErTO CCP1
setup_timer_2(T2_DIV_BY_16,124,1);//<<---------------el 16,124 y 1--------------------------------------------------Aquí!!!!!!
setup_Adc (Adc_clock_div_32);  //Lea el puerto A y me de una división de 32.
setup_adc_ports (AN0);  //Y que lo lea el el A0.
set_adc_channel(0);  //Y me asigne un canal para que lo lea.

while (TRUE)
{valor=read_adc();  //Lea el valor de adc...
set_pwm1_duty(valor); //Y escríbalo -en "(valor)"
calcula_duty(valor,duty);  //Ese valor es el que va a calcuar con el duty
lcd_gotoxy(8,2); //Escríbalo sobre la casilla 8 de la segunda línea.
printf(lcd_putc,"%3.2f",duty);  //Escríba en la LCD un número entero de 3 cifras -150- con 2 decimales...
                                            //Y que sea correspondiente al duty.
}}

Podrían ayudarme, qué puede ser?  :shock: :shock:
Los valores están señalados arriba por una gran flecha en la linea "setup_timer_2(T2_DIV_BY_16,124,1);" son  el 16, el 124 y el 1.
Muchas gracias.
« Última modificación: 15 de Mayo de 2013, 13:54:16 por Novato! »

Desconectado man3s

  • PIC12
  • **
  • Mensajes: 69
Re: Novato! Estudiando el Timer2, veo 2 valores que no conozco ¿de dónde salen?
« Respuesta #1 en: 18 de Mayo de 2013, 14:18:45 »
Te recomendo leas la ayuda del CCS, ahi esta bro  :mrgreen::

Citar
Syntax:
 setup_timer_2 (mode, period, postscale)
 
Parameters:
 mode may be one of:

T2_DISABLED, T2_DIV_BY_1, T2_DIV_BY_4, T2_DIV_BY_16

period is a int 0-255 that determines when the clock value is reset,
postscale is a number 1-16 that determines how many timer overflows before an interrupt: (1 means once, 2 means twice, and so on).

Es para poder configurar la frecuencia y el periodo del PWM, para mas info puedes checar en el datasheet para las formulas. Saludos. :-/

EDITO:
Solo para configurar la frecuencia, el 3er parametro es despreciado en modo PWM.
« Última modificación: 18 de Mayo de 2013, 14:20:55 por man3s »