JA fiz no STM(800X600 56hz) e agora estou fazendo no PIC18F2550,640x480 60HZ.
Uma parte da rotina de vídeo para testar as coluna consta assim:
- Código: Selecionar todos
void saida_vga(void)
{
output_b(out_vga[0]);
output_b(out_vga[1]);
output_b(out_vga[2]);
output_b(out_vga[3]);
output_b(out_vga[4]);
output_b(out_vga[5]);
output_b(out_vga[6]);
output_b(out_vga[7]);
output_b(out_vga[8]);
output_b(out_vga[9]);
output_b(out_vga[10]);
output_b(out_vga[11]);
output_b(out_vga[12]);
output_b(out_vga[13]);
output_b(out_vga[14]);
output_b(out_vga[15]);
output_b(out_vga[16]);
output_b(out_vga[17]);
output_b(out_vga[18]);
output_b(out_vga[19]);
output_b(out_vga[20]);
output_b(out_vga[21]);
output_b(out_vga[22]);
output_b(out_vga[23]);
output_b(out_vga[24]);
output_b(out_vga[25]);
output_b(out_vga[26]);
output_b(out_vga[27]);
output_b(out_vga[28]);
output_b(out_vga[29]);
output_b(out_vga[30]);
output_b(out_vga[31]);
output_b(out_vga[32]);
output_b(out_vga[33]);
output_b(out_vga[34]);
output_b(out_vga[35]);
output_b(out_vga[36]);
output_b(out_vga[37]);
output_b(out_vga[38]);
output_b(out_vga[39]);
output_b(out_vga[40]);
output_b(out_vga[41]);
output_b(out_vga[42]);
output_b(out_vga[43]);
output_b(out_vga[44]);
output_b(out_vga[45]);
output_b(out_vga[46]);
output_b(out_vga[47]);
output_b(out_vga[48]);
output_b(out_vga[49]);
output_b(out_vga[50]);
output_b(out_vga[51]);
output_b(out_vga[52]);
output_b(out_vga[53]);
output_b(out_vga[54]);
output_b(out_vga[55]);
output_b(out_vga[56]);
output_b(out_vga[57]);
output_b(out_vga[58]);
output_b(out_vga[59]);
output_b(out_vga[60]);
output_b(out_vga[61]);
output_b(out_vga[62]);
output_b(out_vga[63]);
output_b(out_vga[64]);
output_b(out_vga[65]);
output_b(out_vga[66]);
output_b(out_vga[67]);
output_b(out_vga[68]);
output_b(out_vga[69]);
output_b(out_vga[70]);
output_b(out_vga[71]);
output_b(out_vga[72]);
output_b(out_vga[73]);
output_b(out_vga[74]);
output_b(out_vga[75]);
output_b(out_vga[76]);
output_b(out_vga[77]);
output_b(out_vga[78]);
output_b(out_vga[79]);
output_b(out_vga[80]);
output_b(out_vga[81]);
output_b(out_vga[82]);
output_b(out_vga[83]);
output_b(out_vga[84]);
output_b(out_vga[85]);
output_b(out_vga[86]);
output_b(out_vga[87]);
output_b(out_vga[88]);
output_b(out_vga[89]);
output_b(out_vga[90]);
output_b(out_vga[91]);
output_b(out_vga[92]);
output_b(out_vga[93]);
output_b(out_vga[94]);
output_b(out_vga[95]);
output_b(out_vga[96]);
output_b(out_vga[97]);
output_b(out_vga[98]);
output_b(out_vga[99]);
output_b(out_vga[100]);
output_b(out_vga[101]);
output_b(out_vga[102]);
output_b(out_vga[103]);
output_b(out_vga[104]);
output_b(out_vga[105]);
output_b(out_vga[106]);
output_b(out_vga[107]);
output_b(out_vga[108]);
output_b(out_vga[109]);
output_b(out_vga[110]);
output_b(out_vga[111]);
output_b(out_vga[112]);
output_b(out_vga[113]);
output_b(out_vga[114]);
output_b(out_vga[115]);
output_b(out_vga[116]);
output_b(out_vga[117]);
output_b(out_vga[118]);
output_b(out_vga[119]);
output_b(out_vga[120]);
output_b(out_vga[121]);
}
out_vga são as posições da RAM.
Esta rotina pode ser chamada dentro da interrupção do TIMER0 e funciona como esperado,gerando as barra de cores,mas se eu for 'agilar' o código fazendo um Looping,tipo:
- Código: Selecionar todos
for(l=0; l<120; l++)
{
output_b(out_vga[l]);
}
Não funciona.
Ou a interrupção não é gerada,ou o tempo é muito longo desta rotina(mesmo fazendo Looping de 3 posições) ou não sei o que é.
Não interessa onde esta a variável l,nem interessa se a rotina está fora ou dentro da interrupção,mas sem o Looping,a rotina pode ser usada dentro ou fora da interrupção.
Alguém tem uma ideia?