Muy buenas tardes a todos!
tengo ya algunos dias con dolor de cabeza por no poder poner los valores en pantallla lcd de un encoder incremental decremental,
no soy un experto programando y la verdad no encuentro alguna manera de hacer que este proyecto funcione, alguien tendra
idea del eror que estoy cometiendo? o que es lo que puede fallar?
se que el programa funciona, porque lo he probado con leds, pero al momento de colocarle los codigos para lcd
deja de trabajar y no me despliega absolutamente nada.
espero alguien me pueda ayudar!
anexo el codigo
#include <P18F2550.h> //processor specific variable definitions
#include <delays.h>
#include <xlcd.h>
#pragma config PLLDIV = 4 //Divide by 4 (16 MHz oscillator input)
#pragma config CPUDIV = OSC1_PLL2 //[Primary Oscillator Src: /1][96 MHz PLL Src: /2]
#pragma config USBDIV = 2 //USB clock source comes from the 96 MHz PLL divided by 2
#pragma config FOSC = HS //HS oscillator (HS)
#pragma config FCMEN = OFF //Fail-Safe Clock Monitor disabled
#pragma config IESO = OFF //Oscillator Switchover mode disabled
#pragma config PWRT = OFF //PWRT disabled
#pragma config BOR = OFF //Brown-out Reset disabled in hardware and software
#pragma config BORV = 0 //Maximum setting
#pragma config VREGEN = OFF //USB voltage regulator disabled
#pragma config WDT = OFF //WDT disabled (control is placed on the SWDTEN bit)
#pragma config WDTPS = 32768 // 1:32768
#pragma config CCP2MX = ON // CCP2 input/output is multiplexed with RC1
#pragma config PBADEN = OFF //PORTB<4:0> pins are configured as digital I/O on Reset
#pragma config LPT1OSC = OFF //Timer1 configured for higher power operation
#pragma config MCLRE = ON //MCLR pin enabled; RE3 input pin disabled
#pragma config STVREN = ON //Stack full/underflow will cause Reset
#pragma config LVP = OFF //Single-Supply ICSP disabled
#pragma config XINST = OFF //Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
#pragma config DEBUG = OFF //Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
#pragma config CP0 = OFF //PROTECCION DE CODIGO
#pragma config CP1 = OFF
#pragma config CP2 = OFF
#pragma config CP3 = OFF
#pragma config CPB = OFF
#pragma config CPD = OFF
#pragma config WRT0 = OFF //PROTECCION DE ESCRITURA
#pragma config WRT1 = OFF
#pragma config WRT2 = OFF
#pragma config WRT3 = OFF
#pragma config WRTC = OFF
#pragma config WRTB = OFF
#pragma config WRTD = OFF
#pragma config EBTR0 = OFF //PROTECCION DE TABLA DE LECTURA
#pragma config EBTR1 = OFF
#pragma config EBTR2 = OFF
#pragma config EBTR3 = OFF
#pragma config EBTRB = OFF
void DelayFor18TCY(void)
{ Delay100TCYx(20);
return;
}
void DelayPORXLCD(void)
{ Delay10KTCYx(10);
return;
}
void DelayXLCD(void)
{ Delay10KTCYx(5);
return;
}
char palabra[] = "Pardos";
char palabra1[] = "ALEXIS";
int a=0;
int b;
char enc; // Se almacenará el valor actual de RA0 y RA1, hasta la siguiente comparación.
char aux; // Se almacenará el valor anterior de RA0 y RA1, hasta la siguiente comparación.
unsigned char ILIM;//incrementa o decrementa mi corriente maxima
void main(void)
{
TRISA= 0b11111111;
TRISB= 0b00000000;
ADCON1 = 0X0F;
CMCON = 0X07;
Delay10KTCYx(200);
OpenXLCD(FOUR_BIT & LINES_5X7);
while (BusyXLCD());
WriteCmdXLCD(0x0E);
while (BusyXLCD());
WriteCmdXLCD(0x28);
while (BusyXLCD());
WriteCmdXLCD(0x06);
while (BusyXLCD());
WriteCmdXLCD(0x02);
while (BusyXLCD());
WriteCmdXLCD(0x01);
Delay10KTCYx(5);
while(1)
{
//--------AQUI SE LEE EL ENCODER -----------------------------------//
aux=enc; // Igualamos 'AUX' y 'ENC' para luego comparar cuando cambie 'ENC'.
enc=PORTA & 3; // Aislamos RA0 y RA1 como un número de 2 bits y se carga en la variable 'ENC'.
if ((aux==2)&&(enc==3))// Si en la comparación hay flanco de subida,
{
ILIM++; // entonces incrementar una unidad el valor de X.
WriteCmdXLCD(0b10000101);
while (BusyXLCD());
putsXLCD("Vuelta ILIM");
return;
}
if ((aux==3)&&(enc==2))// Si en la comparación hay flanco de bajada,
{
ILIM--;
WriteCmdXLCD(0b10000101);
while (BusyXLCD());
putsXLCD("Vuelta ILIM2");
return; // entonces decrementar una unidad el valor de X.
}
//--------------------SE DEJO DE LEER EL ENCODER---------//
}
}