Hola, no se mucho de C, pero por lo visto no es muy diferente a PBP, si no estas apurado... creo que puedo darte una idea... ahora estoy trabajando, pero cuando llegue a casa veo de hacer un diagrama de flujo para simplificar tu programa, de tal manera que puedas hacerlo entrar en la memoria del micro y te sobre espacio para agregarle si queres mas funciones... Ya tengo una idea de como hacerlo, asi que si queres luego te lo explico, por ahora lo unico que te puedo adelantar es que po lo que veo, la diferencia entre una sentencia y la otra es el valor de la frecuencia a emitir, por lo tanto fijate de poner algo asi:
donde VAR es una variable dinamica:
(O como sea en C )
*--------------------------------------------------------------------------------*
inicio:
IF (A=0)and(B=0)AND(C=0)AND(D=0)AND(ENT=0) THEN
Var := 440
endif
IF (A=1)AND(B=0)AND(C=0)AND(D=1)AND(ENT=0) THEN
Var := 262
endif
IF (A=1)AND(B=1)AND(C=0)AND(D=1)AND(ENT=0) THEN
Var := 402
endif
call emitir
goto inicio
emitir:
freqout GPIO.0,1, VAR
Return
*--------------------------------------------------------------------------------*
Como (, freqout GPIO.0,1 , Var) es siempre igual, y lo unico que se modifica es VAR, entonces usa los if los usas solo para modificar el valor de var y no repetir (, freqout GPIO.0,1,var ,)
De esta manera evitas repetir siempre la misma sentencia y no malgastas la memoria del microcontrolador....
Bueno, alfinal creo que te explique todo ahora....
No me dejes con la intriga, contame como te fue...
Saludos!