[Update: El 4550 ya es un poco viejo. ¿No quieres echarle un ojo al 45K50?]
// Rodolfo E. Escobar U.
// Facultad de Ciencias de la Electrónica, BUAP
// LCD module connections
sbit LCD_RS at LATB4_bit;
sbit LCD_EN at LATB5_bit;
sbit LCD_D4 at LATB0_bit;
sbit LCD_D5 at LATB1_bit;
sbit LCD_D6 at LATB2_bit;
sbit LCD_D7 at LATB3_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
int velocity = 0;
int duty = 0;
char txt[6] = "0";
void main() {
ADCON1 |= 0x0F;
CMCON |= 7;
PORTC = 0; // sets port c to all 0
TRISC = 0; //configures port c as output port
PWM1_Init (5000); // sets pwm frequency to 5000Hz
PWM1_Start(); // starts pwm1 peripheral
Lcd_Init(); // Inicializa LCD
Lcd_Cmd(_Lcd_CLEAR); // Limpiar display
Lcd_Cmd(_Lcd_CURSOR_OFF); // Desactivar cursor
while(1)
{
wordToStr(velocity, txt);
Lcd_Out(1,4,"Velocidad");
Lcd_Out(2,7,Ltrim(txt));
Lcd_Out(2,10,"%");
if (PORTA.F0 == 1){ // Incremento de PWM
Lcd_Out(2,7," ");
velocity = velocity + 20;
duty = duty + 51;
if (duty >= 255) duty = 255;
if (velocity >= 100) velocity = 100;
}
if (PORTA.F1 == 1){ // Decremento de PWM
Lcd_Out(2,7," ");
velocity = velocity - 20;
duty = duty - 51;
if (duty <= 0) duty = 0;
if (velocity <= 0) velocity = 0;
}
if (PORTA.F2 == 1){ // Detener
duty = 0;
velocity = 0;
Lcd_Out(2,7," ");
}
PWM1_Set_Duty(duty); // Establece ciclo de trabajo
Delay_ms(10); // 10 msec delay
}
}
8 comentarios:
por que ala hora de copilarlo me sale que EXTRAVIADO
¿Podrías ser más especifico con tu error? ¿Qué te dice el compilador exactamente?
Saludos
saludos en que que programa realizaste el codigo, yo uso pic c compiler y no compila me da muchos errores.
mikroC, lo menciono en el título.
Saludos.
hola amigo me podrias decir como configuraste tus fuses en mikroc para que funcione con oscilador interno porfa
Aquí lo detallan bastante bien: http://juliozebadua.blogspot.mx/2012/10/configuracion-de-fuses-pic18f4550-en.html
un excelente trabajo...tengo algunas dudas ojalá puedas ayudarme...
porque no se declara el puerto A?
a que frecuencia estas trabajando en este programa?
muchas gracias
Me gustaria que hicieras uno en proteus :)
Publicar un comentario