Hola amigos
Tengo el codigo que maneja PWM y lo muestra en LCD hasta hay voy bien, pero se me solicito en la practica mostral tambien las RPM.
para ello frecuencia=1/T y RPM=Frecuencia*60
Amigos del foro como hago para que este codigo me muestre las RPM ........agradesco mucho su correciones
#include <16F877.h>
#fuses XT, NOWDT, NOPUT, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NOWRT, NODEBUG
#use delay(clock=4000000)
#use fast_io(a)
#define use_portb_lcd TRUE //definir portb lcd
#define LCD_ENABLE_PIN PIN_B2
#define LCD_RS_PIN PIN_B0
#define LCD_RW_PIN PIN_B1
#define LCD_DATA4 PIN_B4
#define LCD_DATA5 PIN_B5
#define LCD_DATA6 PIN_B6
#define LCD_DATA7 PIN_B7
#include <lcd.c> //libreria manejo lcd
void main()
{
int8 duty = 127; // Iniciar a la mitad el ciclo activo del PWM
int8 frecuencia,RPM;
setup_ccp1(CCP_PWM);
setup_timer_2(T2_DIV_BY_16, 124, 1);
setup_ccp1(CCP_PWM);
setup_adc_ports(NO_ANALOGS);
set_tris_d(0x0F);
lcd_init();
while (true)
{
RPM=(1/duty)*60;
if(input_state(PIN_D1)==1)
{
duty ++;
delay_ms(50);
if (duty >=245){duty = 245;} // No permitir que duty supere 245
}
if (input_state(PIN_D2)==1)
{
duty --;
delay_ms(50);
if (duty == 255){duty = 0;} // No permitir el desborde del conteo
}
RPM=(1/duty)*60;
lcd_gotoxy(1,1);
printf(lcd_putc,"DIGITAL: %03u",duty);
lcd_gotoxy(1,2);
printf(lcd_putc,"RPM: %03u",RPM);
set_pwm1_duty(duty/2);
}
}