Tenho uma dúvida na programação em basic para o chaveador que pretendo montar:
O chaveador vai ter 4 entradas e uma saída!
Ele serve para ligar os vários aparelhos que temos em casa, de forma automática, sem precisarmos ir até a estante onde está a TV e mudar a chave seletora (que é o que acontece hoje com esses chaveadores de audio e vídeo existentes no mercado).
Talvez eu desista de montar se alguém aqui disser que já existe para comprar!

Mas mesmo assim, ficarei curioso em saber como fazer acontecer o chaveamento de forma automática e segura!
Vamos supor que eu tenho os seguintes aparelhos:
1 - DVD
1 - k-7
1 - Video-game
1 - Parabólica
Vamos supor que eu vou colocar no chaveador na seguinte ordem:
entrada 1 = DVD = PORTB = 1
entrada 2 = k-7 = PORTB = 2
entrada 3 = Video-game = PORTB = 4
entrada 4 = Parabólica = PORTB = 8
Se eu ligar o DVD primeiro (por exemplo), a porta responsável por detectar isso será ativada e ela vai dizer ao micro ligar o 4066 responsável pelo chaveamento DVD -> saída !
Até aqui é fácil de fazer, e da mesma forma se eu desligar o DVD o micro também vai desligar o 4066 sem problemas!
O micro que estou usando é o ATtiny2313 e 3 CD4066.
O problema para o software que eu não consigo fazer, (tentei algumas formas mas sem sucesso), é se o DVD permanecer ligado e eu ligar também qualquer outro aparelho, como por exemplo, a parabólica!
Eu quero que se o DVD está ligado e eu estou assistindo um filme e quero dar uma espiadinha no que está passando na parabólica, que o chaveador ligue a parabólica até que eu a desligue ou eu desligue o DVD.
A intenção é que sempre o último aparelho ligado tenha a vez na saída!
Eu acho que isso não é um bicho de 7 cabeças para fazer e quero que seja assim pela praticidade que vai ser. Não há necessidade de se desligar um aparelho quando se quer espiar outro. hehehe
E no máximo serão 4 aparelhos ligados ao mesmo tempo e são apenas 4 pinos de controle de entrada para serem analisadas!
só DVD ligado = PORTB = 1
só k-7 ligado = PORTB = 2
mas DVD e k-7 ligados juntos o PORTB será = 3 !
Quando for igual a 3, vemos que teremos duas entradas ativas e eu tenho que saber qual delas estava ligada antes. Só consigo fazer isso usando "IF" ou "SELECT CASE" e é muito desgastante fazer assim visto que serão muitas as possibilidades!
Eu criei uma variável chamada "Entrada" e outra chamada "Ultima_entrada", assim, quando elas forem diferentes entre si, o programa executa os "IFs" e no final dessa fileira enorme de "IFs" eu escrevo: "Ultima_entrada = Entrada", assim, o programa não executa mais os "IFs" até que a variável "Entrada" seja modificada novamente!
Não sei se me lembrei de escrever todos os detalhes e se não os deixei confusos, mas posso tentar esclarecer melhor se for necessário.
Tenho um amigo que programa em basic e em C que disse que seria bem simples o programa usando "fila" para empilhar as saídas, mas não me disse como filtrar as entradas!
Alguém teria uma idéia de como fazer?
No aguardo,
Edson