Hola os comento mi proble a ver si alguien me puede echar un cable, mi idea es hacer un menu, segun las teclas que pulse en el pc recibir un mensaje u otro.
Mi idea del menu seria
PULSA 1 PARA CONFIGURAR EL PWM1>>pulsa 3 para pwm al 10%
>>pulsa 4 para pwm al 20%
"
"
"
PULSA 2 PARA CONFIGURAR EL PWM2>>>
esa era mi intencion pero me encuentro con que si pulso el 2 dentro ya del menu 1 se sale fuera al menu 2
os dejo el codigo para ver si alguien me puede ayudar, la estructura supongo que no estara bien porque no consigo que haga lo que yo quiero.
#include <usart.h>
#include<stdio.h>
#include<pwm.h>
#include<timers.h>
#pragma config FOSC = XT_XT,FCMEN = OFF,IESO = OFF, CPUDIV = OSC1_PLL2
#pragma config PWRT = ON,BOR = OFF,BORV = 0
#pragma config WDT = OFF,WDTPS = 32768
#pragma config MCLRE = ON,LPT1OSC = OFF,PBADEN = OFF,CCP2MX = OFF
#pragma config STVREN = OFF,LVP = OFF,XINST = OFF,DEBUG = OFF
#pragma config CP0 = ON,CP1 = ON,CP2 = ON
#pragma config CPB = ON,CPD = ON
#pragma config WRT0 = ON,WRT1 = ON,WRT2 = ON
#pragma config WRTB = ON,WRTC = ON,WRTD = ON
#pragma config EBTR0 = ON,EBTR1 = ON,EBTR2 = ON
#pragma config EBTRB = ON
void main(void){
char string[6];
unsigned int value;
TRISC=0x80;
TRISB=0x00;
OpenUSART( USART_TX_INT_OFF & //Disable Interrupts
USART_RX_INT_OFF & //----------------
USART_ASYNCH_MODE & //Modo asincronico
USART_EIGHT_BIT & //8 bit
USART_CONT_RX & //resepcion continua
USART_BRGH_HIGH,
25); //FOSC / (16 * (spbrg + 1))
//
OpenTimer2( TIMER_INT_OFF &
T2_PS_1_16 &
T2_POST_1_16);
OpenPWM1(255);
SetDCPWM1(100);
printf("CONTROL PWM LUXO!!!\r\n");
printf("PULSA 1 PARA CONFIGURAR EL PWM1\r\n");
printf("PULSA 2 PARA CONFIGURAR EL PWM2\r\n");
while (1){
getsUSART(string,1);
if(string[0]=='1'){
WriteUSART(0x0C);
printf("CONFIGURACION DEL PWM1\r\n");
printf("pulsa 3 pwm al 10\r\n");
printf("pulsa 4 pwm al 20\r\n");
getsUSART(string,1);
}else if(string[0]=='3'){
printf("pwm al 10\r\n");
getsUSART(string,1);
}else if(string[0]=='4'){
printf("pwm al 20\r\n");
getsUSART(string,1);
}if(string[0]=='2'){
WriteUSART(0x0C);
printf("CONFIGURACION DEL PWM2\r\n");
}
getsUSART(string,1);
}if(string[0]=='3'){
printf("PWM AL 40 \r\n");
}
}
Lo estoy simulando en proteus quiza el fallo este ahi? no se a vecess tambien se me queda colgado os adjunto archivo a ver si alguien puede echarme un cable con la estructura del programa o con el proteus un saludo a todos.