NOVAS DÚVIDAS, Matriz com dois caracteres.

Olá a todos os amigos do forum.
Sou eu denovo, para variar.
Bom eu estou brigando com o MikroC para tentar fazer o Pic877A comandar o Dois portes, o PortC e o PortD, que comandam as colunas do nosso painel de mensagens.
No caso, o programa esta funcionando legal, acionando o PORTD (uma matriz de 8x8), eu quero que aprender como fazer ele comandar duas matrizes de 8x8, incluindo o PORTC nessa tarefa, mas já tentei de tudo quanto foi jeito e não consigo. Algum de vocês pode me ajudar a entender como fazer isso, por favor.
Bom, eu peço desculpas, por estar amolando tanto vocês, mas como eu disse estou aprendendo C...tem paciência com o veio vonnilmam...rsss.
Aqui esta o video do hardware:
Aqui esta a listagem para o MiKroC...
cpp code
Sou eu denovo, para variar.
Bom eu estou brigando com o MikroC para tentar fazer o Pic877A comandar o Dois portes, o PortC e o PortD, que comandam as colunas do nosso painel de mensagens.
No caso, o programa esta funcionando legal, acionando o PORTD (uma matriz de 8x8), eu quero que aprender como fazer ele comandar duas matrizes de 8x8, incluindo o PORTC nessa tarefa, mas já tentei de tudo quanto foi jeito e não consigo. Algum de vocês pode me ajudar a entender como fazer isso, por favor.
Bom, eu peço desculpas, por estar amolando tanto vocês, mas como eu disse estou aprendendo C...tem paciência com o veio vonnilmam...rsss.
Aqui esta o video do hardware:
Aqui esta a listagem para o MiKroC...
cpp code
#include "FONT.c"
char colPort at PORTD;
char rowPort at PORTB;
char buff[24];//local para armazenar dois caracteres
unsigned char tensao;
unsigned char texto[4];
void print_chr(char c, char time)
{
char i;
while(time--)
{
for(i=0;i<8;i++)
{
rowPort = 255;
colPort = 1<<(i);
rowPort = ~Font8x8[c - 32][i];
delay_us (90);//delay_us(90); //90
}
}
}
void scroll_text(char *str)
{
char i=0;
char k=0;//deslocamento no buffer
char cnt=0;
char buff[17];//buffer
while(*(str+1) != 0)
{
for(i=0;i<16;i++)
{
if(i<8) *(buff+i) = Font8x8[*(str) - 32][i];
else *(buff+i) = Font8x8[*(str+1) - 32][i-8];
}
for(k = 0;k < 8;k++)
{
for(cnt = 60; cnt > 0; cnt--)
{
for(i=0;i<8;i++)
{
rowPort=255;
colPort = 1<<(i);
rowPort = ~buff[i+k];
delay_us(900);//vdelay_ms(tempo);//125
}
}
}
str++;
}
rowPort = 255;
colPort = 0;
}
//------------------------ROTINA PRINCIPAL DE LOOP -----------------------------
void main()
{
TRISD = 0;
TRISB = 0;
colPort = 0;
rowPort = 0;
// essas variaveis, permitem carregar um dado externo string
//texto[3] = 0;
//texto[2] = ' ';
//texto[1] = 'K';
//texto[0] = ' ';
while(1)
{
//tensao = 10;
//ByteToStr(tensao, texto); // converte variavel em string
scroll_text(" HELP ");
}
}